Agile Software Development, Scrum part 1
Today we want to talk about Agile principles and especially about Scrum, that had been used on a many of our projects. This article can help you to understand the basics of the Agile and Scrum development and try to implement this methods in your company. So let’s start.
Agile development methodology (Agile) describes a set of principles for software development according to which the requirements and solutions developed through the collaborative effort of self-organizing and cross cross-functional teams.
Agile development – is a general term for a set of methods and practices that are based on values and principles reflected in the Agile Manifesto. We’ll talk about them later.
This includes adaptive planning, evolutionary development, the short time of the emergence of new working version of the program, as well as continuous improvement, so these principles urge to respond quickly and flexibly to changes (it includes the customer desires and environmental conditions).
These principles support clarity and continuous development of a software development methods.
In February 2001, in the US state of Utah ” Manifesto for Agile Software Development ” was issued. It is an alternative to a controlled with documentation, “heavy-handed” practices of software development, such as «Waterfall model», that was the gold-standard for the development in those time.
The manifesto has been approved and signed by representatives of the following methodologies: Extreme Programming, Crystal Clear, DSDM, Feature driven development, Scrum, Adaptive software development, Pragmatic Programming.
Agile development has been used by many companies before this manifesto, but the Agile development popularization occurred after this event.
” We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals 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.”
12 principles which explain the Agile Manifesto:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Jeff Sutherland and Ken Schwaber conceived Scrum process in the early 90s. They systematized Scrum in 1995 in order to present it to OOPSLA conference in Austin, Texas (USA) and published an article “SCRUM Software Development Process”.M Software Development Process”.
Ken and Jeff took the name of “Scrum” from an 1986 article called «The New Product Development Game» written by Hirotaka Takeuchi and Nonaka Ikudziro. The term «Scrum» taken from rugby to emphasize the importance of teams showing some analogy between team sport like rugby and success in new product development.
Research shows that an outstanding performance in the development of new, complex products is achieved when the team has small size, when the team is self-organized and people inside it connected to each other by goals rather than tasks.
In February 2001, Jeff and Ken were among the 17 leaders of the development of software, who created a manifesto of Agile software development.
The method has been successfully applied in other areas, such as manufacturing, marketing and education, e.t.c.
Scrum – project management methodology applied in need of agile development. The methodology focuses on the quality control of the development process.
This is framework that used for complex management of the product development process from the beginning of the 90s. Scrum is not a process or technology for development of products;
Scrum – is a set of principles on which the development process builds. It allows to provide running software with new features that has the highest priority to the end user in rigidly fixed and small-time iterations, called sprints. Software Features to be implemented in the next sprint are determined at the beginning of the sprint at the planning stage and cannot be changed during the sprint duration. So small and strictly fixed-duration of the sprint gives the development process predictability and flexibility.
This framework, in which is possible to use various processes and techniques.
It consists of Scrum Teams and their related roles, events, artifacts, and rules. Each element of the framework serves a specific purpose and it is the key to the success and use of Scrum.
to be continued…
We are looking forward to meeting you on our website soshace.com