This is the eleventh of 12 posts about the principles of agile software development. Purpose is to go back to the start of the agile manifesto (
http://agilemanifesto.org/principles.html) and discuss the implementation of the 12 principles in real life software engineering. Goals of agility are to go deliver software of higher quality, faster, with a higher acceptance to end-users and able to follow the changing business requirements to strive for competitive advantage.
The question is: is this going to work in practice or is this only based on a nice marketing and sales story.
Principle 11: The best architectures, requirements, and designs emerge from self-organizing teams.
For a long time the engineering expertise (and also software engineering) was based upon the condition that you worked with specialists. These specialists emerged from the principle of division of labour and made it possible for these specialists to focus their attention on their specialism and create the best solution within their field of expertise. The Interaction designer designed a user interface, the architect created a global systems model, developers created code and infrastructure specialists created the necessary environment to run the application on.
Everyone was specialized and delivered the best solution within their capabilities. However when all these components where put together, noting worked. It is an illusion that specialists can design and foresee everything beforehand.
Within agile projects the solution is to use a self organizing team to perform these tasks. This team may consist of specialist, but this is not a requirement. The requirement of this team is that they work together and self-organize all aspects of the systems to be delivered. This team is permitted to make errors and invent their solutions, provided that they deliver and evaluate frequently (retrospective) and learn from their successes (and errors).
Read the rest of this entry »
Agile,
analysis,
architecture,
design,
designs,
emerge,
Principles,
project,
retrospective,
Scrum,
success,
team
I consider myself father first and geek second, though some people may have different ideas about this. Tonight it happened the two met. With their mother away for a week vacation, my two sons have ample opportunity to try out every trick in their book on their beloved father (that would be me). At the same time, with my significant other away, I can take out my book as well – and meet their challenge. One of the frequent battles in our home is bedtime. It’s not that they protest when asked to retire. They will happily go upstairs. But everything from there takes for ever – undressing, neatly folding up and putting away their day time clothes, getting their pyjamas on, brushing their teeth and… the bed time story.
I have tried several ‘instruments’ for speeding up this process. Some I am not particularly proud of either. And none really worked – it still takes perhaps an hour from ‘time to go the bed’ until lights out. Tonight for some bizarre reason, I decided to apply the MoSCoW principle together with a timebox. And that seems to work quite well. The ‘project’ of getting them in bed with all the Must haves, the Should’s as well and their one big Could to some extent was completed on time – the main objective. There was no real budget involved and the quality was satisfactory (especially with their mother out of the way and not able to perform inspection of facial remants, dirty nails and unfolded clothes).
Read the rest of this entry »