Agile Frameworks and Practices - pdf1
Agile Frameworks and Practices - pdf1
PRACTICES
Any method that is incremental and iterative is inherently Agile. Under
Agile, many specific methodologies have been developed and are
thriving.
Extreme Programming (XP)
Extreme Programming (XP)
Pair programming :
-The quality of the product is much higher when we are using this practice, which also
results in fewer defects, rework, and cost.
Extreme Programming (XP)
It might seem strange at the beginning to assign two people to do the
work of one person and this might seem wasteful. However, the fact is
that in practice, the output of a pair of programmers, including all the
debugging, is more than twice the product that two separate
programmers create. So, it is even economical to use this practice.
Extreme Programming (XP)
Bus Factor
You lose one of your project team members, for any reason (e.g. a bus
hits him/her and…), and you are not able to continue the project
anymore, because no one else has the key information for the project.
This is a project with a Bus Factor of 1, which is terrible.
Extreme Programming (XP)
However, you can have more mechanisms in place to help with this aspect by Succession
planning.
Succession planning is about keeping the information inside the team, instead of certain
individuals, and makes it possible to switch responsibilities, or even add or remove
developers in extreme cases. Pair programming is a great way of succession planning and
increasing the Bus Factor, because everything is well known to at least two people instead
of one.
Maximizing transparency, improving the communications (daily standups, demos,
configuration management systems), and practicing a real co-ownership of code are other
ways of increasing the Bus Factor.
The results of a successful succession plan are not limited to extreme cases of losing p
Extreme Programming (XP)
Collective code ownership :
No one in the Agile team owns a piece of code; everyone is
accountable for everything, and everyone is allowed to change any
piece of code.
The key benefits of collective code ownership are:
-Encouraging collaboration;
-Making everyone focus on the project and its value instead of
specialist activities.
This practice is mandatory in most Agile frameworks, including Scrum.
Extreme Programming (XP)
Sustainable Pace:
Having a sustainable pace, as you might remember from the Agile principles,
is required.
Having constant overtime work might seem to increase the speed, but in
practice, it actually slows down everything because of the low quality of the
code and morale of the team.
The key benefits of having a sustainable pace are:
-Developers are more focused on producing rather than working; they are
focused on the project as a whole, rather than activities;
-We will have a happier environment;
-At the end of the day, we will have higher productivity.
Crystal Clear
Crystal method was developed by Alastair Cockburn and designed for
projects ranging from small teams developing solutions with low levels
of criticality to large teams developing solutions with high levels of
criticality.
Crystal Clear
Osmotic communication :
Having team members co-located in a single room is not just about
making conversations easier, but also about osmotic communications,
where people can gain useful information by overhearing, and get
involved and help each other as needed.
It is good practice to maximize osmotic communications. It is mainly
done by proper co-location, but even distributed teams can benefit
from it by applying some simple rules; e.g.
whenever you want to send an email to a peer, copy everyone in.
Dynamic System Development Method(DSDM)
Atern
Lean
Lean originated from the Toyota Production System. Tom and Mary
Poppindieck applied lean manufacturing to software development.
Lean : different forms of waste
Kanban
Kanban is a management technique that has been popular in
manufacturing for a long time,and has recently been used in IT
projects. However, what people mean by Kanban in IT environments is
usually the ScrumBan described next, instead of a real Kanban. Kanban
is just a technic rather than a framework.
There are three rules for Kanban:
1. Work should be visualized
2. Work in progress (WIP) should be limited
3. Work should be pulled instead of pushed
If you notice on the board below, Designers do not have anything else
to do, and based on the Kanban rules they cannot push the completed
work to the next column, and since they do not have a free capacity,
they cannot get a new item from the To Do column.
In this case, the designers should move to another column and help
their colleagues. Whichcolumn? The bottleneck now is Testing.
This can be the case for everyone in the team, if, for example, the rest
of the columns are all complete and full in capacity, then their
members have to move to the Testing column too.
Even the person in the To Do column, whom you can think of as a
Product Owner, should also move on to the Testing column, since it
does not matter what items s/he puts in the column, they are not going
to be developed yet.
DevOps
DevOps is an emerging discipline that is fast becoming a critical
element of Agile methods.
The image below depicts how a DevOps team delivers valuable features
Sprint after Sprint.
DevOps combines the Dev and Ops teams into a synergistic process. It
is a science of
moving code from one environment to another in an automated and
efficient manner.