Most agile implementations have daily face-to-face communication among team members. This also includes the product owner as customer representative and some stakeholders as observers. Here, working software is the primary measure of progress. When a team works in different locations, they maintain daily contact through videoconferencing, voice, e-mail, etc. Automated build generation and automated testing are generally part of development and help in maximizing the efficiency of the team. I have found that it is worth spending some time initially to put these processes in place. It makes everybody’s life smooth and the overall development efficient. Projects are quality focused, which also includes code quality. Code refactoring and testing are attributes of quality. The practice of code refactoring is where you make simple changes to the code that improve quality without changing the semantics. The team prefers to test often and early, and the more disciplined ones even take a test-driven approach where they write a single test and just enough code to fulfill that test, and then reiterate. Figure 4 shows a typical iteration cycle:
Figure 4: Agile development cycle revolves around product backlog.
Tracking and Adjustment
The project progress is tracked in iteration, and adjustments are made (Figure 5). As a project progresses, stakeholders get a better understanding by seeing the working software, and their needs can be changed. In addition, changes in the business situation or changes in priority at the organization level are also common factors behind these changes. The product log gets updated based on current needs, and subsequent iterations are replanned.
Figure 5: A product backlog jar depicts change management.
One of the tools that help in tracking the progress is the burn down chart. It is a graphical representation of work versus time. Generally vertical axis represents the amount of work left and horizontal axis represents time. It is one of the preferred ways of showing progress in a sprint. In Figure 6, a release burn down chart is depicted where work is shown as story points and time is shown in iterations:
Figure 6: Sample burn down chart.
Some people have doubts about this approach. Some of the common questions and concerns are: “Is it necessary to adopt?” “It doesn’t look organized and or easy to sell this process to the clients,” “What will happen to QA?” and “It sounds too risky.” These are all valid points to look into before this approach is adopted. Also, agile is not necessarily always be a good fit for a project. Other development approaches are worth considering if the following are true of a particular project:
Team size is big.1.
A short iteration cycle is not possible.2.
Requirements are clearly stated and detailed out.3.
Requirements do not change.4.
Stakeholders are not available during development.5.
Intensive documentation is needed and key to success.6.
In real-world situations, the above points do not apply most of the time, and therefore agile is a good solution.
Although agile practices still have some concerns, its benefits—such as accommodating changing customer requirements, immediate returns, close team coordination, and flexibility—facilitates its rapid acceptability to those involved in software development. The philosophy of “people over process” is making it more successful with each passing day. It is a well-thought-out approach of successfully executing projects. In today’s fast-paced world, many companies are quickly adopting agile practices and becoming successful.
About the Author
Rohit Sinha, PMP, a product manager with 11 years of experience in IT projects, is an innovative professional with an outstanding background in leadership and a proven ability to identify, analyze, and solve problems to increase customer satisfaction and controls costs. He is responsible for both the execution and management of multiple projects, and focuses on building the trust and relationship that are needed to keep projects moving. He has domain expertise in insurance, accounting, and document management. He is a project management professional (PMP)® credential holder and holds master’s degree in computer science. He can be contacted at firstname.lastname@example.org.