The Artima Developer Community
Sponsored Link

Agile Buzz Forum
listing problems instead of solutions

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Kevin Rutherford

Posts: 171
Nickname: spinach
Registered: Apr, 2006

Kevin Rutherford is an independent agile software development coach based in the UK
listing problems instead of solutions Posted: Apr 28, 2007 2:27 PM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by Kevin Rutherford.
Original Post: listing problems instead of solutions
Feed Title: silk and spinach
Feed URL: http://silkandspinach.net/blog/index.xml
Feed Description: kevin rutherford on agile software development and life in macclesfield
Latest Agile Buzz Posts
Latest Agile Buzz Posts by Kevin Rutherford
Latest Posts From silk and spinach

Advertisement

I've just noticed that one of my practices has changed subtly, probably sometime during the last six months or so:

I've always (ie. at least for the last twenty-five years) kept a to-do list during each programming episode. The list begins with one entry, describing the goal I'm working towards. And as I read and write code, new entries are added to make sure I go back and fix or refactor everything I see along the way. Until recently, those additional entries tended to describe an outcome - "split class Foo to create Bar and Xyzzy", or "wrap x and y into a Mouse class", for example. But recently I've noticed myself tending to write entries that describe the problem - "class Foo too large", "x,y travel around together".

I have no idea how, why or when this change happened, but I'm pleased it did. Between the time I write a particular to-do item and the time I finally get around to executing it, I may significantly change the code in that area. Or I may learn something about the code and where it wants to go next. Or the problem may disappear, as a side-effect of some other change. Either way, the solution I might have on my to-do list has a chance of being inappropriate now that the code and I have moved on. So by listing the problem as I originally saw it, I'm giving myself a much better chance of creating the right solution for it - because I'm deciding on that solution in the presence of the full facts.

I've recently been re-doing a few kata that I first tried a couple of years ago. I've noticed that my results are dramatically better now, mostly I think due to delaying the moment at which I decide how to solve each micro-problem. This effect is an example of Mary Poppendieck's "decide as late as possible" maxim. There are clear benefits in terms of the quality of my designs; and there are psychological benefits too, because I don't have to spend time trying to remember why I wanted to do each item on the list. Everyone wins.

Read: listing problems instead of solutions

Topic: A Bump on the way to SAAS Previous Topic   Next Topic Topic: STIC Wants your feedback

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use