views:

246

answers:

8

If you had to make a case to a business about adopting or moving to an agile development methodology (like SCRUM or XP etc) what case would you make (how do you sell the concept)?

e.g.

  • How would you describe the concepts and benefits to a non-technical person?
  • If you have successfully done so, what was the winning argument/case/rationale?
  • Edit: The reason I ask is that a friend of mine (he is the solution architect at a firm) is currently trying to decide how to approach his management about exactly this topic, and I've given him what I can in terms of suggestions. Curious especially to hear from those who have successfully made a case to move to an agile-aligned methdology.

    +2  A: 

    Non-technical people are interested in projects done on time and within budget with good quality and which would satisfy their requirements at the time of the delivery. You should focus on how Agile helps to deliver those qualities.


    It's sometimes quite difficult to sell Agile to a non-technical person for two reasons:

    • The concept of not trying to plan 100% ahead is not really intuitive
    • Quite a lot of people claim that they use Agile, fail miserably to deliver anything and give the great SDP a bad name


    Talk about Agile process ability to handle changes.

    It's usually easier if you work with the customer who already work with you. You could easily show them for example all of the change requests accumulated over the time and show how they affected the schedule and the costs of the project. You could then go into explaining how Agile process will help handling such cases.

    Along the same line you could take the initial estimations done on a 'waterfall project' and compare them with real-life results.


    I would also talk about the Agile approach to quality. Testing during iterations increase the quality considerably. Short iterations with immediate feedback are great help too, mention them.

    Ilya Kochetov
    +1  A: 

    Things that sell it well is:

    • Tangible product after each iteration that can be tested, played with, and released. (Good for a product owner who likes to see what his/her money buys)
    • It brings transparency to the development process, especially during daily stand-ups and so cuts down on functionality duplication and confusion
    • Having a demonstration after each sprint educates fellow employees about what direction the product is heading, what is available after the development work and gets people talking and thinking about what would make it even better
    • Development estimations can be made to a reasonable accuracy after a dozen sprints. At least after a few modifications to focus factors.
    • Improves developer buy-in as they get to own a particular functionality
    • Cost of product changes when using Agile tends to be much smaller than when using a waterfall methodology

    Great for smallish development teams, but require buy-in from the development team.

    vanslly
    A: 

    In my experience, the one thing that instantly sells Scrum to non-technical management is the burndown chart. The idea that there is a paper chart - available for all to see and readily understand - that shows daily progress is an instant winner. It clearly shows very early on whether a project is on schedule.

    Since the backlog, sprints, daily scrum etc are all required to make the burndown chart work, sell the idea of the burndown chart first, then explain there is a need for the rest of Scrum and finally point out that it is viable to perform a three week trial of the process with minimum impact to the schedule.

    David Arno
    +1  A: 

    My Case: The organization thrashed around for a good 2 years and failed before finally jumping onto the agile bandwagon... there is no better alternative (as of now... personal opinion) to produce quality software at the rate at which the world changes. You cannot afford to make things the old way anymore. Some learn the hard way.

    Elephant in the room: Just because an idea is good doesn't mean it will be accepted.

    Logical Arguments:

    • Feedback loop is short. Customers can see working software at the end of each month/iteration, play with it... refine and tweak to taste. No more developers sucking dough for a year and coming back with an drunken elephant for the customer waiting for a horse.
    • You don't need to set everything in stone (the holy SRS) before development gets to work. You CAN change your mind to reflect change in business priorities/market conditions as time goes on.. (developers won't throw a tantrum).
    • Better communication: No more 'This isn't what I asked for!' when nothing can be done to salvage the ship. Dev talk to real customers in real time to clarify doubts and verify that they build the right thing. The onus is squarely on customer + development to ensure that the right product is built... by talking to each other.. all the time.
    • Human process: Agile recognizes the fact that software is made by people for other people. The practices facilitate interaction, learning and respect among the team. Better morale is also observed
    • Following practices like TDD, Automated tests, Pair Programming, etc. lead to better Quality products. Time traditionally spent in the 'bug-fixing-and-churning' phase at the end of the project is minimized.
    • Ease of maintenance. Regression testing is a SNAP! The systems built are amenable/easier to change/extensions.. if done right. The developers value simplicity vs over-engineering as second nature. Developers are not afraid to 'go in there and change it' vs 'I'm not touching that twisted thing.. last time's scars haven't healed yet.'
    • More realistic chance of meeting deadlines due to developer buy-in. Estimates are revised based on actual team velocity rather than gut-estimates of the person tasked with creating the chart/mpp/plan
    • Visible Progress - Big visible charts (burndowns, etc.) tell you exactly what's happening in the project without having to mine it out of secretive/reluctant/very busy people. Issues are In-your-face and can't be ignored/hidden for long. Development doesn't have to context switch to 'progress reporting' mode for a day a week to generate information for management... Easy to gather metrics that developers don't seem to mind.

    Did I break the char limit?:)

    Gishu
    >> there is no better way (as of now) to produce quality software at the rate at which the world changes. <<There is absolutely zero evidence that this statement is untrue, and a lot of evidence that it's not true. How do you think excellent software got developed in the last few decades?
    RoadWarrior
    The last decades have also seen a huge number of failed projects which were not innovations.. (peopleware) e.g.the nth payroll system. If we know of a non-agile way to produce excellent software consistently, please persist. FWIW I feel agile is my best bet to succeed.. that was my point.
    Gishu
    Removed down-vote because of your edit about this being your personal opinion.
    RoadWarrior
    Hmmm - the system says the down-vote is too old to be changed! In future, I will comment first before down-voting.I produce "excellent software consistently" without any agile methodology. At least, my bonus says so, and I was recently awarded the title of Distinguished Engineer <shrug>.
    RoadWarrior
    +1  A: 

    It's almost impossible to introduce a new methodology without specifically referring to problems with the old methodology and how the new methodology is going to fix those problems.

    In reality, you probably need to offer a bunch of choices, and then end with recommending your favourite. Come prepared with a good explanation of why it is your favourite, and with a really good knowledge of the weaknesses of your chosen methodology.

    And make sure that you're not confusing the strength of your feeling for the strength of your argument, and that you're not trying to pass off personal value choices and cultural attachments as objective technical evaluations. Your colleagues aren't stupid - they will know if you're doing this, and they'll quickly flip the bozo bit on you.

    If you want to get philosophical about this, communication doesn't actually depend on eloquence, rhetoric, or articulation, but on the emotional context in which the message is being heard. People can only hear you when they are moving towards you, not when your words are pursuing them.

    RoadWarrior
    I like this approach. I think you can build a much better case by showing how Agile development will address issues that arose from the current process than by introducing it on its own.
    Dave DuPlantis
    A: 

    I think the number one selling point to the business is that they decide what you are going to work on, so they will be setting the priorities.

    Xetius
    A: 

    My boos, a non-technical person, usually prefer to listem about how a new methodology will improve productivity of the team. So, our aproach to introduce SCRUM, as a management methodology, focused on gains at progress visibility, better communication and sooner feedbacks.

    All the other gains, as a fact of matters, seens intangible for people like my boss.

    Skubs
    A: 

    From what I have read and heard the term Agile seems to get a bad rap and scares people. From a business perspective I think what it boils down to is how can I provide business value in a more responsive way. Agile is a method of supporting the concept of delivering business value quickly.

    Instead of discussing it in technical terms I would suggest your friend discuss it in business terms and state that he has some ideas that could help deliver business value to his end customers more quickly.

    I would not reccomend he discuss XP or agile as the methods but instead introduce short, deliverable focused meetings (ie SCRUM) and then attempt to grow it from there. I feel if you tell the business that you can get them what they want faster and in a more predictible fashion and you deliver on that statement you will get buy-in to the practices that get you there.