Jesper Boeg on Priming Kanban
In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Michael Bushe on Feb 12, 2008


Going beyond the quick glance, each row represents a package in a layered architecture. The rows are numbered 1-5. The columns are also numbered 1-5, and represent the same modules, respectively. In the strictly layered system, the application depends only on the model (37 times), the model depends only on the domain, etc. In the layered system, higher layers, such as application, can depend on any lower layer, such as util. Given this visualization, if code is written that breaks the rules, it will be immediately obvious. Any dependencies showing up in the upper right would break the architecture's intention.
IntelliJ has introduced a new DSM tool in the new "Magnificent 7" release. Instead of having to think about the intended layering of a codebase and arrange a UML diagram manually, IntelliJ will automatically generate a DSM from an existing project. Like other DSM tools, it automatically arranges nodes so that the dependencies tend to show up in the lower left. A DSM is interactive and drillable to the class level:

In this example, IntelliJ's DSM tool shows that ReferenceStrength is used 4 times in a layer below it in the architecture. Having a DSM tool integrated into an IDE is very handy. IDEA can easily show all 4 references in the codebase, making the problem easy to fix. In this case, ReferenceStrength can be moved to a higher-level package using IntelliJ's refactoring tools.

IntelliJ's DSM tool has room for improvement. Unusual for IDEA, it lacks the usability acheived by numbered rows and columns shown earlier. Other tools, such as Lattix, have more powerful refactoring support. Lattix can move classes or packages directly from the matrix visualization.

DSM is a powerful tools that is making its way onto the desktop of more practitioners.
Agile Practices to Improve Project Management Organization (PMO) Effectiveness
SCM best practices for multiple processes, releases & distributed teams
SOA All-In-One Guide: KPIs & Best Practices, ESB Report
Improve Java Garbage Collection, Runtime Execution, and JVM visibility with Zing
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
I use Structure101 which does a great job at visualizing dependencies between modules.
The addition of DSM to IDEA is really nice, but I agree that it'd be great to be able to refactor directly from the matrix. Of course, without better documentation, IDEA's DSM isn't going to get much use. Hopefully JetBrains will release new documentation soon.
- Ted Young
In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
2 comments
Watch Thread Reply