Derik Whittaker



Remember to not dive too deep too soon

We are going through our planning process for our next delivery cycle at work.  And one thing that keeps coming up is that the team is attempting to dive way too deep way too fast.

What do I mean?

Our goal for our planning is to define as many high level user stories as we can.  We are also attempting to decompose those stories a bit to see if they need to be subdivided into smaller stories.

However, many times we find ourselves talking in terms of database tables, or object model methods/properties.  Although this is all fine and dandy in some cases as it may flush out a huge issue early on.  But, if you ask me early planning is NOT the time to start talking about architecture or database schema.

The reason this is bad (in my opinion) is:

  1. You are taking away from other stories that may need to be decomposed or created
  2. You are spending time talking about the product, and not producing the product.  Remember the product is all the really matters at the end of the day
  3. Making design decisions this early can be counter productive and actually lead to major problems.
  4. There may be people in the room (QA, BA’s, etc) which simply do not care about the low level design decisions or may not completely understand those concepts.  If this is the case you are not only wasting their time, but you may also find yourself spending time explaining details that are just not that important.
  5. I am sure there are more, but this is good for now.

Just keep this in the back of your mind.  Try to hold of making the ‘important’ decisions till the last responsible minute.  This will allow for better knowledge gathering and possible change.  I will say this, it is up to your team to determine what the ‘last responsible minute’ is.

Till next time,

Posted 07-22-2009 8:30 AM by Derik Whittaker



Jak Charlton wrote re: Remember to not dive too deep too soon
on 07-22-2009 10:12 AM

Get that Ubiquitous Language sorted first - you can worry about the rest later :)

Dale Smith wrote re: Remember to not dive too deep too soon
on 07-22-2009 10:39 AM

"the last responsible minute" - Amen, sister!  Our team still has a habit of going down the rabbit hole on design-talk in planning sessions, typically trying to anticipate entangling issues with legacy code.  It takes real discipline to stop and re-focus on business context, and leave problem-solving activities until we really understand the problem we're solving.  We're still learning.

Chris Missal wrote We Remembered Not to Dive Too Deep Too Soon
on 07-22-2009 11:10 PM

While reading " Remember to not dive too deep too soon " by Derik Whittaker , I was reminded of something

jdn wrote re: Remember to not dive too deep too soon
on 07-23-2009 1:44 AM

In my experience, #4 can be a *huge* issue, even completely outside of decomposing user stories.

Once the 'lingua franca' of discussion is defined in terms of technical details, you can find yourself in a group of QA/BA/Dev/Upper management people trying to define business functionality in terms of, e.g., database schema.  There are undoubtedly things worse than that, but not many.

I had a recent experience of observing technical people trying to explain to upper management types why there was a SQL replication problem.  There was no way that the upper management types actually understood it.  Even worse, they were then going to take that failed explanation and pass it on to their superiors.

Fascinating in a train wreck sort of way.

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Google Reader or Homepage Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of
Red-Gate Tools For SQL and .NET


SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
NHibernate Profiler
Balsamiq Mockups
JetBrains - ReSharper
Web Sequence Diagrams
Ducksboard<-- NEW Friend!


Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers


Community Server (Commercial Edition)