This week, get to know Lee Ackerman
. He talks about his passion for Patterns Based Engineering that resulted in co-authoring a book, plus what he's working on now with pureXML. What drew you to a career in technology?
Personal computers were becoming prominent as I was growing up. Between trying to write some code on TI99/4a's, Vic20's, Commodore 64's and playing video games – I've always been drawn to computers and technology. I still have fond memories of getting issues of Compute magazine and trying to use some of the code for the games they published each month. So it was a natural progression to go from these interests into taking technical courses at elementary school, high school and university and then finding related career opportunities. Congratulations on the publication of your new book on Patterns Based Engineering! What is Patterns Based Engineering all about and what sparked your interest in it?
Thanks! Myself and my co-author, Celso Gonzalez, are quite excited to have the book completed and shipping. The idea behind Patterns-Based Engineering (PBE) is that we need to be systematic, disciplined and look to quantify our efforts in using patterns to create software solutions. Where a pattern is a proven, best practice solution to a known, recurring problem – within a specific context. The patterns that we look to use can either be a specification – a formal, written document that describes the pattern. Or, we can look to use a pattern implementation – where we have an automated version of the pattern. As part of the PBE effort, we look to bring together an optimal mix of pattern implementations and pattern specifications – while incorporating a combination of patterns that we find available in the community along with those patterns that are unique to our organization.
I had been using patterns in my development efforts for many years – and had seen some of the struggles that existed in getting an entire organization to learn about and then successfully use patterns. Along the way, I began to work with the Rational modeling tools – and spent a great deal of time in helping others to use these tools. A key aspect of working with these tools was the ability to automate patterns – both in terms of impacting the design in UML, but also in generating solution artifacts such as code, scripts, and other text-based materials.What tools do you think are essential for Patterns Based Engineering?
A good place to start is recognizing that having the right mindset is the most essential aspect to success with Patterns-Based Engineering (PBE). We need to be on the lookout for opportunities to use patterns and to capture new patterns. And it needs to be a mindset that goes beyond just an individual – we need teams and organizations thinking about what patterns are available, which need to be captured and where it makes sense to invest in capturing/using patterns.
With such a mindset in place, we can then look at how we use patterns. At its simplest, we can look to use pattern specifications – written, formal descriptions of patterns. In terms of tools – we can get by with tools as simple as an editor and some shared online space.
As we look to automate and grow out our efforts, we can look to use tools such as Rational Software Architect and Rational Asset Manager to help us in creating, using and managing our patterns.
In addition to the PBE book, we've also written a development practice that details the roles, tasks, work products and key concepts associated with PBE. To read the content in the practice, all that's needed is a standard web browser. However, we can take things much further if we use products such as Eclipse Process Framework Composer or Rational Method Composer. These tools allow us to customize the practice – AND – we can integrate the practice with other practices (such as Scrum, XP, etc). This enables us to create a process that is unique and specific to our organization.
What was the experience of writing a book like - what were the biggest surprises?
Writing a book was a great experience. It helps to have a great partner to work with – I'd expect that it would be a much more difficult project to try and handle the writing on your own. Going into this effort, myself and Celso had collaborated on a number of projects in the past – so we had a very good working relationship already in place. This provided us with a good foundation to build upon.
Some of the things that stand out from this experience include:
- Willingness of others to help out. We had many people along the way take time to provide us with their thoughts and input.
- Find tools that can help. We used a number of products to help us. This was especially important as this was a distributed effort – we don't live in the same city. So it was critical to have tools that supported us in communicating, sharing artifacts, and versioning our content.
- And the last item – which was the biggest surprise – was just the length of time and amount of effort that went into the process. Overall we took over a couple of years to go from initial writing of the book proposal to having the book completed and shipping. In addition, during this timeframe we would spend many a night and weekend moving the project forward. How do you use developerWorks?
I'm a big fan of developerWorks. In writing the book, we used developerWorks for some of our research – accessing articles, tutorials, blogs and RedBooks. In working for IBM, one way I use developerWorks is for staying up-to-date and performing research. I also use developerWorks to help connect with the audience that I'm helping with the IBM software products. For many years – that meant writing articles and tutorials in support of Rational Software Architect and Rational Application Developer. More recently, I've been focused on the pureXML capabilities of DB2. For pureXML, we've also been taking advantage of some of the newer aspects that developerWorks provides such as Wikis and Forums.
What new topics or areas are you learning about right now?
I've recently joined a team within our Information Management group that focuses on helping customers and partners in using XML within their solution. In particular we look to help in using the pureXML capabilities of DB2. XML is pervasive in today's solutions – so I'm looking at how we can construct end to end solutions that best take advantage of XML. So in addition to diving into the details of DB2, OLTP, XQuery, SQL/XML, XPath and XSLT – I'm also looking at how this best works with application servers, SOA, Web 2.0 and industry standards.
And in bringing these full circle, I'm also working on a project focused on the patterns that surface in creating solutions that incorporate XML. Hopefully, I'll be able to get some articles on dW that discuss the results of this effort.How are you using social networking today?
I'm trying to find the aspects of social networking that work best for me. Right now, I'm using Twitter (@lmackerman
), LinkedIn, and have a couple of blogs (http://patternsbasedengineering.net/
). With these tools – the focus has been on connecting with others and finding/sharing information. What are some of your favorite websites/feeds/twitter accounts to follow?
Here's a few of my favorites:
1. Grady Booch's blog
- Grady typically touches upon a range of items related to software architecture.
2. Native XML Database
- Matthias Nicola, author of the pureXML Cookbook, posts to this site – adding details on working with XML and the pureXML capabilities of DB2
– news, opinion and analysis of the tech news
4. WebSphere Community blog
- in particular, they have some excellent coverage of the WebSphere XML Feature Pack – for working with XML in the middle tier.
- Thanks Lee!