3/26/2008

DSM for: First Time Right or Refactor with Insight

I came into contact with the Dependency Structure Matrix methodology a couple of years ago. The problem I struggled with was the complexity of the software systems I was working on. In many cases I had architected a nice system based on simple concepts and tried to document it accordingly, but after a couple of weeks the development team started to work on things that in many cases were not in-line with the architectural concepts and structure. Following (and steering) the development at code level was taking more and more time. When I had questions on a specific subject I positioned myself next to the developer and within a few minutes we were digging at code level after clicking on some tab sheets in Eclipse of Visual Studio. Oversight was missing and I can imagine that working in these IDEs can thigthen the vision of many developers. Making something compile is already quite an achievement.

When a friend pointed me to a new generation of tools based on the Dependency Structure Matrix method my first impression was. Woooowwww. This is what I need to get back into control (or better still the developers can now better understand their part of the system).

Since I got involved in the method I quitted my job so I could work (consulting) with the method and start to help all kinds of companies with their struggle to deliver products in time and with sufficient quality.

The DSM method attracted me because of a number of reasons:
  • Extremely short learning curve
During a single day session, which consists of a 1 to 2 hour DSM introduction training and 4 to 6 hours hands-on training a software architect and his development team gain enough skills to continue to work with the method and the created DSMs.
  • Scalable insight
In contrast with other methods the Dependency Structure Matrix is highly scalable. At top-level the major system structure is shown and from there it is easy to drill down to areas of interest. This way information can be shown in such a way that it will fit on a single monitor.
During all sessions I presented, developers as well as architects as well as project managers were talking the same language. Problem areas were indicated and first draft improvements were discussed.

Lattix
Since a year more tools have embraced the DSM methodology. Still the front-runner is Lattix. Lattix brings a complete toolsuite that not only offers the ability to perform impact analysis, but also makes refactoring scenario (without the need for immediate code changes) and architecture control possible.

Lattix currently supports:
  • C/C++
  • C#, VB.Net
  • Oracle (database and PL/SQL)
  • Microsoft SQL server (all versions)
  • Sybase SQL
  • Java, in combination with Spring and Hibernate
  • Delphi Pascal
More languages and databases will be supported in the near future.

Lattix is a Java application and therefore runs on many platforms and even insight a number of IDEs.

For more information on the Lattix product:
Lattix Website

For more information on the DSM methodoloy:
DSM Website

No comments: