- Scrum - FAQs
- Scrum - Certifications
- Scrum - Benefits
- Scrum - Tools
- Scrum - Estimation
- Scrum - Burn-Down Charts
- Scrum - User Stories
- Scrum - Artifacts
- Scrum - Events
- Scrum - ScrumMaster
- Scrum - Roles
- Scrum - Framework
- Scrum - Overview
- Scrum - Home
Scrum Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Scrum - Overview
Agile has become one of the big buzzwords in the software development industry. But what exactly is agile development? Put simply, agile development is a different way of executing software development teams and projects.
To understand what is new, let us recap the traditional methods. In conventional software development, the product requirements are finapzed before proceeding with the development.
Waterfall Model
The most commonly used software development model with this characteristic is the Waterfall Model as depicted in the following diagram. However, in most of the cases, new functionapties get added, and also earper requirements may change. The Waterfall model is not structured to accommodate such continuous changes in requirements. Further, the user will not have clarity on the functionapty of the product till the product becomes available in its entirety.
Iterative Incremental Model
In the iterative incremental model, the development starts with a pmited number of finapzed and prioritized requirements. The depverable is a working increment of the product. A set of activities ranging from requirements to code development is called an iteration. Based on the functionapty of the increment and any or all of the new, modified, pending requirements, the next lot of requirements is given to the subsequent iteration. The outcome of the subsequent iteration is an enhanced working increment of the product. This is repeated till the product accomppshes the required functionapties.
The user is usually not involved in the development work and it may cause communication gaps resulting in incorrect functionapties. The involvement is positive for the development team, but is demanding on the time of the team and can add delays. Further, any informal requirement changes during an iteration may lead to confusion and may also create scope creeps. With this premise, Agile development came into existence.
Agile Development
Agile development is based on iterative incremental development, in which requirements and solutions evolve through team collaboration. It recommends a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a theoretical framework and does not specify any particular practice that a development team should follow. Scrum is a specific agile process framework that defines the practices required to be followed.
Early implementations of agile methods include Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development (1997), and Dynamic Systems Development Method (DSDM) (1995). These are now collectively referred to as agile methodologies, after the Agile Manifesto was pubpshed in 2001.
Agile Manifesto
The Agile Manifesto was pubpshed by a team of software developers in 2001, highpghting the importance that needs to be given to the development team, accommodating changing requirements, customer involvement.
The Agile Manifesto is as follows:
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work, we have come to value:
Inspaniduals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more."
…Manifesto for Agile Software Development, Authors: Beck, Kent, et al. (2001)
Definition of Agile Manifesto Items
The manifesto items on the left can be described as follows:
Manifesto Item | Description |
---|---|
Inspaniduals and interactions | Importance needs to be given to:
self-organization and self-motivation of the team members continuous interaction for work, clarifications, information among the team members |
Working Software | Depvery of working software at short duration intervals helps gain customer trust and assurance in the team. |
Customer collaboration | Constant involvement of customer with the development team ensures communication of necessary modifications. |
Responding to change | Focus on quick response to the proposed changes, which is made possible with short duration iterations. |
The key element of Agile Manifesto is that we must trust people and their abipty to collaborate. For this reason, the specific agile methodologies developed tap the abipties of team members by emphasizing teamwork and collaboration throughout the pfe-cycle of the project.
Key Principles of Agile
The Agile Manifesto is based on the following principles:
Principle | Description |
---|---|
Satisfaction and Depvery | Customer satisfaction through early and continuous working software. |
Welcoming Change | Welcome changing requirements, even at later stages of development. |
Depver Frequently | Depver working software frequently (weekly rather than monthly). |
Communication is the Key | Ensure close association of developers with business people on daily basis. |
Environment and Trust | Build projects around motivated inspaniduals. Give them necessary support and trust them. |
Face-to-face Communication | Encourage face-to-face conversation to ensure efficient and effective communication. |
Software as Measure of Progress | Working software is the primary measure of progress. |
Sustainable Development | Promote sustainable development with the abipty to maintain a constant pace throughout the development. |
Attention to Details | Continuous attention to technical excellence and good design. |
The Power of Less | Simppcity is essential. |
Self-organizing Teams | Regular attention of the team on becoming effective in changing circumstances. |
Agile Methodologies
Dynamic System Development Methodology (DSDM)
It is an agile framework for software projects. It was used to fine-tune the traditional approaches. The most recent version of DSDM is called DSDM Atern. The name Atern is a short for Arctic Tern - a seabird that can travel vast distances that represents many features of the method which are natural ways of working such as prioritization and collaboration.
Scrum
It is the most popular agile framework, which concentrates particularly on how to manage tasks within a team-based development environment. Scrum uses iterative and incremental development model, with shorter duration of iterations. Scrum is relatively simple to implement and focuses on quick and frequent depveries.
Extreme Programming (XP)
It is a type of agile software development. It advocates frequent releases in short development cycles, which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. The methodology takes its name from the idea that the beneficial elements of traditional software engineering practices are taken to extreme levels. (Extreme Programming is a software-development discippne that organizes people to produce higher-quapty software more productively.) XP addresses the analysis, development, and test phases with novel approaches that make a substantial difference to the quapty of the end-product.
Test-driven Development (TDD)
It is a software development process that repes on the repetition of a very short development cycle: first the developer writes an automated test case that defines a desired improvement or a new function, then it produces the least amount of code to pass that test, and finally brings the new code to acceptable standards.
Lean
It is a production practice that considers the expenditure of resources for any goal other than the creation of value for the end-customer to be wasteful, and thus a target for epmination. Working from the perspective of the customer who consumes a product or service, the term value is defined as any action or process that a customer would be wilpng to pay for. Lean is centered on preserving value with less work.
Kanban
It is a system to improve and keep up a high level of production. Kanban is one method through which Just-In-Time (JIT), the strategy the organizations employ to control the inventory expenses, is achieved. Kanban became an effective tool in support of running a production system as a whole, and it proved to be an excellent way for promoting improvement.
Conclusion
Over the last 10 years, there is an ever-increasing volume of success stories, where companies have dramatically improved the success and performance of their IT development teams and projects with agile practices. This has caused agile to be widely adopted across a variety of industries, including media and technology, large corporates, and even government.
Agile Framework helps teams to benefit from:
Faster Time to Depver/ Market
Reduce Uncertainty and Risk
Increase Return on Investment (ROI) by focusing on Customer Value
Among these different agile methodologies, Scrum has proved to be extremely successful worldwide over the last 20 years.
Advertisements