Thursday, March 31, 2011

Visualising Your Own Work

The project that I’m working on at the moment is pretty small.  I’ve been given the freedom, or ability to introduce some of the concepts that I’ve been reading, and thinking about over the last year. 

To summarise – I have my own features for the functionality that I am going to implement.  These have been written as acceptance criteria using SpecFlow – and the Given, When, Then syntax.  Hopefully, this will ensure that the product that I develop delivers what the user wants (I can’t say what the user wants as this is a confidential product).  I’ve found that my customer is extremely positive about using this, although we’ve probably not had as much face-to-face conversation as I would have liked.  Maybe I should explain this…  I’m convinced that some of the acceptance criteria would be better business aligned if we had a discussion rather than e-mail chain.  Ironically, since I’m new, I’m probably a tad nervous or shy to be forcing workshops on people (people who know me might laugh at my shy reference!).

I’ve found the Given, When, Then extremely useful and forces me to think about what is important for the user.  I’ve also used BDD/TDD for it as well – I’m more than confident that the design of the component I have written is a lot cleaner than I would have written a couple of years back.  I’m pretty happy with the design and lack of duplication in the code.  I’ve tried to be extremely hard on the refactoring – something I need to work on more and more. 

The other thing I’ve started as of today is my own visual board.  The reason for this is I’ve been struggling to focus on what to work on next.  I’m interested in seeing how this works; I can already feel the benefit of having something visual forcing me to think what is next and get on with the work!  Therefore, I know have:

I’ve had to get rid of what the cards actually say sorry, but they are just succinct pieces of work for this project.  The pink items are blocks, or rather problems with the card – these need to be resolved before the card can be moved to “Done”.

I’m not going to apply Work In Progress limits yet, I’m not sure whether I need to apply this to the project – my estimate is that the work will take 10 days, so should fit in a single iteration!?

Really I should have a Continuous Integration environment for the project!

1 comment:

Ady_Stokes said...

Hopefully your customer is positive about what will meet their criteria. I would like to think that you can say with some certainty that you have a reasonable grasp of their acceptance criteria.

Given, When, Then, can be reinforced with examples in many formats.
Given 'an input' 'a variable' 'a specific'
When 'a process' 'an execution' 'a defined criteria'
Then 'an output' 'an action' 'a result'
Given an entry of 123
When a process is expecting an entry of a value between 120 and 125
Then fireworks explode!

The customer will be delighted when the product delivers 'an action, in less than 10 clicks, that take less than 3 minutes to execute for a user who has not used the system before.'
'1 minute for a user who has more than 6 months experience with the system'

If your 'on your own' with visualising work maybe my be useful to log your work. Mail me for more info.
Keep the blogging up, I am enjoying it. Ady