Search

Decision About Which Agile Method To Use - A Perspective

Introduction:Agile methods have gained widespread acceptance in software development organizations for formulation and development of solutions for enhancing existing products or creating new ones. The method has been very effective in the continuous delivery of new and effective solutions.Organizations trying to introduce Agile methodologies, in the beginning, are faced with a choice of which type of Agile methodology is best suited for their environment and types of project work. You may learn more about the challenges encountered by the first-time Agile organizations here.The Agile Manifesto favors the delivery of working software in comparison to comprehensive documentation. There is a constant emphasis on a relation between organization and developers rooted in-Trust,Integrity, andTransparency.It may not be a huge shift, but is still a powerful challenge for many companies. The team should be trained well, should be aware of Agile concepts and should have the required tools needed to perform. A team of experienced and skilled developers is more efficient to take decisions when compared to a less experienced team and understands customer commitment much better. Agile delivery values direct interaction and business user collaboration instead of uneven communication in the life cycle  at fixed points. Effective involvement of the  business reduces the delivered features risk that do not meet customer requirements.How to decide the best Agile methodology that is suitable for an organization?Despite the fact that every Agile methodology offers incremental and iterative delivery of software, the differences lie in the way artifacts produced and each methodology is executed.Let us discuss in detail the most popular Agile Methodologies:Scrum: Scrum is focused on self-organizing teams. Its core principles are aligned with client-driven adaptive planning. Scrum method’s main priority is the delivery of working software in no more than 30 days. Delivered software needs to be in releasable shape.Minimum documentation is supported. Scrum is most used in the Agile framework. Its widespread usage and benefits have made it the most popular Agile method.Extreme Programming(XP): It keeps things simple and concentrates on the continuous implementation of best practices such as-Ongoing testingRefactoringCode reviews (pair programming)Continuous integration.In this method, there is a focus on the developer’s capability and getting into the development of the working prototype as fast as possible.Feature Driven Development (FDD): Breaks down the delivery of a larger product into small features. Typically, FDD is characterised by-Short iteration cyclesSimple processesSuitability for predictable evolutionThe method needs experienced resources to define the required features in great details to make them implementable.Kanban: It is based on Toyota’s just-in-time (JIT) production system. The salient features are as follows-Focuses on eliminating bottlenecksIncredibly simple and powerful Kanban boardsKanban uses Flow and visual methods to bring elements of agile in the overall development process.Makes elaborate use of visual tools.Typical usage involves a space in the office area with printed boards showing status of the activities as shown in the diagram below.Lean Development: Lean Development concentrates on offering value for money. It recommends amplifying learning, avoiding unnecessary errors, delivering as early as possible and deciding as late as possible. The first and foremost principle of lean project management is diminishing waste in an established process. It is more frequently applied to production and manufacturing than in product development. Lean mainly focuses on key process improvement points, such as standardizing means of production and reducing bottlenecks. Although Lean has a different application than the Agile methodology, there are certain common elements such as-Valuing a strong facilitator andPipeliningDSDM: It is developed from a business perspective and lays a strong emphasis on project management. The plans produce based on increments.Sometimes, a combination of multiple methods is the best solution. For example, a combination of Scrum and Kanban is a preferred combination for projects that need the iterative approach of Scrum and the visual elements of Kanban. Similarly, pair programming aspects of Extreme programming (XP) are borrowed for Scrum development teams. It is also advisable that, Agile is not a suitable methodology for some projects. This also should be kept in mind while evaluating an appropriate Agile methodology.In Summary:Agile method to be used for an organization depends on the objectives and desired outcomes. The methods can be implemented either in an existing program or for a new one. Current state and resources available will be of prime importance in deciding the approach and the timeline of implementation. It has been proven time and again that Agile methodologies help an organization to improve the speed of product delivery and quality. They also help establish clear communication channels within the organization and with critical customers and have an approach and method to incorporate customer feedback quickly in the product roadmap.
Rated 4.0/5 based on 1 customer reviews

Decision About Which Agile Method To Use - A Perspective

358
  • by Raju Dhole
  • 12th Sep, 2018
  • Last updated on 19th Feb, 2019
  • 3 mins read
Decision About Which Agile Method To Use - A Perspective

Introduction:

Agile methods have gained widespread acceptance in software development organizations for formulation and development of solutions for enhancing existing products or creating new ones. The method has been very effective in the continuous delivery of new and effective solutions.

Organizations trying to introduce Agile methodologies, in the beginning, are faced with a choice of which type of Agile methodology is best suited for their environment and types of project work. You may learn more about the challenges encountered by the first-time Agile organizations here.

The Agile Manifesto favors the delivery of working software in comparison to comprehensive documentation. There is a constant emphasis on a relation between organization and developers rooted in-

  • Trust,
  • Integrity, and
  • Transparency.

It may not be a huge shift, but is still a powerful challenge for many companies. The team should be trained well, should be aware of Agile concepts and should have the required tools needed to perform. A team of experienced and skilled developers is more efficient to take decisions when compared to a less experienced team and understands customer commitment much better. Agile delivery values direct interaction and business user collaboration instead of uneven communication in the life cycle  at fixed points. Effective involvement of the  business reduces the delivered features risk that do not meet customer requirements.

How to decide the best Agile methodology that is suitable for an organization?
Agile methodology that is suitable for an organizationDespite the fact that every Agile methodology offers incremental and iterative delivery of software, the differences lie in the way artifacts produced and each methodology is executed.

Let us discuss in detail the most popular Agile Methodologies:

Scrum: Scrum is focused on self-organizing teams. Its core principles are aligned with client-driven adaptive planning. Scrum method’s main priority is the delivery of working software in no more than 30 days. Delivered software needs to be in releasable shape.

Minimum documentation is supported. Scrum is most used in the Agile framework. Its widespread usage and benefits have made it the most popular Agile method.
Agile Scrum Framework

Extreme Programming(XP): It keeps things simple and concentrates on the continuous implementation of best practices such as-

  • Ongoing testing
  • Refactoring
  • Code reviews (pair programming)
  • Continuous integration.

In this method, there is a focus on the developer’s capability and getting into the development of the working prototype as fast as possible.

Feature Driven Development (FDD): Breaks down the delivery of a larger product into small features. Typically, FDD is characterised by-

  • Short iteration cycles
  • Simple processes
  • Suitability for predictable evolution

The method needs experienced resources to define the required features in great details to make them implementable.

Kanban: It is based on Toyota’s just-in-time (JIT) production system. The salient features are as follows-

  • Focuses on eliminating bottlenecks
  • Incredibly simple and powerful Kanban boards
  • Kanban uses Flow and visual methods to bring elements of agile in the overall development process.
  • Makes elaborate use of visual tools.
  • Typical usage involves a space in the office area with printed boards showing status of the activities as shown in the diagram below.

Feature Driven Development Lean Development: Lean Development concentrates on offering value for money. It recommends amplifying learning, avoiding unnecessary errors, delivering as early as possible and deciding as late as possible. The first and foremost principle of lean project management is diminishing waste in an established process. It is more frequently applied to production and manufacturing than in product development. Lean mainly focuses on key process improvement points, such as standardizing means of production and reducing bottlenecks. Although Lean has a different application than the Agile methodology, there are certain common elements such as-

  • Valuing a strong facilitator and
  • Pipelining

DSDM: It is developed from a business perspective and lays a strong emphasis on project management. The plans produce based on increments.

Sometimes, a combination of multiple methods is the best solution. For example, a combination of Scrum and Kanban is a preferred combination for projects that need the iterative approach of Scrum and the visual elements of Kanban. Similarly, pair programming aspects of Extreme programming (XP) are borrowed for Scrum development teams. It is also advisable that, Agile is not a suitable methodology for some projects. This also should be kept in mind while evaluating an appropriate Agile methodology.

In Summary:

Agile method to be used for an organization depends on the objectives and desired outcomes. The methods can be implemented either in an existing program or for a new one. Current state and resources available will be of prime importance in deciding the approach and the timeline of implementation. It has been proven time and again that Agile methodologies help an organization to improve the speed of product delivery and quality. They also help establish clear communication channels within the organization and with critical customers and have an approach and method to incorporate customer feedback quickly in the product roadmap.

Raju

Raju Dhole

Blog Author

Raju has 23+ years of IT Experience. He has a strong and diverse background in program, IT delivery, and financial management. He is an expert in project delivery using Agile methodologies and DevOps framework. He is a Recognized leader in innovation and transforming global teams. A strong communicator, he has proven ability to interact with multicultural and multi-location teams.  Raju has worked in multiple roles in Delivery Management, Client Relationship Management, Transition Management, Pre Sales, Business Strategy and Leadership Mentoring. 

Join the Discussion

Your email address will not be published. Required fields are marked *

1 comments

nicocasel 24 Sep 2018

Very nice article and infographics. However the first one has a short typo ("Knaban").

Suggested Blogs

Why Do We Use Fibonacci Series for Estimation

In this article, my focus is on sharing my experience as a Trainer/Mentor/Coach to Agile teams with respect to Agile estimations; and on using the Fibonacci sequence as scale to size the Story. What will you learn in this article? Agile practitioners mostly use Story points as a measure for estimation, typically using the Fibonacci scale. In this article we are going to understand the top reasons why we use the Fibonacci series for estimation, and how it works in practice. Before we get to the details, let us try to understand some of the fundamentals. Why do we need to estimate?Estimates help the project team to: Identify the time & effort required to arrive at the project schedule Identify the right number of people required to do the work Arrive at the budget by rolling up the cost of all activities required to complete the work; and Prioritize the work in conjunction with the value that will be delivered. Some software developers fear to provide effort estimates as they are accountable to complete their work within the time.  Hence, they take so much time to get into the details to make sure they have enough information to provide the estimates. This sometimes may not be possible during the beginning of the project as the team may not have enough information on hand to provide the effort estimates for all the tasks to be performed. Hence the order of magnitude (ROM, Budget or Definitive) will be applied at various stages during the project based on the available information to predict the effort needed to complete the activities. Agile Estimation  Typically, in traditional project management, effort estimations may or may not be agreed upon by the entire team. Estimates may either be given by the Project Manager/Tech Lead to the team or the developers/testers may estimate for the piece of work that they have been assigned. This way of estimating a project does not provide an opportunity for the team to collaborate. There may be a difference of opinion with the team members in the effort that need to be spent on an activity. The way the estimations are done within an Agile team is little different. It is just not about the measure used to estimate the effort (for example Story Points), but ensures that the team collaborate among themselves, thus providing an opportunity for knowledge sharing. This helps the accuracy of the estimates when compared to doing individual vs group estimates as the team members come from different backgrounds and roles (developers, testers, quality analysts, business analysts). An Agile team effort estimate focuses on relative sizing of user stories and does not focus on the duration; hence it is faster. The team learns to size the story relatively and accurately over a period of a few iterations (sprints), thus improving the predictability (arrived through establishing consistent velocity over a period of few iterations) as well.  Planning Poker is commonly used as the planning exercise for the team to collaborate and size the stories. Planning Poker uses Fibonacci sequence to assign a value to the epic/feature/story. What is Fibonacci Series?  According to Oxford dictionary, Fibonacci Series is : “ a series of numbers in which each number ( Fibonacci number ) is the sum of the two preceding numbers. The simplest is the series 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 etc” The formula to arrive at a Fibonacci sequence is: Xn = Xn-1 + Xn-2 This sequence will be slightly modified when used in Agile estimations: typically, it will not have values beyond 100 and may have 0, ½, 1, 2, 3, 5,8, 13, 20, 40, 100. Some teams limit the highest value as 21 and use 0, 1/2, 1, 2, 3, 5, 8, 13, 21. Top 3 Reasons Why Using the Fibonacci Sequence Will Make You Better at Estimating Tasks  1. Weber–Fechner law: “The Weber–Fechner law refers to two related hypotheses in the field of psychophysics, known as Weber's law and Fechner's law. Both laws relate to human perception, more specifically the relation between the actual change in a physical stimulus and the perceived change. This includes stimuli to all senses: vision, hearing, taste, touch, and smell” Applying the law to Numerical Cognition,  “Psychological studies show that it becomes increasingly difficult to discriminate between two numbers as the difference between them decreases. This is called the distance effect. This is important in areas of magnitude estimation, such as dealing with large scales and estimating distances. It may also play a role in explaining why consumers neglect to shop around to save a small percentage on a large purchase, but will shop around to save a large percentage on a small purchase which represents a much smaller absolute dollar amount”  (source: https://en.wikipedia.org/wiki/Weber%E2%80%93Fechner_law) The Fibonacci sequence very well corresponds to Weber’s law. The values in the Fibonacci sequence are about 60% higher than the previous value, and hence applying relative sizing is much easier. It is very challenging to distinguish the size of two numbers which are adjacent to each other, by just looking at the objects. Let us take an example of a football and cricket ball. The approximate diameter of a cricket ball would be 2.8 to 2.86 inches whereas the diameter of a football would be 8.66 inches. It is easy to distinguish the relative size of these two (i.e., approximately the diameter of a football is 3 times that of a cricket ball). However, it is very challenging to distinguish between two cricket balls that vary 1 inch in diameter, unless you measure both. If you look at the Fibonacci sequence, the relative size between two adjacent numbers is more than 60% and this helps us to be able to size them accordingly.   2. Reflect Uncertainty The smaller value assigned from the Fibonacci sequence to a user story usually means that the story is well understood, and the user story follows INVEST (Independent, Negotiable, Valuable, Estimable, Small and Testable) guidelines. Whereas the largest value denotes the story is not well understood or it needs to be broken down further. Smaller stories can be confidently estimated by the team in detail. A general practice from matured Agile teams is that the Fibonacci sequence is restricted up to 21 (0,1,1,2,3,5,8,13,21) and any story which is of size beyond 21 will have to be broken down further. This ensures that the team is not giving any room for greater uncertainty and good practice for the team to write better stories under the INVEST guidelines. 3. Comparison Though it is not mandatory to use Fibonacci sequence for story point estimations, the sequence is easier to understand and adoptable by the team. Individuals are better at comparison than estimation.  The easy sequence and distinguishable values of Fibonacci sequence helps to estimate by not measuring the objects but by comparison. How Does Fibonacci Agile Estimation Work in Practice?  When do you think is the right time for the Agile team to estimate user stories that are prioritized by the Product Owner in the product backlog? In my experience, I would say that the estimates (story point sizing) should happen during the Iteration/Sprint backlog grooming sessions. This gives the team the time to go through the user stories in detail, collaborate and mutually agree using the Planning Poker exercise.  Then what do we do in Sprint Planning? – This ceremony should be used to pick the stories from the product backlog (fulfils Definition of Ready), that can be completed within the iteration/sprint and then breakdown the stories into tasks and do one more level of estimation which is effort estimation denoted in hours. Let us say a team is assigned a task to estimate a reporting module to be developed: The team would agree that it is a difficult task to provide an effort estimation and it would take a longer time to complete; but how long will it take? Using Simple, Medium and Complex categorization would simply mean that the estimate falls into the Complex category; but how complex is it? Breaking down the requirement into granularized tasks, getting to the minute details and then arriving at an effort estimation would be a complex process and time consuming as well. Can the team take linear sequence (1,2,4,8,10,12,14,16….) and size them for a high-level estimation? Is it possible to size between 50 and 52? What can be defined as the highest scale? Using Fibonacci series helps the team to size the stories which have a distinguishable value and as discussed earlier, matured Agile teams use modified Fibonacci series and have highest scale of 21 to size a story. As discussed above, the Fibonacci numbers are 60% above than the previous number, and that helps in relative sizing. Summary There are various methods to estimate user stories, like T-Shirt sizing, Dot voting, Affinity Mapping etc. Story points is the widely used measurement for sizing the user stories. Fibonacci series helps the team to compare between two stories; and its very nature of distinguishable values helps them to fit the story into the right size that reflects uncertainties, which further helps the team to refine the story to remove those uncertainties. Hope this article was useful to you.
Rated 4.0/5 based on 13 customer reviews
5899
Why Do We Use Fibonacci Series for Estimation

In this article, my focus is on sharing my expe... Read More

Top Agile Methods for Better Productivity

When a Scrum development team works on the productivity of a team using the Agile methodology, the first thing that comes to attention is the metric used to measure how much work the team does in an iteration: velocity. On the contrary, using velocity helps a Scrum development team to determine a team’s average capability on a normal sprint followed by how much they will agree to achieve in the next sprint iteration. The velocity is not preferred to determine the team’s productivity as it is just a simple indicator based on past sprints.The thing that matters at the end is the result and what the team has produced. A team is not recommended to be pushed to fasten its velocity. In the end, the outcome might be unpredictable as the team might economize on acceptance testing, avoid fixing bugs, or minimize restructuring to reach the target velocity. The key to increasing the velocity of the team is to resort to focusing on optimal velocity over time instead of maximized velocity. This also determines the overall quality of the finished product. Here are the top Agile methods involved in Scrum to allow the team to be more productive over time. 1. Eradicating obstaclesOne of the most important duties of a Scrum Master is to get rid of obstacles early and throughout the development process. This begins with asking appropriate questions while User Stories are being written. This gives developers space and time to do their work. While they are working, a Scrum Master also protects the development team from any disturbances from the stakeholders.In situations when the team does get interrupted, it is recommended for the team members to contact the Scrum Master to get their queries and issues resolved. Having a clear and focused mind is the key to operating at the highest level.The most obvious step is to avoid distractions as they are the primary reason for decreasing a team’s productivity. The team is unable to focus when they are asked to clarify why their productivity went down.2. Daily scrum meetings An efficient team always has a small group of professionals, the numbers can go to a maximum of 9. Anything more than that leads to communication issues and more consumption of time in meetings or huddles. A bigger team, in cases, can be split into two or more. A big team leads to more complications and misunderstandings and hence, is not a good idea. A larger team means more loss in information while exchanging thoughts and ideas and that will result in everybody in the team spending more time and effort to get any message or data across. 3. Team Capacity It is a known fact that all the team members must attend the daily scrum every day. The meeting can last for not more than 15 minutes every day to get an overview of the proceedings and the advancement of the undertaken work. All the concerns and ideas put across and need solutions during the meetings can be parked so that all of them can be addressed together. Any topic not related to the purpose of the meeting can be talked about at a fixed but separate time of the day.Furthermore, communicating with each other during the meeting will help in exchanging more information.4. Product backlog The backlog is the key to knowing where a product goes and what needs to be created on priority. So, everything in a project must be kept and properly maintained via a backlog. User Stories should have enough details and can be reordered in case of a change in priority. More accurate User Stories lead to less time consumption for the development team to understand them.An up to date and well-maintained backlog during an Agile project should have enough User Stories for at least one or two sprints.5. Constantly improving mindsetScrum is a continuous method that involves development because the whole method can be changed, not just the software. The point is to find something that requires alterations and to achieve it in the next sprint. This allows the team to tackle one issue at a time and move forward.Finding a clear move in the sprint retrospective to support the team is necessary. Someone must take ownership to act and make things work. This can be achieved by initiating small, easy actions that are less time-consuming first. During a sprint retrospective, it is recommended to take suggestions from each attendee and go for the most appropriate one. After that, a plan will be laid out to realize the chosen idea.6. Interruption bufferWhile running an application in production, it is necessary to keep maintaining and providing new features. However, there can be interruptions, like a bug that needs to be reported urgently or another team needing a developer for assistance. The point is, Sprints will be prone to interruptions, and provisions must be made to deal with these problems. A capable Scrum Master will log all these interruptions noting the number of interruptions, the time consumed in dealing with them and then add them to the next sprint.7. Have a vision of the task at handThe team works more efficiently in getting the deliverables when the Scrum Master already has laid out a blueprint to work on. This also includes having metrics and other relevant charts displayed, doing which will also let stakeholders and colleagues track the production rate.Refreshing the burndown chart daily and displaying the desired sprint result will reflect the customer or team satisfaction. Furthermore, a roadmap showing the working of the product will further enhance the vision of the team. There are multiple ways of sharing information to give everybody the idea of how things are going on while working on the product.To concludeWhen looking at the broader picture of the correct way to motivate a team to get the desired output, a successful team follows a very realistic and simple approach by using plain common sense that is instilled by the Scrum Master. Understanding how the team works and realizing the working style of each team member is one of the most important observations of an adept Scrum Master. It is a collaborative effort that cannot be done by one person but needs responsible efforts from every working member on the task. After all, it is not about ‘Me’ but ‘Us’ that helps in building a product successfully on time.
Rated 4.5/5 based on 5 customer reviews
9553
Top Agile Methods for Better Productivity

When a Scrum development team works on the product... Read More

How Does an Agile Mindset Pave the Way for Professional Success?

In the days before the advent of Agile, most large organizations were run with a bureaucratic mindset. Even as Agile has taken over the world of work today, a large number of professionals and organizations are yet to embrace the Agile mindset as they are stuck in the traditional paradigm.  Traditionally, the primary focus of managers in a top-down hierarchy has been on bringing in funds for the organization and its investors, even as they are sorting out work in line with the rules, jobs, and criteria that have been pre-determined. The existence of a bureaucratic mindset, therefore, promotes hierarchy over collaboration. When the workforce has a bureaucratic attitude, the productivity at an organizational level gets impeded. This is especially the case in situations that are subject to rapid changes concerning business needs,opportunities, or challenges.. What is an Agile mindset? An Agile mindset is a mentality of having a positive, feedback-based,and flexible perspective. This mindset places high regard on mutual respect, collaboration, improvement, iterative construction, and learning cycles. It takes pride in ownership, lays focus on delivering value, and has the inherent ability to adapt to change. An agile mindset is critical to cultivating high-performing teams, capable of delivering amazing value for their customers. The Characteristic Traits of An Agile Mindset An agile mindset can be identified by certain behavioral traits. These are applicable at the level of an individual, team, and enterprise at large.  High degree of collaborative efforts: Teamwork is crucial to foster an Agile mindset. Those who wish to cultivate this mindset should have a thorough understanding of objectives, deliverables, and ownership. Tolerance, mutual respect, and a team-player’s attitude are essential for effective collaboration. Self-motivated: A certain sense of motivation will be displayed by professionals having this mindset. They are often driven enough to execute tasks until completion and even develop better strategies to perform tasks. Self-motivated teams are empowered teams as they are capable of driving success with their efforts while taking responsibility for their actions at the same time. Customer-focused and outcome-driven: Delivering value to customers within the stipulated deadlines and budget is second nature to those with an Agile mindset. Customer’s needs are top priority and an outcome-based approach will be followed to meet them.Speed and Transparency: A quick turnaround time is a hallmark of Agile environments. Work is often done in small increments over time while the feedback loops are shortened to boost progress and reduce errors. Transparency is a trait that every member of the team should possess so that work can be entrusted to them without a second thought. Getting Ahead with An Agile Mindset  A significant aspect of having an Agile mindset is an individual’s willingness to remain unfazed in failure, yet open to learning and growing to prevent the same mistakes. As a professional in the dynamic digital age, one has no option but to embrace changes.  With new technologies, work processes and customer demands emerging daily, cultivating an Agile mindset has become imperative for professional growth. Farsighted organizations have already embarked on their Agile journeys, with 92% senior executives globally believing that organizational agility is critical to business success.  This calls for the need of an Agile workforce and translates into greater opportunities for skilled professionals with an Agile mindset. The true adoption of the Agile mindset cannot happen over-night, it takes a gradual shift in perspectives which will eventually guarantee lasting returns. Attending workshops led by Agile experts is a great way to get started with one’s journey towards developing an Agile mindset. Not only will it help shape one’s mindset but also open doors to exciting opportunities in Agile. 
Rated 4.5/5 based on 0 customer reviews
How Does an Agile Mindset Pave the Way for Profess...

In the days before the advent of Agile, most large... Read More

Useful links