Making Good Software

A blog by Alberto G (Alberto Gutierrez)

Written by Alberto G

April 27th, 2009 at 11:49 pm

Are you doing agile or are you doing waterfall with some agile practices?

with 9 comments

Agile is not about following a subset of recommended practices (TDD, daily standup, task boards, user stories …), in the agile manifesto they are not even mentioned:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

You can be doing agile without performing any of the current recommended practices and you can perform all the recommended practices and still not be agile.

Lots of teams believe they are practicing agile just because they are doing standups or TDD… That’s like pretending to be a musician because you have the best instrument.

Agile is a culture not a process, Agile teams need to know the reasons for the principles stated in the manifesto, if a team is moving to Agile without understanding the philosophy behind agile, the team is at risk of keeping a Waterfall process with Agile practices.

The four main agile points are.

  1. Requirements change. Main point of Agile, all the inputs change during the software development process, actually most of them are yet to be discovered.
  2. Do it (right, right now). Forget about documentation, big analysis, big plans… Just do it, do it now, do it right.
  3. Good code over BDUF (Big design upfront). Focus on building good code as not only your code will be better, but also good code will end up creating good designs.
  4. Deliver value as soon as possible. Have deliveries and demos as soon as possible, don’t do anything if it doesn’t bring any added value to the final product.

If you stick to this four points, no matter what practices you follow, you are an Agilist. The different methodologies, like XP or Scrum, are just a set of recommended practices/tools to help you drive the software development process to handle the 4 main points. As an example XP will focus on good practices for having “Good code over BDUF” (TDD, Pair programming..),  Scrum will focus on Deliver value as soon as possible (User stories, Sprints) Do it, right, right now (Daily standup)…

Ask yourselves, do I believe the previous four points? If you don’t, you will probably have problems to become an Agile Software Developer, or you may end up doing Waterfall with some agile practices.

9 Responses to 'Are you doing agile or are you doing waterfall with some agile practices?'

Subscribe to comments with RSS or TrackBack to 'Are you doing agile or are you doing waterfall with some agile practices?'.

  1. Well, based on the 4 core principles of Agile methods, I guess my projet is 50% agile.
    Well, actually, only top executives of the project think we’re doing it “Agile style”. All the design team knows that we’ve been following a classical Waterfall methodology since the beginning with some fun twists from this “exotic so-not-serious Agile metholodology”. But, please, don’t repeat that, those guys may feel bad : “Agile” is such a cool term to use in project meetings!…

    Zackatoustra

    3 Jul 09 at 4:30 am

  2. […] This post was Twitted by alessandrod […]

  3. You’re 100% right Alberto, the most difficult shift is the culture.

    But it’s a really hard shift to make in many people’s heads: for decades we’ve been try to avoid risk by focusing on big-upfront design, trying to cover all possible scenarios and make sure we don’t mess up.

    Letting go on this “limit risk and avoid uncertainty” mentality is hard. but is possible and I see new and successful agile teams being set-up every day in my company and our partners’.

    Another important aspect on getting agile is experience. You will only be doing Agile right when you have used it in many projects. Some of them will have failed, but if your mindset is an agile one, you’ll have learned from the past mistakes and are able to fine tune your own agile process for success.

    Michel

    Michel Ozzello

    3 Jul 09 at 7:27 am

  4. […] This post was Twitted by francis_dierick […]

  5. I don’think Agile is about forgetting documentation, it’s rather about not waiting for the final documentation before starting to code. This is the concept of iteration where you will refine the software following a progress spiral like the founder of Modern Quality Management advocates in his Deming’s Wheel or PDCA (Plan Do Check Action):
    http://statistical-process-control.org/dr-demings-revolution/

    reboltutorial

    5 Jul 09 at 6:52 pm

  6. Great Post !! Must read for all pseudo Agilists.

    Project Teams have to become mature enough to follow Agile Culture as you said.Focusing on processes alone cannot make things agile. Processes should only as guidelines and people should be able to focus on those aspects of Agile makes sense in a particular project.

    Shailendra

    5 Jul 09 at 9:21 pm

  7. Great Post Alberto!
    We’re doing OK on points 1,2 & 4, but, if I’m honest we’re still working through point 3. Formalising TDD and Pair Programming has helped; refactoring is taking a while longer, but that’s more because the client wants to keep benefitting from us delivering new features each and every month, so want to keep up what I call the “Battle Rhythm”. We’re close to persuading them that a refactoring Sprint will make the code (and therefore their business-critical application) more robust, safeguarding their business continuity.

    Paul Jackson

    7 Jul 09 at 2:08 am

  8. […] This post was Twitted by ariekeren […]

  9. While I think those are four good points for Agile as it pertains to the actual software development, I think you’re missing a key tenet of the Agile methodology, specifically in regards to the first and third points in the Agile Manifesto.

    They both deal with communication. Maintaining a high level of communication with your team, customer and other stakeholders improves your chance of successfully delivering your software.

    I often hear from people claiming to be Agile that their way is the “right” way, but in my experience there is no such thing. Every project is different and you must adjust to those differences as needed. As they say, the one true agile

    Curtis Miller

    14 Jul 09 at 3:04 am

Leave a Reply