Agile Software development is mostly defined as a methodology which is related to software development project management. It describes the way of working as a team to achieve required level of quality in a software product by reducing risk and delivering early benefits.
Unlike the traditional waterfall model, agile software development is iterative. That means within an agile software development environment we are expecting rapid changes.
Why traditional software development techniques sometimes fail and agile development become more popular?
Traditional software development methods fail due to changes in the business process and the customer requirements. If requirements never change, traditional development methods work. But the problem is business requirements are changing consistently.
Agile allows software development team to focus on the software itself and it reduces the time over software designing and documentation. This method is more effective when we consider a situation where the system requirements usually change rapidly during the development process.
Another key advantage of agile development is speeding up the development process by using much shorter documents.
But when considering agile software development to achieve success in a software product we need to have honest collaborative developers and smart engaged clients.
There are some agile software development approaches to be discussed. But agile software development method like scrum is highly used.
Other agile approaches include
- Extreme programming
- Crystal
- Adaptive software development
- Feature driven development
The set of principles that related to every agile software development approaches
Customer Involvement
Customer involvement is the major principle to consider for gaining success in the software project Customer should be closely involved in the development process from start to end by providing new requirements and ideas. Developers can evaluate the iteration using customer comments.
Incremental delivery
The software will develop and deliver to the customer in increments. Customer should specify the requirements which should be included in each increment.
People not process
Agile allows developers to work in their own way without concentrating much on the software process. It mainly focuses on using the developer’s skills and improving their skills simultaneously rather than following a process with set of rules.
Embrace change
Requirement changes are acceptable. Also software should be developed to accommodate those requirement changes during the development process and after the software has been delivered
Maintaining simplicity
Entire development team and the customer should focus on maintaining of simplicity on the software being developed and the process which is followed to develop that software .This means everyone should support to remove the complexity.
For More detailed reference please read the book ‘’Software Engineering, 10th Edition’’ by Ian Sommerville
What is scrum?
Scrum is one of the agile frameworks to manage product development. While being used widely, it also has become an alternative for traditional software development process
In scrum there are three key roles to be discussed.
Product Owner
Product owner basically is the stakeholder or the customer who has the original vision about the software going to be developed. He defines the content (basically called user stories) of the product backlog by identifying which features should be included in the product and also priorities them.
Scrum Master
He is one kind of a leader to the team unlike the traditional team leader or a project manager. He is responsible for protecting the team and running the development process smoothly by removing any obstacles. And also responsible for holding the meetings to ensure everything is going well.
Scrum Team
Scrum Team may consist of developers, testers and other people involved in software development process to work as a team without following rules that we can find in a traditional software development process. Scrum team also responsible to deliver each increment during every sprint to complete the project successfully
The types of documents used in the scrum framework
Product backlog
Product owner is responsible for creating product backlog which includes priorities list of features known as user stories. It’s like a replacement for traditional requirement specification
User stories
User stories is the way of describing the set of features should be included in the software. These are presented in a way that the scrum team can understand the requirements clearly.
Sprint Backlog
Sprint backlog consists of the highest priorities of the user stories in the product backlog and during the sprint meeting scrum team also identifies the main requirements to be done in the sprint.
Burn down Charts
Burn down Charts Shows the progress of the each sprint and also it graphically represents the balance work to be done within the time left.
The three types of meetings in scrum
Sprint Planning
Sprint planning basically starts the sprint. The product owner, scrum master, and the team meet to discuss about the user stories and identifies the importance of the each.
Daily scrum
Daily scrum is a brief stand up meeting to discuss about the things that we have finished since the last meeting, present status of the development, what are the obstacles that slow down the development progress. It’s more suitable to have this meeting in the morning to determine the day’s work schedule.
Sprint review
The sprint review is carried out after the each sprint with the participation of the team and the product owner to discuss about the completed work. It basically includes a demonstration about the features in the completed product during the last sprint
Sprint retrospective
The Sprint retrospective looks back on the work done by the team in the last sprint and the steps that can be taken to improve the process in the next sprint.
Scrum workflow
- Scrum workflow starts with the product backlog which includes user stories presented by the product owner
- After that, sprint planning meeting is held
- During sprint planning, product owner, scrum master and the scrum team will go through the user stories and determine the priority of the user stories in the next sprint.
- Sprint Backlog is the output of the sprint planning
- Develop, test, and review the application as per the sprint backlog. This whole process is named as sprint
- During the sprint, scrum meetings are held daily
- At the end of the sprint we have potentially shippable product
- Conduct a sprint review on product with the participation of the scrum team and product owner
- The retrospective on the product and the process
- Thus sprint retrospective completes the sprint
- Start of the next sprint
Hi there superb blog! Does running a blog such as this require a lot of work?
I have very little knowledge of programming however I
had been hoping to start my own blog soon. Anyway, if you have
any suggestions or techniques for new blog owners please share.
I understand this is off subject nevertheless I simply had to ask.
Many thanks!