Agile FAQs
  About   Slides   Home  

 
Managed Chaos
Naresh Jain's Random Thoughts on Software Development and Adventure Sports
     
`
 
RSS Feed

Recent Thoughts
Tags
Recent Comments

Agile is Counter Intuitive

Friday, November 26th, 2010

I hear many people claim Agile is just common sense. When I hear that, I feel, these guys are way smarter than me or they don’t really understand Agile or they are plain lying.

When I first read about test-first programming, I fell off the chair laughing, I thought it was some kind of a joke. “How the heck can I write automated tests, even without knowing what my code would look like”. You think TDD is common sense?

From traditional methods, when I first moved to monthly iterations/sprints, we were struggling to finish what we signed up for in a month. Its but natural to consider extending the time. Also you realize half day of planning is not sufficient, there are lot of changes that come mid-sprint. The logical way to address this problem is to extend the iteration/sprint duration, add more people and to spend more time planning to make sure you’ve considered all scenarios. But to nobody’s surprise but your’s spending more time does not help (in fact makes things worse). In the moments of desperation, you propose to reduce the sprint duration to half, may be even 1/4. Surprisingly this works way better. Logical right?

And what did you think of Pair Programming? Its obvious right, that 2 developers working together on the same machine will produce better quality software faster?

What about continuous integration? Integrating once a week/month is such a nightmare, that you want us to go through that many times a day? But of course its common sense that it would be better.

How about showing working software demos weekly/monthly somehow magically improving collaboration and trust. Intuitive? And also shipping small increments of software frequently to avoid rework and get fast feedback?

One after another we can list each practice (esp.the most powerful ones) and you’ll see why Agile is counter-intuitive (at least to me in early 2000 when I stumbled upon it).

Stop Sprinting, Start Minting

Friday, October 23rd, 2009

These days, its common to see teams doing the Product Backlog Management to Sprint Planning t0 Daily Scrums to Reviews to Retrospectives perfectly fine, as described in the book (or the 2 days Certified Scrum Master course). We are doing all the process stuff correctly, except that we don’t seem to be”actually” making money (minting). But somehow along the way, we seemed to have missed the point.

The problem I see is, teams are doing all the process stuff, as they are told, except that, post demo they don’t actually release the software (deploy it into production). Most teams are very happy showing the demos at the end of the sprints. They start thinking that this new process they are following is magical. Until 6 months later, their so-called “Product Owner” comes backs saying I didn’t quite expect “this” this-way and I thought “that” would be “this” and not really “that”. That is when it hits the team that what they were really doing was building inventory and basically doing a compressed-waterfall.

Until you actually release your software and see your end-users actually use it in real life, you don’t have the most important feedback. Hence you are not “done” until you really see you users use the feature you just released (and probably you are not even done after that. “Done-Done” was a cute concept, get over it). There is no better means of feedback nor is there a better risk-reduction strategy other than releasing software to production frequently (at least every week).

Remember code that is not yet deploy and just sitting in your repository is a liability. So is, all your fancy product backlogs and grandiose plans.

Standup Meetings: Missing the Forest for a Tree

Wednesday, May 20th, 2009

I’ve seen some teams getting so caught up in answering the 3 questions of the stand-up meetings, that they even forget the objective behind the standup meeting.

Following are NOT the goals of a standup meeting:

  • Get in-sync or to know who is doing what & where they stand. 
    • That information can be achieved through the story-wall (virtual story-wall if you are using a Agile PM tool). If you are a team of 3-4 people and sitting next to each other, you’ll anyway have this information (you better).  
  • To identify impediments. 
    • Why wait till the standup meeting to identify something is blocking you. If you can’t solve something yourself, bring it up to others notice immediately. Don’t sit on it.
  • Status report. 
    • This is the worst goal you can have for standup meetings. We are moving away from micro-management. 
  • Communication to the chickens. 
    • Again they can look at the project status on the story-wall. Or they can stop by in the team room and talk to someone informally. We don’t need to have a meeting for them.
  • And so on…

IMHO the real goals of a standup meeting is

  • To come up with a Game Plan till the next standup meeting. 
    • Its an opportunity to inspect and adapt 
    • Helps in doing micro-re-prioritization 
    • Helps in keeping everyone on the same page as far as the goals/vision is concerned

If answering the 3 questions helps towards this goal, then go ahead. But don’t think of them as an end in themselves.

Scrum fills a gap

Wednesday, June 25th, 2008

I used to think the only reason why Scrum is so popular today is coz of their “over-the-counter” certification programs. After thinking about it, I started to question myself, why others cannot see that the whole certification thing is so flawed? My best guess was, if I can see, I’m sure a lot of other people can also see through it. Then why is it so popular?

I talked to close to 50 companies that claim they are practicing Agile (read as Scrum). I tried to understand what was the driving factor for them to choose scrum. Some obvious points came across:

  • Its easy to get Management buy-in coz Scrum is big on Project Management aspect
  • Scrum is very simple, so we can start doing it without a huge change to our existing organization structure and culture
  • Its easy to find training (certification programs)

Most people said it was a good starting point. After doing Scrum for a while, we realized Scrum alone will not help much, we need some XP practices for sure.

The I asked them, why did they not choose to start with XP? What was the biggest concern?

Surprisingly most people said that, we have heard that in XP you don’t need Managers. Most people who do XP, claim that middle-management becomes a big road-block for them. In most organization they cannot get rid of middle-management nor can they find something more interesting/valuable for them to do. So XP becomes a big No No for them. But with Scrum, what lots of organizations do is, they send their managers to Certified Scrum Master classes and make them Scrum Master. Some become Scrum Masters on teams, some become Scrum Masters for their Scrum of Scrums. This way they get middle-management on board.

So looks like Scrum has found a way to address the role of middle-management. Hence fill the gap. I’m not too sure if I agree with this, but its a fact of what I see out there happening.

Disclaimer: Personally I don’t care what people do, XP, Scrum, Crystal, DSDM, RUP, Spiral, V&V, etc. As far as it really helps them and constantly improves them its great. But if they are just doing/following some process for the sake of the label, it really bother me.

    Licensed under
Creative Commons License