March 11, 2013

Agile Project Management

Agile

Agile methodology is an alternative and traditional project management (waterfall or traditional sequential development), typically use in software development. It helps teams respond to unpredictability through incremental and iterative word cadences called “sprint”.

Scrum

Scrum is the most popular way of introducing Agility due to its simplicity and flexibility. Scrum emphasis empirical feedback, team self management and striving to build popular tested product increments withing short iterations. Scrum has three roles. Product Owner, Team and Scrum Master.

Why Agile? 

Agile development methodology provides opportunities to access the direction of a project throughout development life cycle. This is achieve through regular cadences of work called “sprint”, at the end of which team must present a potentially shippable product increment. When a team stop and re-evaluates the direction of project every two weeks, there always time to steer it in another direction. Development using an agile methodology preserves a product's critical market relevance and ensures a team's work doesn't wind up on a shelf, never released.

How it all comes together?

Agile teams are typically of 3 to 10 members. Projects that require larger teams are organized using many small teams, primarily segmented by technology stacks.


There are three phases,
  1. Estimations and Planning
  2. Incremental Deployment
  3. Product Packaging and Delievery

1.  Estimations and Planning

a.  Mind maps and user stories: Discussions between the team members and the client to define what actually need to build.

b.  Identify the Acceptance Criteria: A mutually accepted criteria to deem the project finished.

c.  Estimations Incubator: Team members along with mentors and architects, go through the requirements, mind maps, and wire frames to build a work breakdown structure. All project life cycle elements of every task are estimated. 

d.  Sprint Plan: Development milestones, testing plan and incremental deployment plans. 

e.  Release Schedule: Estimation of timings to release a product.

2.  Incremental Development & Deployment

a.  A series of small development iterations are planned where different tasks are carried out to implement the set of requirements. 

b.  The length of the sprint is based on many factors to be assessed by the team, but typically goes from 2 to 4 weeks. 

c.  At the beginning of each Sprint, a brief planning session will take place in which the backlog items for the sprint are selected an estimated. 

d.  The daily scrum aims at removing risks which impede the progress of the team in delivering the sprint goals. 

e.  The Scrum Master manager acts as a buffer between the team and risk.

3.  Product Packaging & Delivery

Along with all necessary documents and technical demo, product is package and deliver on time.

Useful Tools in Agile Project Management

  • Information sharing & Project collaboration: Basecamp and Zoho.
  • Version and Source Control: Git and SVN.
  • Project Management: MS Project, Redmine, Basecamp and Zoho.
  • Issue Tracking: Redmine, Harvest and JIRA.
  • Communication: Skype, Video Conferences and GoToMeeting.