Agile is the ability to move quickly and easily. According to the website Agile In a Nutshell, it “is a time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end.”
Agile is preferred because of its flexibility and its focus on continuous improvement and collaboration. Project management styles under Agile include Lean, Extreme Programming (XP) and Scrum. The philosophy behind Agile is that it focuses on people, products, collaboration, and flexibility. These philosophies are upheld by 12 agile principles that follow the agile manifesto.
When using the Agile approach, there are many benefits to consider:
- Using Agile allows speed of response to a customer’s ever-changing needs and business requirements through the use of iterations.
- The workflow for Agile is simple and uncomplicated making the process easier to adapt and customize.
- Transparency between team members and key stakeholders through constant and clear communication allows for things to move smoother and faster.
- In Agile, you have the ability to prioritize important features for a product over lesser important features allowing you to create a minimum viable product (MVP) that you can release in the market soon rather than later.
- With Agile, when you fail, you fail fast and continue moving forward with lessons learned, by focusing on developing and deploying working software through short iterations.
- The amount of documentation you use in agile is really up to you and the team or product’s needs. As long as it provides the necessary information for transparency, clarity and transitioning, it will help with management of the product.
Lean and Agile Project Management
Lean focuses on improving quality by eradicating waste. In the case of project management, there is a lot of waste that could accumulate in a project such as meetings that are unproductive, too much documentation, excessive planning and control and more. When a project is Lean, it focuses on what the customers and stakeholders identify as valuable based on outlining their objectives and requirements, outlining the steps necessary to develop the product and making sure the flow is as smooth as it can be by identifying areas of waste to get rid of. This method also focuses on making sure employees have a say and are empowered as well as striving for continuous improvement.
Agile deals with moving fast but light. It focuses on providing working pieces of software in shorter spaces of time through iterations, which in turn helps minimize risk.
When Lean and Agile are combined, they focus on delivering quality and efficiency by means of clear communication, flowing work and empowered teams with a commitment to succeed.
Extreme Programming (XP) focuses on adaptability and the fact that ongoing changes to requirements for a project are natural. Being able to adapt to these project changes through the life cycle is a better approach. The main aim of this approach is to lower the cost of change.
The values followed in this method include communication, feedback, courage, simplicity, and respect. The activities for XP are coding, testing, listening and designing. The 12 practices that are followed in XP are pair programming, planning game, test driven development, whole team, continuous integration, design improvement, small releases, coding standard, collective code ownership, simple design, system metaphor and sustainable pace.
Scrum is considered the more popular Agile framework that is followed. Scrum is meant to be simple and is used to complete complex projects by following a specific flow on how tasks are completed for a project. In Scrum, it usually starts with a product owner creating a product backlog, which is a prioritized wish list of tasks that need to be done for a project. Sprint planning is done to select which of the tasks from the backlog will be worked on. The work is then performed within a 2 – 4 week period in a Sprint. The team will hold daily Scrum meetings during the sprint that outlines what the team accomplished, what they are working on and any blocks that are impeding their progress, so everyone remains on track.
By the end of the sprint, there should be working software that can be deployed. The team will also hold a sprint review to demonstrate what was done and obtain feedback for the work from stakeholders. When a sprint is over, a retrospective is conducted on the process of the work and focuses on successes and failures for the team to determine how they can improve in the next sprint.
The team then starts the cycle over by selecting new tasks from the product backlog. This cycle continues until all of the tasks in the backlog are completed, the budget is used up or the deadline is reached.
At Grata Software we use the Scrum framework of Agile management. Each of our projects has product owners who define and prioritize the backlog of tasks that are outlined with details for the development team. The team then goes through the cycle of sprint planning, sprints with daily scrums, sprint reviews, and sprint retrospectives. We value communication as an important factor in project success, so we make it a point of duty to communicate with key stakeholders on a regular basis via their preferred communication methods. This keeps them informed of how sprints are performing and the progress being made on a project. We also keep small teams for projects to limit confusion and complexity in day-to-day processes.
Agile Project Management For Dummies Cheat Sheet. (n.d.). Retrieved August 04, 2017, from http://www.dummies.com/careers/project-management/agile-project-management-for-dummies-cheat-sheet/
McKay, V. (n.d.). What is Extreme Programming? (XP). Retrieved August 07, 2017, from http://www.selectbs.com/process-maturity/what-is-extreme-programming
Pitagorsky, G. (2006). Agile and lean project management: the right formality for your project. Retrieved August 07, 2017, from https://www.pmi.org/learning/library/agile-lean-project-management-formality-7992
Scrum Alliance. (n.d.). Learn About Scrum. Retrieved August 07, 2017, from https://www.scrumalliance.org/why-scrum
What is Agile? (n.d.). Retrieved August 07, 2017, from http://www.agilenutshell.com/
Yashina, M. (n.d.). Adopting Agile for Maximum Impact and Velocity: Using Scrum as the Process Framework – First Line Software. Retrieved August 04, 2017, from https://firstlinesoftware.com/who-we-are/agile-development