Last week I attended the SET 2009 in Zurich. The conference – organized by SIGS DATACOM – is not as big as their flagship conference OOP. About 160 people visited the conference, it took two days and had a nice programme organised in three parallel tracks.
I was there because I gave a talk on the problems of reuse and the potentials of design for maintenance but that’s not what I want to talk about here.
In the other time I took the opportunity to attend a view other sessions and talk to other people and I’d like to talk about two interesting ideas I picked up there.
First I attended a talk about the experiences with a virtual development team given by Stephan Wald. At some point in his talk he claimed that development in virtual teams only works with a certain type of developer. He said that this way of working together requires developers that are willing to collaborate a lot, share their results, document what they have done, and so on. Or to say it the other way around: Those “IT superheroes” or “lonesome cowboys” (in their self-perception) who are doing everything on their own, not sharing anything and especially not their code, do not fit in those projects even if they produce results extremely fast. The virtual approach just does not work with this kind of developers.
I found this observation very interesting because I always felt somehow ambivalent about this type of “shared nothing” people. On the one hand those guys often were excellent developers that were able to save a project that fell behind schedule within a weekend (which often made them kind of manager’s darling). On the other hand they always created sort of a black hole in their perimeter making themselves irreplaceable – also within a weekend.
When I talked about this at lunch with some other people another speaker just stated that he thinks those “IT superheroes” are always a problem in any kind of project. The virtual, distributed team just makes it obvious very quickly. The other people on the table agreed and I also think this guy is right. So, for me I think with virtual, distributed teams the era of “IT superheroes”, those “lonesome cowboys” should come to an end or otherwise the projects they are involved with will come to an end – much earlier than expected.
The second very interesting idea I’d like to share is the talk that Peter Sommerlad, one of the authors of the first POSA book and meanwhile professor at the Institute for Software in Rapperswil. Peter gave a very interesting talk about “Decremental Development”. The idea is to get rid of all unnecessary complexity in the code and to shrink it down to a fraction of its original size this way making it easier to understand and to maintain.
I found this talk very interesting because it also stressed the importance of maintainable software, no matter if it is on the architecture level that I talked about in my presentation or on the design and code level that Peter talked about. For my part I think at least at the conferences people start to realise that design and code for maintenance is the real issue that needs to be addressed badly to keep the TCO (Total Cost of Ownership) of software in balance.
It is not about always picking the cheapest implementation to create a nice punctual business case neglecting the follow-up costs caused by the cheapest solution. Instead it is about optimising the total costs of an application regarding the whole lifecycle of the application – and maintenance is the by far biggest part of an IT applications lifecycle.
I think when people start to become aware about this at those conferences it might still take a while until it becomes common understanding but it is definitely a step in the right direction.
Those were the two ideas I wanted to share. One last tip: If you should ever go to the SET use public transport. If you are – as I am – used to the common delays of the Deutsche Bahn it is simply great using public transport that is so punctual and reliable that use can set your clock to its schedule. Hence, use public transport, relax and enjoy it … 😉