Monday, September 30, 2013

Agile Software Development Methodologies

Anyone who is familiar with software development is also knowledgeable about the Software Development Life Cycle (SDLC) and/or the Waterfall software development process.  These methods seem to be tried and true in the software community but with all things involving technologies this is beginning to change.  The newest kid on the block is a method called Agile.  There are many different types of Agile mythologies such as:
  • Extreme Programming
  • Kanban
  • Scrum
  • Lean
  • Continuous Integration

Some organizations even mix a few different types of Agile to better suit their needs.  No matter which type of Agile methodology an organization chooses they are looking for a few common features:
  • Ability to change requirements late in development
  • Working software sooner and more frequently
  • Self-organizing teams, no micro-managing
  • Frequent face-to-face conversations
  • Close relationships between developers and business managers

These are just a few of the reasons organizations will choose to try an Agile method over the traditional waterfall approach.


For now I would like to focus on the Scrum framework because this is one of the most popular of the Agile Methodologies.  The teams in Scrum are called Scrum teams and they are comprised of 3 main roles. 
The first role is a Product Owner and this role is usually held by just one person in the team.  The Product Owner is the voice of the customer and is responsible for the deliverable. 

The next member is the Scrum Master which is usually held by one team member.  This person is responsible for removing any impediments to the team’s goals.  These impediments could be lack of resources, miscommunications and other issues that distract from team progress. 

The final members are the team which is typically 2-12 people.  These people are responsible for the actual work that gets done.  These members can be involved in design, development, testing, documentation, etc. 
This is the typical structure for each team.  These teams communicate constantly.  One important aspect of the Scrum method is the daily stand-up meetings.  These meetings should be held by each individual team and should only last about 15 minutes or less.  Members will state what they have accomplished since the meeting 24 hours ago and what they plan to accomplish within the next 24 hours and finally if they have any impediments or issues standing in their way.  This helps everyone understand what others are working on so productivity can increase. 


There are other meetings held during each iteration for planning and improvement reasons but this is the main structure of the Scrum Agile software development methodology.  In later blog posts I will state some of the pros and cons of the Scrum team methodology. 

Posted by: Leslie P

No comments:

Post a Comment