The Good, The Bad, and The Agile

The Good, The Bad, and The Agile

Agile methodologies have become increasingly popular in recent years as businesses have sought to develop software more quickly and efficiently. Agile methodologies are based on the idea of iterative development, where software is developed in small increments and delivered on shorter timeframes. These development cycles are referred to as Sprints and allow more flexibility and responsiveness to changing requirements. Done correctly, Agile can also help improve code quality.

Key benefits of using Agile Development methodologies include:

 

  • Increased speed and flexibility: The Agile methodology relies on development Sprints that last a few weeks and are focused on developing discrete functionality. These short, structured phases allow developers to focus on a discrete set of tasks to deliver software more quickly and respond more easily to changes in requirements.
  • Improved quality: Agile emphasizes continuous testing and feedback from business stakeholders, which can help to improve the quality of the software. Regular demos of the developed code allow the end users to see the solution and provide their evaluation of the fit to requirements. Adjustments to the solution are incorporated into the next Sprint to refine the application from the demos, which provides a continuous feedback loop during development. This approach avoids the monolithic waterfall deployments that represent months of work and are difficult to realign with requirements at that scale.
  • Better customer satisfaction: Agile methodologies allow for more customer involvement in the development process, which leads to better applications that meet the needs of the end-user or customer.
  • Increased team collaboration: Agile methodologies promote collaboration and communication across the business stakeholders and development teams, which provide transparency and can help to improve productivity and morale.
  • Reduced risk: Agile methodologies allow teams to mitigate risk by delivering software in small increments. Mistakes are identified early through the demo process and can be addressed in the next Sprint before becoming integral to the solution and requiring significant re-work later in the development lifecycle.

However, there are also some challenges associated with using Agile methodologies, including:

  • Agile Adoption: Agile methodologies require a change in mindset from traditional waterfall methodologies. There is a significant change management dimension and necessary staff re-training to truly adopt the new methodologies. Frequently, teams devolve back into their traditional ways of doing work and/or get stuck in a hybrid methodology (waterfall-agile).
  • Delivery Management: Agile methodologies can be difficult to manage, especially for large projects. It is important to have a strong project manager (Scrum Master) who can keep the project on track and coordinate across workstreams/teams to keep priorities aligned, manage scope/story points properly, and maintain code quality.
  • Requires Experience: Agile methodologies require experienced and skilled team members who can work independently and collaborate effectively.
  • Not a “One Size Fits All” Solution: Agile methodologies are not suitable for all projects. Within the Identity Management realm, we often see a waterfall approach to establish a strong IDM foundation (HRIS to ID Store to Active Directory/Azure AD) before transitioning to Agile for endpoint connectors.  

Overall, Agile methodologies offer several benefits for businesses that are looking to develop software more quickly and efficiently. However, it is important to be aware of the challenges associated with these methodologies before deciding to adopt them.

Some additional thoughts on the good, the bad, and the agile:

  • The good: Agile methodologies can be a great way to improve the speed, flexibility, and quality of software development. They can also help to improve customer satisfaction and reduce risk.
  • The bad: Development teams can be prone to take shortcuts, where practical considerations force developers to abandon security and focus instead on functionality and performance, which are the cornerstone of the Demo process. Functionality and performance are more tangible than security and are easy components to overlook for end users. As a result, code is developed with inadequate security mechanisms and security is added later using ad hoc and manual techniques, and the resulting systems are often insecure. While security frameworks can slow down development efforts in the beginning, they will certainly hamstring your program’s efforts if you try to retrofit your code after the fact.
  • The agile: Organizations that have high-functioning Agile teams run their ceremonies like clockwork and have excellent Scrum Masters and knowledgeable Product Owners. A good Scrum Master keeps the team on task during the sprint and the various ceremonies (i.e. time boxing discussions, stopping solutioning during ceremonies, and removing obstacles). The Product Owner keeps the backlog full of base User Stories that need to be groomed and planned into a future sprint. This requires that the Product Owner knows the business and what functionality is most needed (i.e., business priorities). Scrum Masters and Product Owners provide the framework for defining the Sprints and setting the developers up for success.

Agile organizations have a number of experienced developers who can check their ego at the door and foster peer-to-peer conversations instead of relying on formal titles/authority. The true leaders on the team foster both collaboration and results on their merits (the way they work and lead by example). On the technical side, having a solid Continuous Improvement/Continuous Delivery (CI/CD) pipeline, allows the developers to focus on coding tasks and not have to worry about code builds and deployment tasks after the initial pipeline has been built. The CI/CD should be set up to include tools for measuring code quality and coverage metrics. 

Finally, Agile organizations have a good relationship with the management team, which can help remove operating/political barriers that the Scrum Master may not be able to resolve. At the end of each sprint, the solution demos all the features that were worked on to the management and business team. This allowed stakeholders/end users to see the application and ask questions about various aspects of the system to clarify uncertainties and provide feedback to the developers. This last point is critical for a successful Agile Team, as without that feedback loop you don’t know whether or not you are continuing to provide business value. 

To view or add a comment, sign in

Insights from the community

Others also viewed

Explore topics