Over the next few weeks I'll be posting a series on software product lines - what are they, why you should care, and what are some best practices for implementing them successfully. I've been really focused over the last couple of years on getting up to speed on everything from project methodologies (particularly lean and agile including concepts like emergent design and fields like complex adaptive systems), development best practices (especially the appropriate use of testing) and developer tools (git, Hudson, xUnit, Selenium, and even a greater familiarity with the command line and TextMate). I'm now ready to bring it all together along with a better understanding of Domain Specific Modeling to make a number of changes to my in-house software product line.
Perhaps the biggest surprise is how little I plan to change in terms of the overall approach. The more that I look at other approaches, the more I appreciate the system I've built as a really nice fit for my use case, but I'm looking forward to a lot of smaller refinements based on the last couple of years of learning.
Oh, and the bad news is I've just flown back to the US, so yes, there are *lots* of postings. The good news? I'll try to spread them out and I probably won't be flying anywhere for at least a month or two, so hopefully I won't go on another blogging binge for a while!
Want to know more about the practical application of software product lines? There is a new conference devoted to the topic - from the team who brought you Code Generation. Check it out!