Good news, bad news on this one. The data is also in that we’re not doing anywhere near as much TDD as one would come to believe based on all the chatter we see on the mailing lists.
…
Apparently, agilists are more likely to do some up front modeling than they are to do TDD. They’re also more likely to write status reports than to do TDD, so if that’s not a sharp stick in the eye I don’t know what is.
…
There’s also a very clear trend for adopting easy practices such as daily scrum meetings over difficult practices such as TDD.
For the record, at my company we do a lot of developer unit tests, but almost all of them after coding. In other words, its more for regression purposes and as an aid to refactoring, than it is for guiding the design.
What about your company? Do you do unit tests? Developer unit tests? TDD?
Posted on August 5th, 2008 in Agile by siddharta || No Comment
A general rule of estimating is that the more you know about something, the easier it is to estimate. The less you know, the harder it is to estimate.
As a project goes on, you learn more and more about the project, modules and tasks. So that means the start of the project is when we know the least about the project. Applying the above rule, estimates are least accurate at the start. Yet, thats when almost all the estimates are done!
If you have been even half alive in India over the past month you would definitely have seen the IPL. I think one thing that the IPL proved was the importance of the team and man-management. It’s not the rock stars that matter, but the team that plays best together. Throughout I was thinking about the agile philosophy of valuing the team over individuals. Check out this fantastic interview with Darren Berry, director of coaching at Rajasthan Royals where he talks about their management style:
I came across this really nice Scrum Cheat Sheet on Scribd. Check it out. To get a better view, you can click the rightmost icon on the toolbar to view in full screen mode.
Roles Scrum Team Team is cross-functional and consists of 5-9 people There are no set project roles within the team Team defines tasks and assignments Team is self-organizing and self-managing Maintains the Sprint Backlog Conducts the Sprint Review Artifacts Product Backlog - (PB) List of all desired product features List can contain bugs, and non-functional items Product Owner responsible for prioritizing Items can be added by anyone at anytime Each item should have a business value assigned Maintained by the Product Owner Meetings Sprint Planning – Day 1 / First Half Product backlog prepared prior to meeting First half – Team selects items committing to complete Additional discussion of PB occurs during actual Sprint SCRUM CHEAT SHEET Estimating User Stories A very high level definition of what the customer wants the system to do. Each story is captured as a separate item on the Product Backlog User stories are NOT dependent on other stories Story Template: “As a I want So that Story Example: As a user, I want to print a recipe so that I can cook it. Sprint Planning – Day 1 / Second Half Occurs after first half done – PO available for questions Team solely responsible for deciding how to build Tasks created / assigned – Sprint Backlog produced Product Owner (PO) Accountable for product success Defines all product features Responsible for prioritizing product features Maintains the Product Backlog Insures team working on highest valued features Sprint Backlog – (SB) To-do list (also known as Backlog item) for the Sprint Created by the Scrum Team Product Owner has defined as highest priority Daily Scrum Held every day during a Sprint Lasts 15 minutes Team members report to each other not Scrum Master Asks 3 questions during meeting “What have you done since last daily scrum?” “What will you do before the next daily scrum?” “What obstacles are impeding your work?” Burndown Chart – (BC) Chart showing how much work remaining in a Sprint Calculated in hours remaining Maintained by the Scrum Master daily Story Points A simple way to initially estimate level of effort expected to develop Story points are a relative measure of feature difficulty Usually scored on a scale of 1-10. 1=very easy through 10=very difficult Example: “Send to a Friend” Story Points = 2 “Shopping Cart” Story Points = 9 Scrum Master (SM) Holds daily 15 minute team meeting (Daily Scrum) Removes obstacles Shields the team from external interference Maintains the Sprint Burndown Chart Conducts Sprint Retrospective at the end of a Sprint Is a facilitator not a manager Release Backlog – (RB) Same as the Product Backlog. May involve one or more sprints dependent on determined Release date Opportunity for team members to synchronize their work Sprint Review Team presents “done” code to PO and stakeholders Functionality not “done” is not shown Feedback generated - PB maybe reprioritized “DONE”= Potentially Shippable! FAQ Process Daily Scrum Sprint Review Business Value Each User Story in the Product Backlog should have a corresponding business value assigned. Typically assign (L,M,H) Low, Medium, High PO prioritizes Backlog items by highest value Scrum Master sets next Sprint Review Who decides when a Release happens? At the end of any given Sprint the PO can initiate a Release. Who is responsible for managing the teams? The Sprint Retrospective Attendees – SM and Team. PO is optional Questions – What went well and what can be improved? SM helps team in discovery – not provide answers Sprint Planning Product Backlog Sprint Backlog Sprint Shippable Product Sprint Retrospective teams are responsible for managing themselves. What is the length of a task? Tasks should take no longer than 16 hours. If longer then the task should be Visibility + Flexibility = Scrum Glossary of Terms Time Box - A period of time to finish a task. The end date is set and can not be changed Chickens – People that are not committed to the project and are not accountable for deliverables Pigs – People who are accountable for the project’s success Single Wringable Neck – This is the Product Owner! Estimate Team Capacity Capacity = # Teammates (Productive Hrs x Sprint Days) Example – Team size is 4, Productive Hrs are 5, Sprint length is 30 days. Capacity = 4 (5 x30) = 600 hours NOTE: Account for vacation time during the Sprint! Tools Task Board White Board containing teams Sprint goals, backlog items, tasks, tasks in progress, “DONE” items and the daily Sprint Burndown chart. Scrum meeting best held around task board Visible to everyone broken down further. Who manages obstacles? Primary responsibility is on the Scrum Master. However, teams must learn to resolve their own issues. If not able then escalated to SM. What are two of the biggest challenges in Scrum? Velocity The rate at which team converts items to “DONE” in a single Sprint – Usually calculated in Story Points. Teams not self-managing, Scrum Master managing not leading.
Also, Joe Arnold who manages the Yahoo! India offices says that one of his teams has recently moved to a Kanban process. I’d be very interested in knowing why they made the change and the outcome of this change a few months down the line.