Agile is an iterative and incremental approach of managing and developing projects with a team. It focuses on customer collaboration, responding to change, and frequent releasing of working softwares. Agile takes into consideration some best world practices such as: people working better in teams; trusting relationships have better results than legal documents; predicting the future is super hard; 3 things 100% done are more useful than 10 things 75% done;“one day at a time,one game at a time”; and “keep your eye on the ball”. Agile is a set of activities and methods that can be used individually to make things better, and collectively to make things great.
Agile is transforming the world of work withs its vast global movement. The agile software development movement took off in in year 2001 and is now spreading rapidly to all parts, and all kinds, of organizations, as recognized in 2016 by the Harvard Business Review — with its article, “Embracing Agile,” by Darrell K. Rigby, Jeff Sutherland and Hirakata Takeuchi. Hundreds of thousands of Agile practitioners exists all around the world in present.
Agile enables organizations to deal with continuous change. It helps them to flourish in a world that is increasingly volatile, uncertain, complex and ambiguous. Embracing agile is the only way to cope with today’s marketplace. As managing software becomes core to the success of most businesses, Agile is becoming a key to the management of everything.
History of the Agile Manifesto
The industry frustration in the 1990s led to development of The Agile Manifesto and the Twelve Principles of Agile Software. Agile includes four foundational values and 12 supporting principles which lead the Agile approach to software development and delivery of high-quality, working software.
- a) Individuals and Interactions Over Processes and Tools: Valuing people more highly than processes or tools. The people who respond to business needs and drive the development process are way higher than the processes. In a company if the process or the tools drive development, the team is less responsive to the changes and less likely to meet the customer needs. Communication is an instance of the difference between valuing individuals versus the process
- b) Working Software Over Comprehensive Documentation: Enormous amounts of time has been spent on documenting the product for development and ultimate delivery in past which has required technical specifications, technical prospectus, interface design documents, test plans, documentation plans, and approvals for each products. The list has been extensive and was a cause for the long delays in development. Agile does not eliminate documentation, but agile documents requirements are sufficient enough for a software developer to begin the task of building a new function instantly. It streamlines a form that gives the developer what is needed to do the work without getting bogged down.
- c) Customer Collaboration Over Contract Negotiation: Negotiation is a process where the customer and the product manager work out the details of a delivery, with points along the way where the details may be renegotiated. Collaboration on the other hand is a different creature entirely. Under collaboration, the customer is involved in the process of development before development begins and after it is completed, but not during the process. This makes it far easier for development to meet their needs of the customer accoring to Agile Manifesto. A project could just as easily have an end-user as a daily part of the team and attending all meetings, ensuring the product meets the business needs of the customer.
- d) Responding to Change Over Following a Plan : The traditional software development regarded change as an expense, so it used to develop detailed, elaborate plans, with a defined set of features and with everything, generally, having as high a priority as everything else, and with a large number of many dependencies on delivering in a certain order so that the team can work on the next piece of the puzzle. Agile however views changes as a means to improve a project; it believes changes provide additional value to the software developement.
The Twelve Agile Manifesto Principles
The twelve principles of agile development include:
- Frequent delivery of working software
- Customer satisfaction through early and continuous software delivery
- Collaboration between the business stakeholders and developers throughout the project
- Support, trust, and motivate the people involved
- Working software is the initial measure of progress
- Enable face-to-face interactions
- Agile processes to support a consistent development pace
- Attention to technical detail and design enhances agility
- Self-organizing teams encourage great architectures, requirements, and designs
- Regular reflections on how to become more effective
- The intention to align development with business needs
List of Business Analysis Courses