Agile mythology has small box iterations rather than phases. The output of each iteration will be production release deliverable and could be evaluate and get early feedback. Agile development need continuous enhancement in development process to improve software quality which keep improving businesses and their goal.
It’s not one time process but its iterative process which keep improving across the organization to better ROI and best QoS.
Note: Successful of agile development is purely depends on motivated development and business users who understand the benefits of agility with great interest
Typically agile development break the work into series of release and each release is cycle of iteration and each cycle of iteration will be having set of features
Agile planning is to review what work need to be done in each cycle (release / iteration). This is the time for the product owner to describe what he wants to see in each cycle
- Release planning: It contains a set of features for each release. Product owner will be responsible for release planning and create the release plan before staring the release
- Iterative planning: Development team will be responsible to identify the work need to done before staring the starting the iteration. This can be achieved by daily standup meeting
Tools: There plenty of tools available for Agile planning mentioned some below
- Mingle <http://www.xplanner.org/>
- Extreme Planner http://www.extremeplanner.com/>
Creating User Stories
User story is the short description of features/functionality. Features could be combinations of many stories. User stories are very simple and easy to understand which can be written in few lines within few minutes. Please note that project stockholders or business domain users write the user stories, not the developers.
As per “Mike Cohn” suggestion (in User Stories Applied) user story could follow the format as below:
As a (role) I want (something) so that (benefit).
E.g. As a user, I want to search for my customers by their first and last names
Tools: The best approach is to use index cards to write the stories. There various tools come for story mapping and tracking such as :
- SilverStories <<http://toolsforagile.com/silverstories/>>
- Pivotaltracker <<http://www.pivotaltracker.com/>>
Note: Please note that story writing is not one time it is recursive activity involve during across the project development cycle
Estimating Your Work:
Estimation in agile is to guessing how complex the feature would be and assumed the time based on past experience in completion of similar complex features. It is ongoing process which keeps improving the guessing on based on prior experience and pattern learning.
Mostly story could be estimated in points not in time. Points explain the what is the complexity of the story represent in number (1,2,3, and so on)
Estimation is good for better business decision and defining scope of release or iteration. For instance we can easily distribute the equal number for stories in each iteration/release.
As per below figure we define the estimation or size of story based on 4 parameters: No time, No deadline, Not detailed, Pattern learning)
Planning Poker<< http://www.planningpoker.com/>> is best technique to define and refine your estimate
Stand-up meeting is daily short meeting between development team to briefly describe what I completed yesterday, what I am going to complete today and current status on assigned task. Occasionally business user and domain expert could also join the meeting as well which give more visibility and confidence to them.
It is not status meeting its just to give everybody a rough idea of where the team is which give more visibility and coordination across the team and give right direction for the day plan.
Tools: I feel Whiteboard is very effective for stand up meeting
Project Monitoring Technique
Velocity is an extremely simple, powerful method for accurately measuring the rate at which development teams consistently deliver business value. Velocity is a measure of productivity that project managers sometimes use in Agile software development. You calculate the velocity by counting the number of units of work completed in a certain interval, which is determined at the start of the project.
To calculate velocity , end of each iteration, the agile team looks at the requirements it has finished and adds up the number of story points associated with those requirements. The total number of completed story points is the team’s velocity, or work output, for that iteration. After the first little iteration, you’ll start to see a trend and will be able to calculate the average velocity
Tools: Below are some tools could be used to track the velocity
- TargetProcess<< http://www.targetprocess.com/>>
- Pivotaltracker <<http://www.pivotaltracker.com/>>
- Timetracking << http://slimtimer.com/>
Burndown report is another metric to track the measure project progress. Burndown reports track the number of points completed and are used for monitoring single iterations, releases, and the entire project backlog. Burndown reports show progress, reflecting both the value delivered (in points) and the team’s velocity
Tools: Below are some tools could be used to measure Burndown reports
- TargetProcess <<http://www.targetprocess.com/Product/agile_tour.aspx>>
- XPlanner <<http://xplanner.codehaus.org/>>
- Pivotal Tracker <<http://www.pivotaltracker.com/>>
- ScrumWorks <<http://danube.com/scrumworks/basic>>
Summary: In this article i explained about the key agile process and what are the some of the tools could be used.