Domesticated Brain

Agile Software Development

 

What is an agile development?

Agile development is mostly defined as a methodology which is related to software development project management and also 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 traditional software development waterfall model, agile software development is iterative. That means within an agile software development environment we are expecting rapid changes.

Why tradition 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.

An agile methodology allows software development team to focus on the software itself rather than spending time over software designing and documentation. This method is more effective when we consider a situation where the system requirements usually changed rapidly during the development process.

Another key point we can find within an agile development environment is using of quick and much shorter documents and we can do things very fast.

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 in present days.

Other agile approaches include

  • Extreme programming
  • Crystal
  • Adaptive software development
  • Feature driven development

 

Following are the set of principles related to every agile software development approaches

 

Customer Involvement

Customer involvement in an agile software development environment is the major principle to consider for gaining success in the software project

Customer should be closely involved in development process form the start to the 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

Within an agile software development approach developers can work in their own way without thinking of software process. This 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 develop in such a way that it can 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 who involve in development process should support to remove complexity.

 

For More detailed reference please read the book ‘’Software Engineering Seventh Edition’’ by 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.

 

Agile Software Development Product OwnerProduct owner  

product owner basically is stakeholder or we can define as 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 prioritise them.

 

Agile Software Development Scrum MasterScrum master

He is one kind of a leader to the team unlike the traditional team leader or a project manager. He 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.

 

Agile Software Development Scrum TeamScrum team

Team may consist of developers, testers and other people involve in software development process to work as a team without following rules that we can find in the traditional software development process.  Scrum team also responsible to deliver each increment during every sprint to complete the project successfully

 

There are three types of documents used in scrum framework

 

Product backlog

Product owner is responsible for creating product back log which includes prioritiesed list of features known as user stories. It’s like a replacement for traditional requirement specification

 

User stories

Way of describing set of features should be included in the software being developed. User stories are presented in such a way that scrum team can get the clear ideas about the requirements.

 

Sprint Backlog

Sprint back log consists of highest priorities of the user stories in the product backlog and during sprint meeting scrum team identifies the main requirements to be done in the particular 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.

 

There are three types of meetings in scrum

 

Sprint Planning

Sprint planning is a meeting which basically occurs to start the sprint. The product owner, scrum master, and the team meet to discuss about the user stories. And also identifies the importance of the each user stories during the sprint planning meeting.

 

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 and then the scrum team can determine the day’s work schedule.

 

Sprint review

After each sprint, this sprint review is carried out with the participation of team members and the product owner to discuss about the completed work and what they can do to improve the process. And also a demonstration about the features in the completed product during the last sprint is done by the scrum team

 

Sprint retrospective

The aim of sprint retrospective is to look back on how team has done the last sprint and what they can do to improve the process in the next sprint.

 

Scrum workflow

Agile Software Development Scrum Workflow

  • Scrum workflow starts with the product backlog 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

 If you have found  what you expected please comment and like on our facebook page