Yesterday was the first day of the first Practical Product Lines Conference. I was off for a bad start, my train got delayed, and then it got delayed even more because a lady decided to get stuck between the doors of a train that was supposed to leave before mine. She was unharmed in the end, but I got another 10 minute delay out of it.
So, I arrived about 20 minutes late in Jan Bosch' keynote, just in time to hear him explain how Software Engineering 2.0 (as applied by Amazon, Google and a few others) is based on concepts like 'the 2-pizza rule', '3x3 rule' and the power of humiliation. What it comes down to is that you work on small items, in small teams and your name ends up in the wall of shame if your team is too big or if you don't succeed because of other organisational issues. Of course, that was not the main message of his talk. He explained how software productlines were applied in the places where he worked, and still works, and how he looks at the future of software product lines. He believes we are moving toward software ecosystems where composition becomes more important than development and integration of different parts. Examples of existing ecosystems are platforms like Facebook and the Google - and what is envisioned for what Eric Schmidt calls Web 3.0. An interesting detail at the end of Jan's talk: there is no such ecosystem for mobile devices yet, who wants to jump in and fill that gap?
After Jan's keynote, we were treated to an overview of how SystemsForge uses DSLs and Feature Models to develop web sites for their customers. I was interested in that, because I am developing something similar - both because I need to set up a new web site and because I need a good example case for my students. It turns out that Peter's company has come across some of the issues I'm dealing with right now, and found a way around them. It's nice to see how a few thousand web sites are based on a few reasonably simple steps: 1) select required featurs from a feature model, 2) fill the gaps with DSL generated materials and 3) hand code the remaining small bits.
Of course, they haven't been doing this for 20 years yet, so they have some things to do. Right now they are perfecting the process and supporting tooling, and looking for ways to amongst others improve the efficiency of testing web applications created in their production environment.
Juha Pekka Tolvanen and Erik Carlson of MetaCase and ABB reported on the European MoSiS project. Juha-Pekka showed us that MetaCase's infamous Watch example has actually evolved into a real product environment - Polar watches are generating their sportswatches in a much more advanced version of that sandbox DSM example. Nice one from the MetaCase team. He also presented a case where development of a single application using DSM provided a 10-fold increase in productivity, but with the 2nd and 3rd these figures may become more realistic.
Eric showed how his organisation is working on a DSL based productline for railway control systems, that will be used to create control centers for 11 new railway stations in Norway. That's a market segment where I wouldn't have expected a product line approach - maybe because I know too little about it - but it definitely is a great case.
Dieter Rombach from Fraunhofer IESE then explained how his organisation works on SPL and bringing them from research to practise. A lot of resistance againsts change in that area is dealt with by them, simply by doing pilot projects too prove that the approach works. He stated that architecture and scoping of the product line (instead of domain modeling) are key to succes of SPL - because they provide the necessary speed to bring a first family member to the market. He agreed with Jan Bosch that the latter is important, it shows people that it can be done and avoids discussions about wasted investments.
After this session I joined an afternoon session on change and configuration management with presentation by John McGregor and Pascal van Kempen. John pointed out what the role of CM is in relation to product lines and our current software ecosystem in general: we need to be able to support 24/7 development and maintenance, during the 10-30 year life span of software intensive products. One important item that stuck with me is that each configuration asset needs to be accompanied by a 'process', a user manual. Organisations mostly fail in providing that as far as I know. John used the TOPCased DSL environment as an example of that problem. A nice side issue there was that most participants didn't know or use that environment - I wonder why...
Pascal expanded on that, showing that in Philips Healthcare product level configuration management (so software + hardware) is not trivial, and needs to handled on multiple levels and from multiple viewpoints: software, maintenance, release, manufacturing and the ever-difficult sales point of view. Each view showed some particular difficulties that his company is dealing with.
Overall, a great first day - which was helped further by the good facilities arranged by the people of Techwatch, and the excellent diner last night at the Cafe American. It led to some insightful discussions, that may be of use later today, when I chair the panel on Exploding Product Line myths. I'm still collecting myths, so don't hesitate to talk to me about yours during the conference, or mail them to me if you're not a participant.
Mark Dalgarno and I may on occasion tweet something into the world throughout the day, so keep an eye on #ppl2009