Smart = Agile++ by Ivar Jacobson
Posted on | 24 December 2008 | 3 Comments
Tags: agile | architecture | devoxx08 | smart | testing
One of the most entertaining talks I went to was the Be smart! by Ivar Jacobson. Although the concepts that he presented were definitely not new, he found a very clear and entertaining way to present them. A RUP guy, he told it how it is – about what I consider to be agile – while calling it not agile – but smart.
According to Ivar, here are a list of things that we don’t learn in school:
- people
- teams
- projects
- requirements
- architecture
- modeling
- testing
- documentation
- process
- knowledge
- outsourcing
- tools
From the above, I believe that teamwork and testing are becoming increasingly relevant and valuable in our professional.
I must agree with him that these topics were either not taught at all or they were not taught very effectively due to the lack of focus given to these “non-technical” topics (with the exception of architecture – which usually didn’t get ). At least that was how it was when I was at university (I graduated in 1996 at U.C. Berkeley). Perhaps there is more focus on them these days. At that time, they were starting to realize that being able to work in a group is important for the students into workplace. So they started putting people in groups to do assignments. I believe in teamwork because it is better for the company as a whole. A team that can work together and share knowledge amongst members is more valuable to the company than an individual who is supposedly `really good´. If this individual does not share his/her knowledge, then the company gets only limited benefits of the individual’s potential. In a story that I heard from Jeff Sutherland – one of the creators of Scrum – the combined effort of a team out-performed the effort of a ‘really good’ individual – an individual considered 5 times as good as the other team members. This performance was measured when the Scrum master kicked the ‘really good’ individual out of the team. Turned out that he was disrupting the performance of the other team members by refusing to work together with them.
Another topic is increasingly relevant these days for a developer is testing. Again, testing is hardly ever taught in school. I’m glad to see as over the years testing has become more and more prominent. Any developer that does not know or does not care about testing is definitely old-school and out-dated. A good developer cares about about writing testable code and has is equipped with a list of testing tools in his skillset.
Here are some of the great quotes from the talk:
A fool with a tool is still a fool but a dangerous fool
Tools are not enough, but proper use of the tools is what is important. Companies often decide on new tools without investing in training for these tools.
Software is developed by people not by process and tools
I have been always saying about agile is that it puts the human element back into software development. That is the really that it has an effect on motivating people. Feedback motivates people. Doing a good job motivates people.
Software development is like a football game – lose together or win together
When you play football, you don’t say, “I did great – I scored 3 goals – but the goalie, he let in 5 goals – he’s terrible.” Either you win as a team or lose as a team. Winning or losing may come down to your ability to work as a team.
Think big, build incrementally
This reminds me of the discussion about whether people prefer to use user stories or use cases in agile. A good explanation of the difference highlights the reservation that people have about user stories as being too narrowly focused. With requirements as with architecture, it is important not only to keep the big picture in mind, but to find a good balance between the big picture and the details. Some companies have a good grip on the big picture, while losing sight of the details, while some other companies focus on the detail without a big picture, resulting with an inflexible system.
Architecture without executable code is a hallucination
This is something that I feel strongly about. I call myself a hands-on architect – perhaps I should call it non-ivory-tower architect. The real world is not perfect like it seems from the ivory tower. Architecture is only valuable when it has been proven. Ivar says: Start by building a skinny system to demonstrate that all critical risks have been eliminated.
Law of Nature: People don’t read documentation
Only write the essentials and leave room for conversations and self-discovery later. In school, we are taught to think for ourselves, but often in the workplace, especially a big company, we are asked on our first day to read endless documentation. Honestly, I do a skim through of the table of contents and maybe the first pages. It is a pain to read through a big document. Write down the essentials with attention to bringing across the main ideas in a few words as possible.
The smart way to do testing: We are all testers!
Clean up after ourselves. Testers are the real thinkers.
I really agree with what Ivar ended the talk with:
We cannot all be equally smart, but we can all become smarter.
You got a team of people, so why not make sure everyone is working at their best potential.
Comments
3 Responses to “Smart = Agile++ by Ivar Jacobson”
Leave a Reply
December 24th, 2008 @ 18:53
I went to Ivar’s talk at EclipseWorld on the same topic. I was hoping to hear something new, something revolutionary, something to deserve the ++.
Instead I heard a talk that would have been good a decade ago, but wasn’t anything new today.
Ivar is a smart, and brilliant man – but for most people who have kept up with where technology is today, much of what was discussed was what we practice every day.
David
December 26th, 2008 @ 12:27
Hi David,
Thanks for your response.
I do agree with you. It is completely true that it wasn’t anything new to people who have been following the way software development has been going in the last 10 years. Unfortunately, I still do come across companies that don’t know these things. I found that the talk highlighted some of the concepts that are completely obvious to us but still good to see the way it was presented especially for the times when I have to bring up these points to some of my clients.
Clara
December 27th, 2008 @ 12:07
[...] Smart = Agile++ by Ivar Jacobson [...]