the blog for developers

What Developers Need to Know About Agile

Agile is mostly driven driven by managment and consultants, seldom bottom up by developers. Some developes are suprised about agile and don’t know how to react. Lots of literature is written about agile, but very little with the developer in mind. What do you need to know about agile as a developer?

I’ll primarily talk about Scrum as the most successfull (in term of adoptions) agile method, but most applies to other agile methods.

What developers need to know about agile

  1. Much less crunch time due to better estimation, more detailed and better planning. Agile is often pull instead of push, so developers pull their work from a product owner, contrary to work pushed onto them by managment (see below). Because features are no longer pushed and there is no abitrary deadline, there is a lot less crunch time. Crunch time happens if agile teams underestimate the work or overestimate their ability. Over time estimation gets better and crunch time at the end of a sprint vanishes.
  2. More working on features. Developers in agile are not working on whatever someone wants, whatever comes to managments mind in the morning after getting up. Agile has better planning and the backlog in Scrum leads to less chaos and more predictability. But because stories and iterations are short, product management is more agile as before.
  3. Less meetings. All meetings in Scrum are pre-defined meetings and include daily standups, estimations and planning. There are much less ad-hoc meetings, meetings are time boxed and are shorter, all meetings have a clearly defined purpose with defined work results. So I consider meetings in Scrum not “meetings” but real group work. There are especially less panic status meetings because there is no crunch time.
  4. Pull not push. Developers pull features (stories) from a product owner during a planning session. They pull as many as they can do. Requirements are not pushed from customers or product management. Pull as many as you can do, strife for increasing your work.
  5. Be a critic. Agile expects you to be a critic with requirements. Your opinion is needed, there is no push in requirements. Martin Fowler writes in Conversational Stories:

    In terms of coming up with stories, what this means is that they are always something to be refined through conversation – and that developers should play an active role in helping that definition.

    Good stories follow the INVEST principle: I – Independent, N – Negotiable, V – Valuable, E – Estimable, S – Small, T – Testable. Negotiable means your opinion as a developer is needed.

  6. Agile makes you happy. There are problems in agile, and things developers need to adapt to and usually do not like at first. But in all teams I’ve worked with, satisfaction went up after the introduction of Scrum and most developers – though not all – want to stay with agile after it’s introduction.
  7. Responsibility as a team. The team wins or fails, not individual developers. The team has committed itself to stories, all developers have promised to finish those stories in the next sprint. Don’t take this lightly, it’s a major shift in responsibilites. Help each other, it’s no longer “We failed because A didn’t do B.” If the team failed, you failed.
  8. Agile is about working, high quality code. The result of agile is working, high quality code. Quality is king, pull only as many stories as you can do with high quality. Do not sacrifice quality. The pull principle (see above) gives you enough leverage to not compromise on quality. Live for software craftmanship.

Agile is a different way for thinking. Embrace agile as a developer, it will change your life and make things easier (and only some things harder) and make you love your work and your profession more.

You can leave a Reply here. Of course, you should follow me on twitter here.

You can share this post!
Do you want to tell others about this article? Use the social bookmark icons to submit this artice to the service of your choice. Thanks.

About the author: Stephan Schmidt has more than 15 years of internet technology experience and 10 years experience in agile. He was head of development, consultant and CTO and is a speaker, author and blog writer. He specializes in organizing and optimizing software development helping companies by increasing productivity with lean software development and agile methodologies. Want to know more? All views are only his own.

45 Tweets 1 Other Comment

Leave a reply.

Comments

How about
9. You get more feedback. ??? Having a tighter feedback loop is IMO one of the main features of agile.

Stephan,

Thanks for this helpful summary for developers coming into agile.

The agile community deserves pats on the back for making developers happier (by humane treatment) and enabling developers to become remarkably efficient at delivering software (by giving them the tools to release confidently). As a developer, I can attest to both being a revelation that made me happier and less cynical about my work.

Developers coming into agile can look forward to becoming quite good at Delivery.
It’s worth mentioning that the area of agile that’s poised for evolution is what post-agilists Jeff Patton and David Hussman call Discovery. Discovery is something we’re not so good at yet.

Discovery is understanding what represent value to your users. I believe we’ll also see the merging of the agile and the Interaction Design or User Experience communities (e.g., see Alan Cooper’s work)

Agilists have relied much too long on a largely clueless proxy to our users known by various names including “Product Owner”, or the more nebulous “The Business”. From practice, many developers have come to realize that these well-meaning folks set our priorities based on notions and whims rather than customer data or direct investor return. None of us, developers included, have spent enough time considering what our user community or our bank-rollers value about our software.

Our community claims to measure something we call velocity, when it’s really just speed. The direction component in velocity is lacking.

“If you don’t know where you are going, it’s easy to iteratively not get there.”
~David Hussman, Nov 3rd, 2009 from TweetDeck

For those coming in green to Agile, you’re going to like it. Be prepared to have fun becoming more efficient, more accountable, and more collegial & collaborative.

None of the books or blogs will tell you that you also must prepare for focusing on what represents value to users and investors in the product you’re growing. And ways to *verify* customer/user value. If we’re delivery junk, who cares how fast we can delivery it?

Cheers,
Bob

@Erik: Agreed

@Bob: Thanks for the insights. I also like what Steve Blanks says about discovery. Ans what I would call Trans-Scrum concering value.

I enjoy the meetings of Scrum. Unlike other meetings, they are up to the point with the progress and issues and have specific outcomes that help in the progress of the project.

Having a sprint actually puts more pressure on the developers to develop something to show. However making it a team effort enables developers to get help and provide help for anyone who needs it.

You can’t over-emphasize this: Agile is about working, high quality cost.

Pretty much everything in Agile either is there to achieve that, or can only work if you have do achieve it.

Which, by the way, is why SCRUM without some good best practices on the technical side so often fails.

@Daniel: “[...] high quality cost?” :-)

“Which, by the way, is why SCRUM without some good best practices on the technical side so often fails.”

I agree.

I meant “code”, obviously. :-)

Wow, I’m aghast at how many typing errors there were! Let me redo it:

You can’t over-emphasize this: Agile is about working, high quality code.

Pretty much everything in Agile either is there to achieve that, or can only work if you do achieve that.

And this is the reason, by the way, why SCRUM so often fails without some good best practices on the technical side.

Agile Development has great marketing lines. Countless people go on and on about how agile is great for XYZ if you just enact policy A, B and C.

However I’ve heard horror story after horror story from actual developers in companies that have tried to adopt Scrum or other Agile techniques and failed in a most spectacular way.

It seems like it’s a very fragile thing and could easily do far more harm than good.

From the success stories I have read, they almost always caveat that they only adopted some of the practices because they found that some just didn’t work well.

Stephan, I couldn’t tell from your post, but are you speaking from first hand experience of actually being part of a real life implementation of these techniques or are you just parroting what you’ve learned about the practices?

It all sounds good, and as a developer it’s easy to read things like this and get excited about it. But it smells a bit like fish oil to me.

@Robert: “However I’ve heard horror story after horror story from actual developers in companies that have tried to adopt Scrum or other Agile techniques and failed in a most spectacular way.”

I was yesterday at my old employer (the biggest real estate portal in Germany) who migrated 150 people to Scrum. After a survey nearly noone wants to go back to waterfall. There are problems in Scrum, but the alternatives (in the domain of websites) are far worse, and include budget overruns, frantic movement of developers to the currently most important project, crunch time crunch time crunch time, missed deadlines.

“Stephan, I couldn’t tell from your post, but are you speaking from first hand experience of actually being part of a real life implementation of these techniques or are you just parroting what you’ve learned about the practices”

My agile/Scrum story is this:

Started playing with XP when the first XP book was published, then done consulting work on agile (XP), then became an CSM and did Scrum with a group of students for dev projects, then moved to IS24 and introduced Scrum with some others, became ScrumMaster there and converted a team, moved to brands4friends as head of development and introduced Scrum. In all 3 usages over the last 5 years most of the stakeholders have been happy (some not, as they lost power, influence, control or other things). Not sure what you make of this experience, I lack years of agile as a developer, but talked to several dozens over the last years (those on my teams and others).

@Robert: The biggest failures of Scrum happen when you do not get the buy in of upper managment. Then you get conflicts between different goals. Seen that in other companies.

Stephan,

Nice post! At our company, agile/scrum was introduced by developers. Those of us on the management side had to play catch-up, which we did. I’m a big fan of agile/scrum, and I just recently blogged about the benefits of agile from a management perspective. I’d be interested in your take.

http://softwareresults.blogspot.com/2010/02/achieving-higher-productivity.html

Regards,
Dave Moran

Dave, liked your post, agree, especially with “The correct implementation of Agile/Scrum can be more of a challenge than you might realize at first.”

Jecc

@Daniel Sobral

Your typing errors fit the original post, really.

@Jecc: Could you help me with the typos in the original post? After reading a post a dozen times it gets hard to find typos, and the spellchecker in Wordpress completly destroys HTML tags, so I do no longer use it. Other ideas?

@stephan: When thinking about what I’ve heard from developer friends, you are right that most of the time it’s because upper management didn’t truly embrace it.

The premise of this article : “Agile is mostly driven by managment and consultants, seldom bottom up by developers.” doesn’t fit with my experience at all. Most developers I know are trying to migrate to more agile ways of doing things and it’s usually management that doesn’t understand how to handle and facilitate this. In my experience management often has trouble letting go of the security big design up front seems to give them, they want to have a clear understanding of what is going to be done when. I’ve seen several cases where practices like TDD and pair programming were actively discouraged by management because of perceived ‘inefficiency’.

I think you won’t get far telling developers “everything is going to be fine”, like you seem to be doing and then let managers, or even worse, external consultants do the work. The way I see it agile is development centric. I think you’ll get a lot further with developer driven agile adoption with management buy in than management driven agile adoption with some developer buy in.

Maybe you should write a blog post with “What managers need to know about agile” instead.

@Mendelt: I’m not sure I wrote the things you’ve read in the post. From the adoptions of Scrum I experienced, these were driven by middle managment, not by developers. There might be individual developers who dabbled with agile, read books and want to do it, very few start with Scrum against the wishes of managment.

Upper management often ignores Scrum/Agile or has problems, mostly with the up-front-aspect.

““What managers need to know about agile”

Just take any agile book or agile text, it’s usually written for managers.

Here’s another thing that developers need to know about Agile, it’s designed with a “team of outstanding developers in mind”. E.g. everyone on the team has to be a very bright developer, slackers are not permitted and can be easily caught. This, of course, will put a huge stress on the developers at the beginning of the adoption phase. Agile has its limitations, and these limitations greatly affect developers and their perception of Agile.

Stefan Schubert

I clearly love agile. Agile belongs to a set of modern company organization tools that has something to do … yeah with brightness.

I have seen people grow because of agile, who were not so present before. Agile, properly done, gives you one thing: A big bunch of people who take over responsibility for your company. And this alone gives me an environment were I love working in.

[...] What Developers Need to Know About Agile (codemonkeyism.com) [...]

Leave a Reply

What people wrote somewhere else:

Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm (via @codemonkeyism)

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

RT: @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

RT: @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

Nice short posting by @codemonkeyism on agile basics for developers: http://j.mp/cueSiI

This comment was originally posted on Twitter

RT @codemonkeyism Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm

This comment was originally posted on Twitter

RT: @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT #yam

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: What Developers Need to Know About Agile http://bit.ly/bi40pm even more praise for #agile, if ever needed.

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

az1

RT @codemonkeyism: “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm

This comment was originally posted on Twitter

RT @codemonkeyism Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

Mida võiksid arendajad teada väledast tarkvaraarendusest http://bit.ly/disQWV http://bit.ly/9ydn74

This comment was originally posted on Twitter

RT @markusandrezak: Nice short posting by @codemonkeyism on agile basics for developers: http://j.mp/cueSiI

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

What Developers Need to Know About Agile, by @codemonkeyism http://codemonkeyism.com/developers-agile/

This comment was originally posted on Twitter

RT @laogao: What Developers Need to Know About Agile, by @codemonkeyism http://codemonkeyism.com/developers-agile/

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: What Developers Need to Know About Agile http://bit.ly/bi40pm

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: What Developers Need to Know About Agile http://bit.ly/bi40pm

This comment was originally posted on Twitter

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

What Developers Need to Know About Agile http://codemonkeyism.com/developers-agile/

This comment was originally posted on Twitter

“What Developers Need to Know About Agile” http://is.gd/8421w #Development #Agile

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: What Developers Need to Know About Agile http://bit.ly/bi40pm

This comment was originally posted on Twitter

What Developers Need to Know About Agile: http://codemonkeyism.com/developers-agile/

This comment was originally posted on Twitter

We develop web sites for many firms

This comment was originally posted on Web Development Blog

RT @codemonkeyism: Just blogged “What Developers Need to Know About Agile (Scrum)” http://bit.ly/bi40pm – Please RT

This comment was originally posted on Twitter

Shared… What Developers Need to Know About Agile (by @codemonkeyism) http://ping.fm/f3Avk

This comment was originally posted on Twitter

What Developers Need to Know About Agile http://ping.fm/f3Avk (by @codemonkeyism and @jurgenappelo)

This comment was originally posted on Twitter

http://bit.ly/ajFKVn: ‘Agile mostly driven driven by managment and consultants, seldom bottom up by developers’ ??? not my experience at all

This comment was originally posted on Twitter

What Developers Need to Know About Agile http://j.mp/denN2c

This comment was originally posted on Twitter

Awesome article on ‘What Developers Need to Know About Agile’: http://ow.ly/188IQ

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: What Developers Need to Know About Agile http://bit.ly/bi40pm

This comment was originally posted on Twitter

http://tinyurl.com/yaoceog
Code Monkeyism: What Developers Need to Know About Agile

This comment was originally posted on Twitter

What Developers Need to Know About #Agile http://bit.ly/c1FA0D

This comment was originally posted on Twitter

RT @darcia: What Developers Need to Know About #Agile http://bit.ly/c1FA0D

This comment was originally posted on Twitter

RT @GenerationAgile: RT @darcia: What Developers Need to Know About #Agile http://bit.ly/c1FA0D

This comment was originally posted on Twitter

Additional comments powered by BackType

Guide to CodeMonkeyism

Over the last 4 years I wrote many articles on this blog. To make it easier for you to find the relevant ones, I've organized them into topics.

Top 10

6 reasons why my VC funded startup did fail

Go Ahead: Next Generation Java Programming Style

Java Interview questions: Write a String Reverser

The dark side of NoSQL

7 Bad Signs not to Work for a Software Company or Startup

Is Java dead?

Scala vs. Clojure

Never, never, never use String in Java

No future for functional programming in 2008 – Scala, F# and Nu

Clojure vs Scala, Part 2

Java Developer

Is Java Dead?

Go Ahead: Next Generation Java Programming Style

Be careful with magical code

All variables in Java must be final

Never, never, never use String in Java

Bending Java: More readable code with methods that do nothing?

NoSQL Guy

NoSQL: The Dawn of Polyglot Persistence

The dark side of NoSQL

Essential storage tradeoff: Simple Reads vs. Simple Writes

Sharding destroys the goals of your relational database

The unholy legacy of databases

Startup/CTO

Development Dream Teams

6 reasons why my VC funded startup did fail

American vs. European style of Software Development

12 Things to Reduce Your Lead Time and Time to Market

The high cost of overhead when working in parallel

Essential storage tradeoff: Simple Reads vs. Simple Writes

Job Seeker

Another Good (Java) Interview Question

7 Bad Signs not to Work for a Software Company or Startup

Java Interview questions: Write a String Reverser (and use Recursion!)

Java Interview questions: Multiple Inheritance

As a Manager: What I value in developers

Top 10 Tips (+1) to Get a Pay Raise

Agilist

What Developers Need to Know About Agile

5 Practices Better to Change in Your Scrum Implementation

Scrum is not about engineering practices

ScrumMaster and ZenMaster: The joke of certification

What is Trans-Scrum?