Home > General > Using “agile” as an excuse to write poor code

Using “agile” as an excuse to write poor code

Every time I hear the phrase “we’re using agile”, I cringe. Agile is not a noun. I was reviewing the slides for a presentation titled “Agile or Fragile” and a few points stood out:

You might be fragile if…

  • Schedule takes precedence over quality in a “whatever it takes to make the date” sprint.
  • You attempt to run a virtual agile team that is spread across a large enterprise or geography.

Add value to customer

  • The focus is on delivering code to production in two-week sprints in order to meet project timelines.
  • The focus is on delivery period.
  • Customer value is limited as they must deal with buggy software until repaired.

Success requires participation

  • Issues are pushed to the backlog as nothing can get in the way of delivery.

Collaboration not just co-location

  • Not all team members are located together.
  • Teams often work together in absolute silos with little accountability for the quality of their delivery.

Quality matters

  • Progress is measured by the completion of a sprint on time.
  • Schedule over quality becomes the unspoken imperative.
  • Ship and repair is the deployment strategy.

Unfortunately, I’ve had the opportunity to see the fragile points mentioned above happen on more than one occasion. To some people, being agile gives them a chance to write poor code and add bugs or technical debt to the backlog. These poor development practices are not unique to agile methodologies, but since the term “agile” has a loose definition, it gives developers a chance to proclaim anything as agile.

I do not doubt the success of agile methodologies if done correctly. I am completely in favor of the principles behind the Agile Manifesto. However, it should be the developers responsibility to be able to identify when they’re incurring technical debt faster than they can address it. You are accountable for what you deploy to production. Do not use the “continuous delivery” principle as an excuse to deploy poor code.

  1. dunny
    September 14, 2012 at 1:21 am

    I firmly agree. It seems to me that Agile focuses on obliging the lazy/incompetent team members to actually do something and to give the development manager an easier time planning projects with the business (and the best ‘not in your requirements’ excuse to shield his precious developers from blame. Talented developers are constrained by focus on specific delivery rather than finding a Pandora’s box issue and telling the business everything will be delayed 3 days while it is fixed (no story? No fix, talk to your development manager who is a manager because he isn’t that interested in quality code).

  1. April 6, 2017 at 5:30 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: