Nathan Wilson

A member of the Gartner Blog Network

Nathan Wilson
Principal Research Analyst
1 year at Gartner
27 years IT industry

Nathan Wilson is a principal research analyst in Gartner Research, where he focuses on agile development methodologies.Read Full Bio

Word of the week INVEST

by Nathan Wilson  |  February 10, 2012  |  1 Comment

The word this week is INVEST. Attributed to Bill Wake, INVEST is a mnemonic that describes a good user story. One of the challenges when transitioning to agile is getting everybody to think in user stories instead of use cases. INVEST can be used as a reminder of what a good story looks like.

Independent – Not always possible, but we can dream.
Negotiable – Leave room for your customer representative to work out details with the developers
Valuable – Should provide some increment of value to the end user.
Estimable – You should be able to estimate the story.
Small – If estimate is too large, split the story.
Testable – If you cannot test it, how do you know if you are done?

I tried to come up with a clever end to this post, but everything sounds like a bad pun. So INVEST in your user stories, it will pay off in the end.

1 Comment »

Category: Uncategorized     Tags:

Word of the week – Zealot

by Nathan Wilson  |  January 26, 2012  |  Submit a Comment

The agile world contains a fair amount of zealots. People that are happy to tell you that you are not doing agile correctly and base that decision on some small difference in process. Some of these people base their statement on a belief that they have found the one true way to develop software. Some people seem to base it on the belief that you can make a lot of money selling the “one true way.”

It has been my experience that the two groups most likely to struggle with agile development are those who want it to fail, so that they can go back to the old way of doing things, and those who are most rigid about agile (or some variant) and insist on doing agile in a very specific way.

Agile is based on values and principles, as such it makes a poor candidate for a religion.

Submit a Comment »

Category: Uncategorized     Tags:

Bankruptcy

by Nathan Wilson  |  January 23, 2012  |  1 Comment

I was thinking of bankruptcy last week as I heard about Kodak and then drove by the old Polaroid office being torn down in Waltham MA. In both cases a lot of people thought that the companies would be around forever, until they were not there anymore, victims of the digital camera and their own inability to adapt. I still remember running in the park behind the Polaroid plant and smelling the same smell that you would get when you opened an old two part Polaroid picture.
It is not uncommon for large software solutions to suffer the same fate, technical debt builds until the solution becomes too slow to change and then dies under a crushing load of code that was poorly written, obsolete, and undocumented code. The code becomes Bankrupt.

1 Comment »

Category: Uncategorized     Tags:

Ostrich Management

by Nathan Wilson  |  January 12, 2012  |  2 Comments

I remember the director of development of a major corporate email system in the 90’s bragging that he had set up the system to ring is pager whenever and email was sent to him with one of a set of keywords including “slip the schedule” and “product delay”. He did this because he had noticed that announcements of missed product deliveries tended to happen when he was out of the office. Obviously, he made it a painful experience to give him bad news and people were trying to avoid it by slipping projects while he was gone.
I think that anyone who has worked for a while in software development has experienced a similar manager. It is so common that there is a term for it, an Ostrich Manager. An Ostrich manager does not want to hear about problems and usually makes sure that they don’t hear about problems until the end of a project.
Done correctly, agile development is an ostrich managers worst nightmare. Between daily standups, incremental delivery and burndown charts problems become apparent very early in the process. While some people think that adopting agile will solve all their problems, what it really does is make them obvious. You still have to fix them.

2 Comments »

Category: Uncategorized     Tags:

Fragile development

by Nathan Wilson  |  January 6, 2012  |  1 Comment

I hope that everyone had a good holiday. It is very common for someone who does not like their current employer’s agile adoption to say something like “We are not doing agile development, we are doing fragile development!”. While there are as many definitions for fragile as there are frustrated members of agile teams, I think of fragile development as what every traditional development manager fears about agile: coding without any concern for anything else (cowboy coding).

Agile is not totally unstructured development. In most agile methodologies agile is a VERY structured way of doing development while removing as many obstacles possible from delivering quality code that meets the end users need. It is not uncommon for some of the early advocates of agile to be disillusioned when they realize how structured agile development is.

1 Comment »

Category: Uncategorized     Tags:

DRY code

by Nathan Wilson  |  December 22, 2011  |  Comments Off

Although this sounds like an attribute of one of James Bond’s martinis, DRY can also describe code. DRY stands for Don’t Repeat Yourself, and it means that there should be only one copy of any non-trivial piece of code. This one is not really specific to agile, it is always a good coding practice.

I think that almost everyone in development knows the evils of copy and paste code, but it often seems quicker to just copy a few lines of code instead of refactoring it out.

We are expecting snow tonight in central New Hampshire, So I wish everyone a white holiday and DRY New Year!

Comments Off

Category: Uncategorized     Tags:

Word of the week – YAGNI

by Nathan Wilson  |  December 16, 2011  |  1 Comment

This week’s word (or more propery acronym) is YAGNI.  YAGNI stands for “You Aint Gonna Need It” and is often used in agile design discussions.  One of the hardest transitions that an experienced developeer has when they start doing agile design is that making code generic, which is very good in a structured design work, is considered bad in an agile world unless there is an immediate use for the generic nature of the component.  Because of this it is very common for someone to propose a “generic breakfast food heater” when the user story is to toast bread.  When challenged that a generic breakfast food heater is not the simplest solution for toasting bread, the designer often responds that it might be nice to be able to put a cinnamon bun in the heater someday.  The response is YAGNI!

Of course the product owner may very well add bagels and cinnamon bun warming user stories in future iterations, but that is what refactoring is for.

All of this talk of toasters reminds me of a high school student that decided to apply a new definition to the term “CD burner” in the school cafeteria, but that is a different story.

1 Comment »

Category: Uncategorized     Tags:

Hello and Introduction

by Nathan Wilson  |  December 13, 2011  |  1 Comment

I am a new Analyst and very excited to be here at Gartner covering agile development methodologies with Dave Norton. As a long term software developer/architect/manager I am going to start my blog with some agile/English translations. If you have no idea what “Pay attention to YAGNI to help to build KISS and DRY code” means, stay tuned. If you can read the previous statement, stick around and see if I get it right.

1 Comment »

Category: Uncategorized     Tags: