Software Passion Summit

So…the conference has started, and first up to talk was Jan Bosch, who spoke about software development from a business point of view, sort of. Jan is a professor of software engineering at Chalmers University of Technology here in Gothenburg.

His talk was quite interesting and entertaining, and focused on one really important point. A point that seems to be re-occurring in a lot of IT talks today. And that point is speed. Speed is key in software development today.

There are a lot of players out there, and being first or at least early, and staying there, is really important. And unless you are moving as fast as the rest of the industry, or faster, you are already dead, you just don’t know it yet.

It doesn’t necessarily mean that you have to have the best product, or be first to succeed, but as long as you have an adequate product and you are up at the front with the others, or ahead, you have a great chance of winning. If you on the other hand have a great product, but release it to late, you are screwed…

This is nothing new. Not at all…but it is interesting to hear it from someone like Jan Bosch who has the facts to back it up properly.

He also talked about how companies should/could spend their money and focus over the different areas of software development that they are involved in. He put the software into 3 layers.

The bottom layer is the “commodity” layer. It is the stuff that everyone expects to be in your product. It is the stuff that the competitors have as well. In this layer you want to make sure you make the maintenance and resource usage as limited and lean as possible…

Then you have the “differentiation” layer which is the stuff that differentiates your application from all others. The stuff that makes your application stand out and beat the competitors. This is where you should spend money and make sure it is good…

And finally you have the R&D layer. This is where you are testing out new features and new functionality. This is what will potentially be the future of your application. This area obviously cost money as well, but one should try and make sure and get facts to back up a thesis before spending too much money. Do a a bit of A/B testing to see if feature A or B is going to be the most useful and give you the most bang for the buck. Build a simple POC and let people try it before spending too much time on it…

Basically try a lot of things to get data before going forward. He mentioned for example that Google tried 500 different blue colors on their links before selecting one. And apparently the chosen color generated a much higher click rate than the others for some reason. Seems like an odd thing, and I am pretty sure that they would not have figure that out without extensive testing and trials.

And the flow is obviously that the successful R&D features move down into the differentiation layer over time. And the differentiation layer moves down into the commodity layer… And that means that the focus on what to do with the features changes over time.

A big part of the talk was also devoted to explaining that choices should be made based on data and not opinions. The base idea being that the requirements written for a project is often based on opinions and general ideas about what the end-user will want and need, and often not based on actual data. So get data  through testing, POC’s and other forms of interaction with the clients, and then base the requirements on that…

Ok, I think that was what I took away from the keynote. Sorry if it is a bit incoherent, and odd, but it is hard to remember everything from a 1 hour talk…

Add comment