- sorting the laundry
- stuffing it to the washing machine
- going to the market because you forgot you were low on the @#$#@ washing powder
- taking the laundry out and hanging it on a dryer
- collecting the laundry after it dries
- ironing (personally at this point I'm too pissed about the whole activity and skip this point)
- folding clothes and putting them to the drawers, wardrobe or wherever they should be stuffed..
So this basic task is as a matter of fact damn strategic operation ;] And that's the precise reason why I hate doing the laundry :) (And will probably continue to not like it :]) At this point you must already be wondering "what the hell is this guy prattling about?" Let's begin a second story then! ;)
Recently I had a small discussion with my colleague about the (un) importance of testing. He defended the concept of testing being time-consuming and thus not acceptable in software business. He represented the old school of "yes I know it's important but we don't have time for this stuff we need to get the implementation fast". What drew my attention was the last part of this sentence "we need to get the implementation fast". As if in the software business we were responsible to push the code out of the door and not give a damn where/when/what it'll be used (for). This is not the first time I hear this opinion - software developers too often forget that the code is not what we produce (yes, I know it's easy to see it this way). Our job is however do deliver functionality to the client and not the crappy, low-quality kind of functionality which she/he never wanted. The high-quality and precise reflection of her/his requirements (which she/he might have not even been aware of.. that's the hard part).
When unit testing is not the elementary part of software development the whole activity of delivering a single requirement consists of:
- requirements elicitation
- coding
- QA testing
- fixing the code
- QA testing
- deployment
- client finding bugs (this is the optimistic version where the software actually reflects her/his requirements)
- fixing the code
- deployment
Finally what's the resemblance between doing the laundry and delivering the code, you ask. There is a clear tendency for both to be interpreted too narrow! :)
Just like doing the laundry is more than putting clothes to the washing machine,
delivering the code is more than coding the implementation.
you switched to english I see?
ReplyDeleteYeap, about a month ago. It's actually all explained in this post :).
ReplyDeleteHi Pawel, we organising a one day DDD eXchange with Eric Evans and other experts in DDD. To book your place visit www.Skillsmatter.com/tb-16.
ReplyDelete