AgileNCR 2010 conference was held in Gurgaon on 17th & 18th July 2010. This largest community driven conference was the Fourth edition of Agile NCR and was organized in collaboration with ASCI. This time the event was based on four major themes : 'Agile for newbies', ' Agile Adoption Challenges', 'Workshops and Software Craftsmanship', and ' Post Agile'.
52. Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
* Aman and Pk, both of us, work in ThoughtWorks Pune on the same project team: it is a project run in a distributed fashion between US and India.
* Our agenda is “Putting …”
“… in context.” quickly explain how agile blogs, articles, etc throw words around and typically explain things in glossary-like fashion, and this session is aimed at putting terms in context to help understanding better quickly explain format while setting up a chart paper titled “Vocabulary”: we’ll capture “buzzwords” from audience, and then go through visuals, ticking off those terms we come across, spending a little time explaining them (the audience will contribute too)
“Typical day” stands for any of the days in the middle of a running iteration
Team standup at start of day Everyone speaks briefly Shares token one after the other
BA sharing updates of overnight call/emails. Talk a bit about what BAs do. Proxy for a customer. “Onsite Customer”Proxy for “ProductOwner” aka “Customer Proxy”
QA talking about automation progress and environmental blockers. Mention that QAs are a part of the delivery team.
Devs sharing boring “will continue on story” updates
PM: Basically “no updates”… just kidding. His updates are typically about the status of blockers.PM is the manager for the project and is responsible for tracking blockers and communicating with client management.Closer to “ScrumMaster” than traditional PM
The sign-up process where devs choose new stories as BA prioritizes, or devs switch pairs on running stories (collective code ownership entails that folks work across the code base; switching between stories encourages this further)“Pair programming”“Promiscuous pairing”“Sign up”“Story wall”“Collective code ownership”
A closer look at the swim lanes in the story wall. Could have an online version additionally: Mingle. Swim lanes are flexible, catered to project needs. In our case, we aligned ourselves with client processes (notice Ready for UXD)“swim lane”“story lifecycle”“color coding”“story”“tech task”“spike”“bugs” or “defects”“showcase”
What a story card looks like.“story format”“estimates”“business value”“Ron’s 3 C’s: Card, Conversation, Confirmation””INVEST”
We are a distributed team after all, and no matter what, emails remain a main channel of communication“distributed team”“colocation”“communication”
When a pair picks up a story, a BA, a QA, and the dev pair get together to talk about the story and its acceptance criteria… this info is captured with some detail and mockups on a wiki“story kickoff”“collaboration”“documentation”
Mingle as awesome as it is, sometimes clients have existing systems that need to be used… this wiki page captures the story narrative.“narrative”“acceptance criteria”“assumptions”“business value/context”“story format”
Pair-programming
Devs read through narrative again, this time tasking technical decisions/steps at high level
Devs developing at lower design level with “ping pong” style of pairing, follows the TDD mantra of red-green-refactor where one person writes a red test, another writes code to make it green, and then together they refactor while keeping test green. This enhances the code design incrementally.“ping pong”“ball and board”“red-green-refactor”“tdd”“refactor”“evolutionary design”
One can also break from ping pong for real ping pong: benefit of pairing, you’ll always have someone to play with“pair programming”“feedback”“team bonding”“pair ke side effects” / “jab pair kiyatohdarnakya”
Finally a break from ping pong to discuss stuff. Discuss blockers, tech updates of general dev interest. Should be short or else it becomes “dev hurdle”“dev huddle”“colocation”“blockers”“design decisions”“functionality clarifications”“technical impact”
NoWii if build breaks: pair gets pulled by team member to fix the build“continuous integration”“information radiator”“builds”“working software”“smoke tests”“build cop”“automated tests”
Finally things can proceed as normal with the devs if the build is green.“collective ownership”
A quick validation that all acceptance criteria have been met satisfactorily at a high level glance“volleyball”“validation”“confirmation”“acceptance criteria”
The wall is typically up to date: as soon as a story gets dev complete, it is moved from one swim lane to another, similarly for a blocked story, and so on.“visibility”“transparency”“story wall”“information radiator”
Another information radiator of how well the iteration is going“story points”“velocity”“information radiator”“respond to change”“visibility’
BAs working with stories for the next iteration“iteration planning”“respond to change”“embracing change”“changing requirements”“just in time”“business analysis”
QAs are writing automated functional tests forstories; simultaneously they identify scenarios of upcoming stories based on BA/client inputs“automation”“functional tests”“scenarios”“just in time”
PM is working on staffing plans: while taking care of blockers and internal/external communication, the PM also takes care of operational responsibilities
Remember we are distributed… time to mention any follow-ups needed“distributed”“colocated”“communication”“transparency”“customer involvement”
This is a pic of another day’s standup (doesn’t matter if we’re wearing the same clothes!!)… anyways, it’s not very different except…
PM: “Guys, we have a showcase today! How many stories will be done by noon? Who is preparing the sandbox?”
Sharing of current iteration’s achievement and upcoming iteration’s plan“Iteration Planning Meeting”“IPM”“Iteration status”
This isn’t a fake PPT… we thought not to embarrass our clients with pictures of onsite… but yeah, some projects have showcase during overlap hours and are driven from offshore using webex“showcase”“demo”“feedback”
“Typical day” stands for any of the days in the middle of a running iteration
This is a pic of another day’s standup yet again (yes, doesn’t matter if we’re wearing the same clothes!!)… anyways, it’s not very different except…
PM: “Guys, we had a great showcase yesterday! Excellent job everyone! We planned for 81 points and delivered 78! Some points are still stuck in UXD… Oh, and remember retrospective at 12.”“points”“iteration”
This gets updated every iteration end… simple chart but says a lot.
We have retrospective every iteration end“retrospective”“facilitators”
We have retrospective every iteration end“retrospective”“agile”“adapt”“feedback”“open”“transparency”
The team gets functional/business insight into all the stories planned for the iteration and shares realistic feel of how long each story would take (each story had a pair look into it before the meeting)“Post-IPM”“context sharing”“estimation”“replanning”
At the start of the project…“inception”“requirements gathering”“business context”“technical overview”“high-level architecture”
Lot of whiteboarding, coming up with master story list (high level), and estimation“technical overview”“architecture”
Estimation in story points: relative units“fibonacci”“powers of 2”“t-shirt sizes”“ideal days”
Team room during inception. Run as mini-project: deliverables are project release plan, staffing plan, master story list
We still have fun. Whose head is that?
Agile Manifesto: following it in spirit in the things we do