Well, today was day 2 of the first edition of Practical Product Lines, and Mark Dalgarno told us that news about the 2010 edition will come in soon. Some would say that that is an indication of a succesful event. Well done, Mirjam, Danielle, Mark and Rene!
Today, we kicked off with a keynote by Dirk-Jan Swagerman of FEI Company. He started with an overview of FEIs business - electron microscopes. An interesting domain, and the explanation certainly woke up those who sleepwalked to the conference after yesterday's dinner. After that introduction, Dirk-Jan explained how FEI deals with a it's microscope product line, that serves multiple market. Impressive to see that a random selection of 400 product variants includes a 120 one offs, while at the same time all products are based on a shared reference architecture. Of course, this doesn't come for free, and they have really spent quite some effort on anchoring this architecture in their organisation, and those of selected partner companies.
FEI also analysed the applicability of 4 types of reuse (none, clone and say goodbye, clone and merge back and common shared solution) - with a nice overview of what approach fits best in which context. More details are in his slides, which will be available soon from the PPL2009 web site
Challenges remaining right now include amongst others finding ways to more efficiently test all possible variants. Regression testing really is a challenge in their case, and virtual PCs are part of their solution (you can't have physical installations of all possible family members).
After Dirk-Jan, Isabel John of Fraunhofer IESE showed us an example of the approach that was explained yesterday by Dieter Rombach: proving SPL works by doing pilot projects with customers. In this case, they have been involved with a company called Testo AG (who supply measurement tools) for about 7 years. Initially, they helped out with identifying reuse possibilities and planning a product line - starting from existing products. In later years, they were involved in defining the shared architecture and verifying architecture compliance in the code. Like with FEI, testing the product line variants is the next step to take. So far, results are quite promising: 15 products have been instantiated, reuse has increased from 17% in 2002 to 50% in 2009 and architecture compliance errors in the code has gone up from 17% to 1% in the past few years. The latter obviously has major impact on maintainability of the software.Another interesting observation was coined by Juha-Pekka Tolvanen over lunch was that Testo AG's products are quite similar to those of Polar Watches he presented yesterday. An opportunity for co-operation?
To finalize the morning session, Ton van Buren and Wim Couwenbergh of Océ presented their experiences with setting up a product line for printer controller software. They started in 2004 with what they called blob, configured through #ifdefs, and based on the steps in the printing process. Over time they changed their architecture to a more component based approach, with well defined, generated interfaces - allowing them to configure controllers for different printer set ups more effectively. Organisationally, they follow an approach where shared components are maintained by project teams, who have to take care that their changes don't break the work of other projects. A central architecture team keeps an eye on the overall picture. They've come a long way, and like FEI and Testo, they're picking up new challenges one by one.
After another great lunch, the floor was for the last keynote speaker, Markus Voelter. He took us through a comparison of modelling and programming, concluding (not surprising) that DSLs are more effective than programming, and that textual DSLs are closer to home for programmers than graphical ones. Of course, Juha-Pekka Tolvanen took the opportunity to challenge him a few times during the presentation on this and similar issues.
After the comparison, he treated us to a few very quick demos of Xtext and MPS (and a slideshow of Intentional screenshots) to show how textual DSLs can work. Then he ended by providing his vision on the future - modulare programming languages. An inspiring talk for those interested in the technical side of product line development and variability in general.
Then the floor was mine for a couple of minutes, so I could introduce the panel that was going to 'Explode the myths' on software product lines. Focus was on addressing some of the arguments that people use to explain why they don't use a software product line approach. The first few ("we don't need SPL, we can do with #ifdefs", and "large embedded systems are too complex to migrate to SPL") led to little discussions, since the panel and the audience agreed that Dieter Rombach's statement "It depends!" was very much applicable to those two. The 'myths' that "with SPL you need to test less", it's counterpart "SPL testing is more complicated than normal testing" and "SPL engineering kills innovation" led to more discussion, and also quite a few remarks and opinions from the audience. Testing can become more complicated, and that has to be dealt with, but it certainly isn't a reason not to do SPL. Innovation should be given more room by using product lines, because the product line should take care of the large part of the product that does not require innovation. However, it was noted that innovation on component level can be restricted by SPL, because component teams have to 'live by the rules of the product line'.
Overall, it turned out that there's two sides to every myth, and as a result no real explosives were handed out to the audience. More myths will be published on the Practical Product Lines forum in the coming week, so we can continue the discussion.
And that ended the PPL2009 conference, almost. Mark Dalgarno closed the conference by thanking everybody, announcing a few other conferences and the plans to have another PPL conference in 2010. Let's all make sure that that is going to be an event that is at least as interesting as this first edition.
Thanks go out to all those involved in organising this and making it into a success (including speakers and participants of course).