SlideShare a Scribd company logo
WORKING WITH AGILE
TECHNOLOGIES AND SCRUM
SCRUM + Visual Studio, Kanban, Team Foundation
Server, Source Control, Git
Andrea
Tino
#allrightsreserved #2015 #creativecommons #cc4.0 #attribution #noncommercial #sharealike #international
Who is this
presentation for?
Everyone with a
minimal background
on programming
What topics does it
cover?
See previous slide :)
Oh yeah... But how
detailed?
I will follow an
horizontal approach
without many details
WHAT’S SCRUM?
Introducing the most popular software development
model in industry as a replacement to old Waterfall.
1.1
Murphy’s Law
“Anything that can go
wrong, will do!”
Requirements
Design
Implement
Verification
Maintenance
Once upon a time... Waterfall
Software Industry has radically changed from a heavvy,
hierarchical, vertical, document-based, long-term centered
model to a lightweight, flattened, horizontal,
zero-document, short-term centered process.
Why? Basically the reason is simple: Waterfall took time,
was very resource demanding and lacked flexibility.
Waterfall (Royce) is, briefly,
unable to respond to
unexpected problems that may
arise at every possible stage.
Once a stage is secured and
closed, it is not possible to go
back.
In real life, Waterfall was almost
99.9% violated.
Agile The stiffness of such
models was a proper fuel for the
community to start putting effort
in finding an alternative. We call
this Agile Development and it is
much more flexible + makes a
better use of resources.
Up: The Waterfall model.
Each stage cannot be
executed until the previous
one has been completed.
Specification forbids going
back to a previous phase
but some modified versions
allow this (only one step
though).
SCRUM = AGILE DEVELOPMENT
The most foundamental concepts revolving around
SCRUM methodologies.
1.2
SCRUM is...
A methodology to SW
development with different
variants and flavors
SCRUM is NOT...
A collection of rules or
protocols to coordinate
developers and teams
Roles Events
Artifacts Tooling
Take it easy
Instead of providing a set of rigid rules, SCRUM defines a collection of
concepts that should be observed and adapted in the best way on the context
in exam.
That’s why there is not one single way of implementing SCRUM in a company.
An organization decides to adopt SCRUM at its own pace and considering its
own needs and possibilities.
Key features Those few concepts are actually the core features of SCRUM.
They are grouped into 3+1 categories:
ROLES
Do not focus too much on hierarchy, rather define few
figures and rely on those.
1.3
Product Owner
The representative for the customer. SCRUM
is a methodology that places stakeholders in
the development process. The customer
needs to have its voice heard.
Development Team(s)
The group of developers responsible for
delivering the product. Note that SCRUM
does not provide restrictions here, teams
can be arranged in whatever way.
SCRUM Master
A person among developers responsible for facilitating the SCRUM process and remove all possible
obstacles threatening the agile process. He doesn’t need to be a Lead, nor a Manager.
SCRUM defines 3 core roles (pigs). There is also a set
of ancillary roles (chickens) which are not really
needed in real life scenarios.
Hierarchy free Note how these roles do not touch
an organization’s structure. SCRUM prefers dealing
with horizontal orgs, but it is not a requirement.
EVENTS & TIME FRAMES
SCRUM defines a very short horizon: one day. The Team
might need to change approach or focus the next day
so it is useless planning on a long-term basis.
1.4
Sprint
Basic iteration unit of timeboxed focused
effort for developers.
Typically lasts 1,2 or 3 weeks. But no more.
S1 S2 S3 S4 S5 S6 ...
Morning SCRUM
Very important. Occurs before starting the
day. The WHOLE Team gets together in one
room and each developer reports on:
1. What he did the previous day.
2. What he is going to do in current day.
3. Problems, difficulties, help if needed.
Meetings To achieve a common goal one thing is
necessary: communication. SCRUM Teams talk a lot
and have many meetings.
SCRUM is iterative
Given its flexible nature, SCRUM encourages developers to
put their focus od few problems at a time. A unit of
development time is defined and it iterates until software is
finally released.
Typycally who arrives late at morning SCRUM has to
do penance: buy cake or run naked in every office :)The whole year is divided into sprints and developers will reason in
terms of sprints only. It is actually a good way to set time.
MEETINGS MEETINGS MEETINGS
Meetings are important in Agile metodologies.
Developers meet regurarly in order to share ideas and
keep product development on track.
1.4.1
Sprint Planning
The Team assembles together at the
beginning of the Sprint and decides what to
focus on during that Sprint. This meeting
defines activities ans strategies.
Sprint Review
Managers (and the product owner in some
cases), review the product iteration at the
end of the Sprint. Developers demo new
features and receive feedback.
In Agile Development, managers and developers interact in
some important events that define key changes in the final
product.
Demo & get feedback
After each Sprint, somebody external from the
Team should review how the work is proceeding.
Sprint Reviews are a powerful tool to keep the
Team focused and have its members show what
features were pushed into the product.
According to the size of the organization, at
these meetings must attend developers,
managers, product owners, designers and
almost all people involved in the product.
Good demos are essential to show new cool
functionalities and get positive feedback.
Sprint Review
Planning and
Sprint Review
Retrospection
meetings are also
important chances
to plan and
analyze feedback
on demos.
ARTIFACTS AND WORK ITEMS
In order to get work assigned, managed and done,
SCRUM defines a few concepts which enable work
structuring and distribution across team members.
1.5
Deliverable
A unit of work representing
a (new) feature to
implement in the product
Bug
A problem in the current
released product that
needs to be fixed
Product BL Sprint BL
Backlogs Deliverables are defined by managers and
managers also decide which one of them should be
implemented by the Team. Backlogs are used as
buffers to groom activities and focus on them.
SCRUM is incremental
The other side of SCRUM is the fact that it proceeds on an
incremental flavor. Thus, the development process scans
different iterations of the product until goals are reached.
In order to organize work across team members, SCRUM
considers 2 different types of Work Items.
A deliverable can also be a
feature to push in the product as
part of an extension to an
existing functionality.
A bug is a problem that is generally filed by
customers. Escalation process ensures that the
Team receives bug notifications. The Team must fix
the bug and ship a patch for the current version.
Grooming The operation of selecting which
deliverable the Team should focus on is called
Grooming. Managers might organize Grooming
Meetings at the beginning of every sprint.
Bugs Bugs can be organized using backlogs as well,
however no more than 1 is typically used.
ORGANIZING WORK ITEMS
There is laways a lot to do, Agile methodology
offer a way to keep all work items in track.
1.5.2
EPIC
SLICE
Deliverable
MOVE TO CLOUD
MIGRATE CLIENT COMPONENTS
Enable AJAX controls
MIGRATE SERVER COMPONENTS
More lightweight Metadata
Update tests
Migrate REST components
Migrate database
Update tests
Epics and slices
An Epic is a work item which maps a goal to be reached at
the end of the overall release process. Epics are made of
Slices, a Slice is a subunit of work focusing a specific
feature to be implemented.
Slices are broken down into Deliverables to map each single
work unit assignable to a team member.
A realistic example of
epic/slice/deliverable work
breakdown in the context of a
company developing an
application that needs to be
moved into the Cloud.
APPROACHING RELEASE TIME
When approaching release time, the Team undergoes
certain stages that ensure the product to be correctly
released with the least number of bugs.
1.6
Tell Mode
Teams are allowed to change the
code, but they must notify
managers or supervisors
Ask Mode
Teams MUST ask managers for
changing the code. Detailed
description is required.
Shiproom The Team has a daily meeting called
Shiproom where the current status of the product is
evaluated. All bugs on new features are considered
and members decide whether it is worth fixing them
basing on a risk/cost analysis.
When all bugs have been handled, Shiproom calls for
a Release Candidate (RC). RC is fully tested and if no
bugs are found that becomes the Release Build.
Otherwise the process starts over until a new RC is
identified.
Endgame
When it is time to release, the development process
changes. Pushing new features is not allowed anymore and
more meetings occur. This process is called: Endgame.
Bug Bar Bugs are normally classified using a Severity
Index (higher index = higher severity). As Shiproom goes
on, bugs allowed for fixing must comply the Bug Bar
which increases as RC are iteratively defined.
Endgame typically starts during the final 2-3 Sprints of the
whole lifecycle.
TOOLS FOR AGILE AND SCRUM
Tools and instruments for implementing SCRUM and
Agile process in teams and facilitate the development
model
2
SCRUM KANBAN (看板)
SCRUM has a few variants (dialects), one of this is
called Kanban.
2.1
Work Item
Work item
description with
details on bug
and status.
Work Item
Work item
description with
details on bug
and status.
BACKLOG
Work Item
Work item
description with
details on bug
and status.
APPROVED
Work Item
Work item
description with
details on bug
and status.
Work Item
Work item
description with
details on bug
and status.
VERIFIED/CLOSED
Work Item
Work item
description with
details on bug
and status.
IN PROGRESS
Work Item
Work item
description with
details on bug
and status.
RESOLVED
Work Item
Work item
description with
details on bug
and status.
Good at morning SCRUM Usually Kanban is used at
morning SCRUM. The board will show work items’
statuses and the team can understand how good is
general progress.
Tracking team’s work
Kanban is an approach for visually tracking what team is
focusing on and what work item each member is currently
working on. It also allows managers to keep tracking on
each work item’s status.
How a Kanban board
typically looks in a
bug configuration.
Each work item has a
team member
assigned to it and a
status represented by
the lane it is placed in.
KANBAN IS NOT JUST FOR BUGS
Kanban board can be personalized in order to keep
track of whatever work item type, even deliverables.
2.1.2
Work Item
Work item
description with
details on bug
and status.
BACKLOG
Work Item
Work item
description with
details on bug
and status.
Work Item
Work item
description with
details on bug
and status.
COMPLETED
Work Item
Work item
description with
details on bug
and status.
IN PROGRESS
Work Item
Work item
description with
details on bug
and status.
BLOCKED
Work Item
Work item
description with
details on bug
and status.
Tracking deliverables
Kanban can be used for deliverables as well. The Kanban board configuration changes as deliverables can be
in different states than bugs. Most common tools out there offer customization features.
For deliverables, Kanban boards
can be typically configured as
shown here. A very important state
is “blocked”, where a work item is
waiting for another one to be
completed first in order to proceed.
KANBAN TOOLS
There are many OSS offering Kanban, some more
integrated solutions offer a whole environment. Visual
Studio has Kanban as well in TFS.
2.1.3
Microsoft ALM
https://msdn.microsoft.com/en-us/library/f
da2bad5.aspx
Visual Studio Kanban
https://msdn.microsoft.com/en-us/library/jj
838789.aspx
JIRA
https://jira.atlassian.com
Kanbanize
https://kanbanize.com
TRELLO
https://trello.com
Visual Studio and TFS
Microsoft and Team Foundation Server offer Kanban as part of Application Lifecycle Management (ALM).
Other solutions for Kanban
Other applications offer Kanban as part of their release management environments, check them out.
CODE REVIEW
Basically it is Agile’s own “One for All, All for One”.
2.2
Review policy
If a reviewer asks for a change, the author
must provide at least a comment.
Programmers are human
Thus they make mistakes. How is it possible to prevent bugs
and code defects? Pair programming bas identified as a
possible solution but it uses two team members for one
work item: it is a waste of resources. Code Reviewing is
today’s most common solution for preventing mistakes and
producing better code.
How does it work? When a programmer completes his
development activity for a bug fix or a deliverable, it sends
out a review which contains only his changes to the code.
The developers selectes few other team members which will
look at the code and provide feedback.
Author
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type':
'text/xml'});
res.end('<id>14394955</id>');
}).listen(1337, '127.0.0.1');
Reviewer 1
“We use port 1337! Use another one!”
...
res.end('<id>14394955</id>');
}).listen(1337, '127.0.0.1');
Author
“We don’t use 1337 anymore! Will keep it :)”
...
res.end('<id>14394955</id>');
}).listen(1337, '127.0.0.1');
TOOLS FOR CODE REVIEW
There are several applications on the Internet for
handling code reviews. Some projects are also OS and
available in Git.
2.2.2
WinMerge
http://winmerge.org
Microsoft WinDiff
http://support.microsoft.com/
en-us/kb/159214
Wiki:Comparison of diff tools
http://en.wikipedia.org/wiki/Comparison_of_file_compa
rison_tools
meld
http://meldm
erge.org/
Notepad++ compare
http://sourceforge.net/projects/npp-
compare/
Focus on differences only
A review typically does not show involved files
only, it is also able to highlights those parts of
the code which underwent changes by the
author, so that reviewers can understand where
to look at.
Diff To have this, diff tools are necessary. A diff
program simply compares two text files and
highlights differences focusing on what was
removed, what added and (only advanced tools)
what moved.
Code reviewing applications use diffing tools, but
those can be used also to compare two generic
files. Windows used to have WinDiff.exe as
default diff tool. Today we can find many
solutions among OSS.
CHANGESETS
A team is free to edit the codebase freely. However to
keep track of changes, changesets can be a very
good tool to organize your code modifications.
2.3
CODEBASE
Contains all the code for the application
under development, together with
branches if any.
Change
set
Change
set
Change
set
One pack at a time
Users share the same codebase which is stored and
kept safe on one or (hopefully) multiple servers.
When a developer wants to change something, he
prepares a pack or changeset and submits it to the
codebase.
Keeping things in order Such a system helps
developers track changes. Also, every change is
assigned to the team member who introduced it, so
it is easy to understand who changed what!
commit syncrevert info
The role of tests
For every new feature pished into the codebase and
every component, the Team should ensure to have
unit tests and tests covering those! But when should
these tests be executed? Exactly when a changeset
is being merged in the codebase.
MICROSOFT UNIT TEST FRAMEWORK
Microsoft Visual Studio offers an integrated solution for
running tests and getting results.
2.4
ATTRIBUTE BASED
EXTENDABLE
TEST RESULTS
XML SUPPORT
VS Unit Test Fwk
https://msdn.microsoft.com/en-us/li
brary/ms243147%28VS.80%29.aspx
MSTest reference
https://msdn.microsoft.com/en-us/li
brary/ms182489.aspx
Writing tests in .NET
Part of the Visual Studio Development Kit,
the Unit Test Framework lets .NET
developers write unit tests and tests in
every .NET compatible language.
MSTest.exe
/testcontainer: “<path-to-dll>”
/test: “test-name”
/resultsfile: “path-to-trx-dst”
Command line The executable will run all or
specified tests that can be found in the provided dll.
AGILE DEVELOPMENT ENVIRONMENTS
Solutions to develop applications with Agile
methodologies and for a better development
experience
3
TEAM FOUNDATION SERVER
Microsoft’s technology for developing application in
collaboration contexts. It supports SCRUM and Agile.
3.1
CLOUD READY
KANBAN
SOURCE CNTRL
AGILE SUPPORTSCRUM SUPPORT
TEST MGMT
REPORTING
ISSUE TRACKING
CUSTOMIZATION
All in Visual Studio
Visual Studio has everything needed when
relying on Microsoft for developing
solutions.
Deployment TFS requires deployment
on a server which acts as the central
datastore for all data. The architecture is
pretty flexible and, once the server is
ready, it can host the code, its branches
and also handle work items.
Customization Work items can be
configured with custom fields and rules in
order to better handle automatic
operations and save time.
GIT
Today’s most famous code repository, version control
and collaboration tool on the web.
3.2
CLOUD READY SOURCE CNTRL
AGILE SUPPORT
SCRUM SUPPORT REPORTING
ISSUE TRACKING
FREE (PUBLIC)
Git it!
Git is a source control system which
started becoming very popular in the last
5 years. Its hosting service, GitHub, today
includes the greatest majority of OSS.
Althought one of the first VC was Google
Code, Google is now cutting in favor of
GitHub.
Git offers many services for free, however
private repositories require a “premium
account” which is not free.
THANK YOU
Twitter: @_atino
E-Mail: andry.tino@hotmail.com
The end
This work is distributed under the Creative Commons
Attribution-NonCommercial-ShareAlike 4.0 International license.

More Related Content

PDF
the agile mindset, a learning lab
PPT
Agile methodology
PDF
IATF 16949:2016 block diagram flow (Aug 7, 2018)
PDF
Value Stream Transformation: Achieving Excellence through Leadership Alignmen...
PDF
Executing Change Management with Agile Practices
PDF
Introduction to agile and scrum
PPTX
Scrum events
DOCX
Iso 9001 internal auditor training
the agile mindset, a learning lab
Agile methodology
IATF 16949:2016 block diagram flow (Aug 7, 2018)
Value Stream Transformation: Achieving Excellence through Leadership Alignmen...
Executing Change Management with Agile Practices
Introduction to agile and scrum
Scrum events
Iso 9001 internal auditor training

What's hot (20)

PDF
Agile Process Introduction
PPSX
Action Plan of 5S and Kaizen (Rodzidah's group)
PDF
6's training manual
PPT
Alternate Hourly Lean Introduction
PPTX
Scrum and the agile development process
PPTX
Agile - Scrum Presentation
PPT
Introduction To Scrum
PDF
ISO 9001: 2015 QUALITY MANAGEMENT PRINCIPLES
PDF
What is Document Management
PPT
Iso9001 Orientation
PDF
A3 Thinking Masterclass by John Kiff
PDF
An Executive Insider's Guide to Enterprise Agile Transformation
PPTX
Agile Leadership: A Different Mindset
PDF
Kanban Basics
PDF
Pull Production & Kanban Implementation Throughout the Supply
PDF
Project and Portfolio Management with Kanban
PDF
6 s visual management
PDF
Reducing Resistance to Change
PDF
Implementing Kanban to Improve your Workflow
PPTX
Introduction to Kanban
Agile Process Introduction
Action Plan of 5S and Kaizen (Rodzidah's group)
6's training manual
Alternate Hourly Lean Introduction
Scrum and the agile development process
Agile - Scrum Presentation
Introduction To Scrum
ISO 9001: 2015 QUALITY MANAGEMENT PRINCIPLES
What is Document Management
Iso9001 Orientation
A3 Thinking Masterclass by John Kiff
An Executive Insider's Guide to Enterprise Agile Transformation
Agile Leadership: A Different Mindset
Kanban Basics
Pull Production & Kanban Implementation Throughout the Supply
Project and Portfolio Management with Kanban
6 s visual management
Reducing Resistance to Change
Implementing Kanban to Improve your Workflow
Introduction to Kanban
Ad

Viewers also liked (7)

PPTX
Introduction of Kanban metrics
PDF
By the Power of Metrics - Lean Kanban North America 2015
PPT
Kanban and Iterationless Working
PDF
Tech Talk: Agile 101: What are Your Teams Working On? Making Work Visible wit...
PPTX
Kanban Metrics in practice at Sky Network Services
PDF
Kanbanboards
PDF
Kanban boards step by step
Introduction of Kanban metrics
By the Power of Metrics - Lean Kanban North America 2015
Kanban and Iterationless Working
Tech Talk: Agile 101: What are Your Teams Working On? Making Work Visible wit...
Kanban Metrics in practice at Sky Network Services
Kanbanboards
Kanban boards step by step
Ad

Similar to Working with Agile technologies and SCRUM (20)

PDF
Agile, not just for software
PDF
AgileScrum
PPTX
Agile Development with Scrum.pptx
PDF
Scrum 101
PPT
Let’s Play Agile ! 12-09-15-testers_hub
PDF
Scrum toufiq
PPT
Scrum-Agile : An Introduction
PPTX
SCRUM methodology
PPTX
agile-and-scrum-methodology.pptx
PDF
Introduction to Scrum - An Agile Frameworks
PPTX
Agile scrum
PPSX
Scrum Agile Methodlogy
PDF
An introduction to Agile & Scrum
PDF
Beginners Guide to Scrum
PPT
PPTX
Agile & SCRUM
PPTX
Agile and Scrum presentation - definition and more
PDF
Scrum, A Brief Introduction
PPTX
Scrum Framework
Agile, not just for software
AgileScrum
Agile Development with Scrum.pptx
Scrum 101
Let’s Play Agile ! 12-09-15-testers_hub
Scrum toufiq
Scrum-Agile : An Introduction
SCRUM methodology
agile-and-scrum-methodology.pptx
Introduction to Scrum - An Agile Frameworks
Agile scrum
Scrum Agile Methodlogy
An introduction to Agile & Scrum
Beginners Guide to Scrum
Agile & SCRUM
Agile and Scrum presentation - definition and more
Scrum, A Brief Introduction
Scrum Framework

More from Andrea Tino (20)

PDF
Our Journey: from Waterfall to Agile to DevOps
PDF
Development & GDPR (v2)
PDF
Development & GDPR
PDF
Cutting Edge on Development Methodologies in IT
PDF
An introduction to DevOps
PDF
Continuous Everything
PDF
Modern Trends in UI Decoupling Design
PDF
Javascript cheatsheet
PDF
Workshop on Cryptography - Frequency Analysis (basic)
PDF
Master Thesis - A Distributed Algorithm for Stateless Load Balancing
PDF
Modern web applications
PDF
Visual Studio Tools for Cordova
PDF
Microsoft + Agile (light)
PDF
Microsoft + Agile
PDF
The World of Stylesheet Languages
PDF
How to Develop Cross-Platform Apps
PDF
The Asynchronous Pattern (for beginners)
PDF
Designing an effective hybrid apps automation framework
PDF
7 tips for more effective morning SCRUM
PDF
Powerful tools for building web solutions
Our Journey: from Waterfall to Agile to DevOps
Development & GDPR (v2)
Development & GDPR
Cutting Edge on Development Methodologies in IT
An introduction to DevOps
Continuous Everything
Modern Trends in UI Decoupling Design
Javascript cheatsheet
Workshop on Cryptography - Frequency Analysis (basic)
Master Thesis - A Distributed Algorithm for Stateless Load Balancing
Modern web applications
Visual Studio Tools for Cordova
Microsoft + Agile (light)
Microsoft + Agile
The World of Stylesheet Languages
How to Develop Cross-Platform Apps
The Asynchronous Pattern (for beginners)
Designing an effective hybrid apps automation framework
7 tips for more effective morning SCRUM
Powerful tools for building web solutions

Recently uploaded (20)

PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Big Data Technologies - Introduction.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PPT
Teaching material agriculture food technology
PDF
cuic standard and advanced reporting.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
Network Security Unit 5.pdf for BCA BBA.
Per capita expenditure prediction using model stacking based on satellite ima...
MYSQL Presentation for SQL database connectivity
Review of recent advances in non-invasive hemoglobin estimation
“AI and Expert System Decision Support & Business Intelligence Systems”
Encapsulation_ Review paper, used for researhc scholars
Big Data Technologies - Introduction.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Electronic commerce courselecture one. Pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Unlocking AI with Model Context Protocol (MCP)
Understanding_Digital_Forensics_Presentation.pptx
Spectral efficient network and resource selection model in 5G networks
Teaching material agriculture food technology
cuic standard and advanced reporting.pdf
Encapsulation theory and applications.pdf
Advanced methodologies resolving dimensionality complications for autism neur...

Working with Agile technologies and SCRUM

  • 1. WORKING WITH AGILE TECHNOLOGIES AND SCRUM SCRUM + Visual Studio, Kanban, Team Foundation Server, Source Control, Git Andrea Tino #allrightsreserved #2015 #creativecommons #cc4.0 #attribution #noncommercial #sharealike #international
  • 2. Who is this presentation for? Everyone with a minimal background on programming What topics does it cover? See previous slide :) Oh yeah... But how detailed? I will follow an horizontal approach without many details
  • 3. WHAT’S SCRUM? Introducing the most popular software development model in industry as a replacement to old Waterfall. 1.1 Murphy’s Law “Anything that can go wrong, will do!” Requirements Design Implement Verification Maintenance Once upon a time... Waterfall Software Industry has radically changed from a heavvy, hierarchical, vertical, document-based, long-term centered model to a lightweight, flattened, horizontal, zero-document, short-term centered process. Why? Basically the reason is simple: Waterfall took time, was very resource demanding and lacked flexibility. Waterfall (Royce) is, briefly, unable to respond to unexpected problems that may arise at every possible stage. Once a stage is secured and closed, it is not possible to go back. In real life, Waterfall was almost 99.9% violated. Agile The stiffness of such models was a proper fuel for the community to start putting effort in finding an alternative. We call this Agile Development and it is much more flexible + makes a better use of resources. Up: The Waterfall model. Each stage cannot be executed until the previous one has been completed. Specification forbids going back to a previous phase but some modified versions allow this (only one step though).
  • 4. SCRUM = AGILE DEVELOPMENT The most foundamental concepts revolving around SCRUM methodologies. 1.2 SCRUM is... A methodology to SW development with different variants and flavors SCRUM is NOT... A collection of rules or protocols to coordinate developers and teams Roles Events Artifacts Tooling Take it easy Instead of providing a set of rigid rules, SCRUM defines a collection of concepts that should be observed and adapted in the best way on the context in exam. That’s why there is not one single way of implementing SCRUM in a company. An organization decides to adopt SCRUM at its own pace and considering its own needs and possibilities. Key features Those few concepts are actually the core features of SCRUM. They are grouped into 3+1 categories:
  • 5. ROLES Do not focus too much on hierarchy, rather define few figures and rely on those. 1.3 Product Owner The representative for the customer. SCRUM is a methodology that places stakeholders in the development process. The customer needs to have its voice heard. Development Team(s) The group of developers responsible for delivering the product. Note that SCRUM does not provide restrictions here, teams can be arranged in whatever way. SCRUM Master A person among developers responsible for facilitating the SCRUM process and remove all possible obstacles threatening the agile process. He doesn’t need to be a Lead, nor a Manager. SCRUM defines 3 core roles (pigs). There is also a set of ancillary roles (chickens) which are not really needed in real life scenarios. Hierarchy free Note how these roles do not touch an organization’s structure. SCRUM prefers dealing with horizontal orgs, but it is not a requirement.
  • 6. EVENTS & TIME FRAMES SCRUM defines a very short horizon: one day. The Team might need to change approach or focus the next day so it is useless planning on a long-term basis. 1.4 Sprint Basic iteration unit of timeboxed focused effort for developers. Typically lasts 1,2 or 3 weeks. But no more. S1 S2 S3 S4 S5 S6 ... Morning SCRUM Very important. Occurs before starting the day. The WHOLE Team gets together in one room and each developer reports on: 1. What he did the previous day. 2. What he is going to do in current day. 3. Problems, difficulties, help if needed. Meetings To achieve a common goal one thing is necessary: communication. SCRUM Teams talk a lot and have many meetings. SCRUM is iterative Given its flexible nature, SCRUM encourages developers to put their focus od few problems at a time. A unit of development time is defined and it iterates until software is finally released. Typycally who arrives late at morning SCRUM has to do penance: buy cake or run naked in every office :)The whole year is divided into sprints and developers will reason in terms of sprints only. It is actually a good way to set time.
  • 7. MEETINGS MEETINGS MEETINGS Meetings are important in Agile metodologies. Developers meet regurarly in order to share ideas and keep product development on track. 1.4.1 Sprint Planning The Team assembles together at the beginning of the Sprint and decides what to focus on during that Sprint. This meeting defines activities ans strategies. Sprint Review Managers (and the product owner in some cases), review the product iteration at the end of the Sprint. Developers demo new features and receive feedback. In Agile Development, managers and developers interact in some important events that define key changes in the final product. Demo & get feedback After each Sprint, somebody external from the Team should review how the work is proceeding. Sprint Reviews are a powerful tool to keep the Team focused and have its members show what features were pushed into the product. According to the size of the organization, at these meetings must attend developers, managers, product owners, designers and almost all people involved in the product. Good demos are essential to show new cool functionalities and get positive feedback. Sprint Review Planning and Sprint Review Retrospection meetings are also important chances to plan and analyze feedback on demos.
  • 8. ARTIFACTS AND WORK ITEMS In order to get work assigned, managed and done, SCRUM defines a few concepts which enable work structuring and distribution across team members. 1.5 Deliverable A unit of work representing a (new) feature to implement in the product Bug A problem in the current released product that needs to be fixed Product BL Sprint BL Backlogs Deliverables are defined by managers and managers also decide which one of them should be implemented by the Team. Backlogs are used as buffers to groom activities and focus on them. SCRUM is incremental The other side of SCRUM is the fact that it proceeds on an incremental flavor. Thus, the development process scans different iterations of the product until goals are reached. In order to organize work across team members, SCRUM considers 2 different types of Work Items. A deliverable can also be a feature to push in the product as part of an extension to an existing functionality. A bug is a problem that is generally filed by customers. Escalation process ensures that the Team receives bug notifications. The Team must fix the bug and ship a patch for the current version. Grooming The operation of selecting which deliverable the Team should focus on is called Grooming. Managers might organize Grooming Meetings at the beginning of every sprint. Bugs Bugs can be organized using backlogs as well, however no more than 1 is typically used.
  • 9. ORGANIZING WORK ITEMS There is laways a lot to do, Agile methodology offer a way to keep all work items in track. 1.5.2 EPIC SLICE Deliverable MOVE TO CLOUD MIGRATE CLIENT COMPONENTS Enable AJAX controls MIGRATE SERVER COMPONENTS More lightweight Metadata Update tests Migrate REST components Migrate database Update tests Epics and slices An Epic is a work item which maps a goal to be reached at the end of the overall release process. Epics are made of Slices, a Slice is a subunit of work focusing a specific feature to be implemented. Slices are broken down into Deliverables to map each single work unit assignable to a team member. A realistic example of epic/slice/deliverable work breakdown in the context of a company developing an application that needs to be moved into the Cloud.
  • 10. APPROACHING RELEASE TIME When approaching release time, the Team undergoes certain stages that ensure the product to be correctly released with the least number of bugs. 1.6 Tell Mode Teams are allowed to change the code, but they must notify managers or supervisors Ask Mode Teams MUST ask managers for changing the code. Detailed description is required. Shiproom The Team has a daily meeting called Shiproom where the current status of the product is evaluated. All bugs on new features are considered and members decide whether it is worth fixing them basing on a risk/cost analysis. When all bugs have been handled, Shiproom calls for a Release Candidate (RC). RC is fully tested and if no bugs are found that becomes the Release Build. Otherwise the process starts over until a new RC is identified. Endgame When it is time to release, the development process changes. Pushing new features is not allowed anymore and more meetings occur. This process is called: Endgame. Bug Bar Bugs are normally classified using a Severity Index (higher index = higher severity). As Shiproom goes on, bugs allowed for fixing must comply the Bug Bar which increases as RC are iteratively defined. Endgame typically starts during the final 2-3 Sprints of the whole lifecycle.
  • 11. TOOLS FOR AGILE AND SCRUM Tools and instruments for implementing SCRUM and Agile process in teams and facilitate the development model 2
  • 12. SCRUM KANBAN (看板) SCRUM has a few variants (dialects), one of this is called Kanban. 2.1 Work Item Work item description with details on bug and status. Work Item Work item description with details on bug and status. BACKLOG Work Item Work item description with details on bug and status. APPROVED Work Item Work item description with details on bug and status. Work Item Work item description with details on bug and status. VERIFIED/CLOSED Work Item Work item description with details on bug and status. IN PROGRESS Work Item Work item description with details on bug and status. RESOLVED Work Item Work item description with details on bug and status. Good at morning SCRUM Usually Kanban is used at morning SCRUM. The board will show work items’ statuses and the team can understand how good is general progress. Tracking team’s work Kanban is an approach for visually tracking what team is focusing on and what work item each member is currently working on. It also allows managers to keep tracking on each work item’s status. How a Kanban board typically looks in a bug configuration. Each work item has a team member assigned to it and a status represented by the lane it is placed in.
  • 13. KANBAN IS NOT JUST FOR BUGS Kanban board can be personalized in order to keep track of whatever work item type, even deliverables. 2.1.2 Work Item Work item description with details on bug and status. BACKLOG Work Item Work item description with details on bug and status. Work Item Work item description with details on bug and status. COMPLETED Work Item Work item description with details on bug and status. IN PROGRESS Work Item Work item description with details on bug and status. BLOCKED Work Item Work item description with details on bug and status. Tracking deliverables Kanban can be used for deliverables as well. The Kanban board configuration changes as deliverables can be in different states than bugs. Most common tools out there offer customization features. For deliverables, Kanban boards can be typically configured as shown here. A very important state is “blocked”, where a work item is waiting for another one to be completed first in order to proceed.
  • 14. KANBAN TOOLS There are many OSS offering Kanban, some more integrated solutions offer a whole environment. Visual Studio has Kanban as well in TFS. 2.1.3 Microsoft ALM https://msdn.microsoft.com/en-us/library/f da2bad5.aspx Visual Studio Kanban https://msdn.microsoft.com/en-us/library/jj 838789.aspx JIRA https://jira.atlassian.com Kanbanize https://kanbanize.com TRELLO https://trello.com Visual Studio and TFS Microsoft and Team Foundation Server offer Kanban as part of Application Lifecycle Management (ALM). Other solutions for Kanban Other applications offer Kanban as part of their release management environments, check them out.
  • 15. CODE REVIEW Basically it is Agile’s own “One for All, All for One”. 2.2 Review policy If a reviewer asks for a change, the author must provide at least a comment. Programmers are human Thus they make mistakes. How is it possible to prevent bugs and code defects? Pair programming bas identified as a possible solution but it uses two team members for one work item: it is a waste of resources. Code Reviewing is today’s most common solution for preventing mistakes and producing better code. How does it work? When a programmer completes his development activity for a bug fix or a deliverable, it sends out a review which contains only his changes to the code. The developers selectes few other team members which will look at the code and provide feedback. Author http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/xml'}); res.end('<id>14394955</id>'); }).listen(1337, '127.0.0.1'); Reviewer 1 “We use port 1337! Use another one!” ... res.end('<id>14394955</id>'); }).listen(1337, '127.0.0.1'); Author “We don’t use 1337 anymore! Will keep it :)” ... res.end('<id>14394955</id>'); }).listen(1337, '127.0.0.1');
  • 16. TOOLS FOR CODE REVIEW There are several applications on the Internet for handling code reviews. Some projects are also OS and available in Git. 2.2.2 WinMerge http://winmerge.org Microsoft WinDiff http://support.microsoft.com/ en-us/kb/159214 Wiki:Comparison of diff tools http://en.wikipedia.org/wiki/Comparison_of_file_compa rison_tools meld http://meldm erge.org/ Notepad++ compare http://sourceforge.net/projects/npp- compare/ Focus on differences only A review typically does not show involved files only, it is also able to highlights those parts of the code which underwent changes by the author, so that reviewers can understand where to look at. Diff To have this, diff tools are necessary. A diff program simply compares two text files and highlights differences focusing on what was removed, what added and (only advanced tools) what moved. Code reviewing applications use diffing tools, but those can be used also to compare two generic files. Windows used to have WinDiff.exe as default diff tool. Today we can find many solutions among OSS.
  • 17. CHANGESETS A team is free to edit the codebase freely. However to keep track of changes, changesets can be a very good tool to organize your code modifications. 2.3 CODEBASE Contains all the code for the application under development, together with branches if any. Change set Change set Change set One pack at a time Users share the same codebase which is stored and kept safe on one or (hopefully) multiple servers. When a developer wants to change something, he prepares a pack or changeset and submits it to the codebase. Keeping things in order Such a system helps developers track changes. Also, every change is assigned to the team member who introduced it, so it is easy to understand who changed what! commit syncrevert info The role of tests For every new feature pished into the codebase and every component, the Team should ensure to have unit tests and tests covering those! But when should these tests be executed? Exactly when a changeset is being merged in the codebase.
  • 18. MICROSOFT UNIT TEST FRAMEWORK Microsoft Visual Studio offers an integrated solution for running tests and getting results. 2.4 ATTRIBUTE BASED EXTENDABLE TEST RESULTS XML SUPPORT VS Unit Test Fwk https://msdn.microsoft.com/en-us/li brary/ms243147%28VS.80%29.aspx MSTest reference https://msdn.microsoft.com/en-us/li brary/ms182489.aspx Writing tests in .NET Part of the Visual Studio Development Kit, the Unit Test Framework lets .NET developers write unit tests and tests in every .NET compatible language. MSTest.exe /testcontainer: “<path-to-dll>” /test: “test-name” /resultsfile: “path-to-trx-dst” Command line The executable will run all or specified tests that can be found in the provided dll.
  • 19. AGILE DEVELOPMENT ENVIRONMENTS Solutions to develop applications with Agile methodologies and for a better development experience 3
  • 20. TEAM FOUNDATION SERVER Microsoft’s technology for developing application in collaboration contexts. It supports SCRUM and Agile. 3.1 CLOUD READY KANBAN SOURCE CNTRL AGILE SUPPORTSCRUM SUPPORT TEST MGMT REPORTING ISSUE TRACKING CUSTOMIZATION All in Visual Studio Visual Studio has everything needed when relying on Microsoft for developing solutions. Deployment TFS requires deployment on a server which acts as the central datastore for all data. The architecture is pretty flexible and, once the server is ready, it can host the code, its branches and also handle work items. Customization Work items can be configured with custom fields and rules in order to better handle automatic operations and save time.
  • 21. GIT Today’s most famous code repository, version control and collaboration tool on the web. 3.2 CLOUD READY SOURCE CNTRL AGILE SUPPORT SCRUM SUPPORT REPORTING ISSUE TRACKING FREE (PUBLIC) Git it! Git is a source control system which started becoming very popular in the last 5 years. Its hosting service, GitHub, today includes the greatest majority of OSS. Althought one of the first VC was Google Code, Google is now cutting in favor of GitHub. Git offers many services for free, however private repositories require a “premium account” which is not free.
  • 22. THANK YOU Twitter: @_atino E-Mail: andry.tino@hotmail.com The end This work is distributed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.