Case Studies

Case Studies

Reliable Software Helps ISV with 
“Painless” Product Upgrade

A Focus on “Clear, Clean” Code
Plus a Thorough Knowledge of .NET Does the Trick

Updating a successful and widely-used software application is one of the toughest challenges an independent software vendor faces.  You need to not only get the product right, but also the process; users do not just expect flawlessly-performing software, they also expect that software be delivered to them in an efficient, painless process. And not lose any existing functionality by accident

Jorge Rodriguez, principal at Knowledge Management Associates, Inc., Waltham MA, was all too well aware of these requirements when he wanted to update KMA’s popular Mekko Graphics software.  Mekko Graphics offers dozens of business charts and graphs that integrate seamlessly with Microsoft PowerPoint, and is the kind of tactical, high-ROI application that users—in this case, thousands of financial and management consultants worldwide—grow to depend upon, and passionately bond with.  Rodriguez knew that any upgrade would not only have to offer users significant improvements over the current version—otherwise, they wouldn’t upgrade—but that the upgrade process itself would have to be executed near-flawlessly, with lots of input from, and testing by, users. 

Mekko Graphics had originally been written in Visual Basic, and, at the time Rodriguez was pondering the upgrade, the code had already been reworked numerous times.  It made sense, therefore, to build the application from scratch on a more modern platform--.NET to be specific.  Rodriguez called in Michael Stiefel., principal of Reliable Software, Inc., Brookline, MA, and author of Application Development Using C# and .NET, to serve not just as an architect and developer for the project, working in partnership with KMA’s own development team, but also as a consultant and trainer.

Using the Platform to its Fullest Extent

Rodriguez selected .NET because it offers an improved development process and allows the creation of more robust, and more easily maintained, applications.  Many of these benefits were apparent from the very beginning of the development process, he says.  “We could see that it provided a better way of architecting, and a better way of coding and testing.  The architecture was much more robust than the old architecture, and the totally-object-oriented design meant that changes were easier to make and propagate.”

Throughout the project, Stiefel worked to ensure that KMA’s developers were using .NET to its fullest extent.  “He participated in the whole architecturing of the product,” Rodriguez recalls.  “Both from an abstract level and up to the level of how to use individual .NET features.”  In particular, he helped KMA optimize its use of .NET’s font and multilanguage support, the latter of which, Rodriguez notes, “had many different aspects and dependencies that had to be carefully considered.”

Stiefel also assisted KMA in developing application features that would have been difficult to achieve using other development platforms, including a highly-popular “undo” capability that allows users to step back through entire graphical scenarios.  “This is something the users really loved,” Rodriguez says.  Stiefel also took primary responsibility for one of the trickiest parts of the entire project:  text-drawing and labeling.  Labeling is a sophisticated function in Mekko Graphics not only because labels must be generated from complex algorithms that process large amounts of data, but because there are also aesthetic concerns:  many Mekko Graphics charts include multiple labels and all of those labels must be legible as well and might mix both Western and Asian text.

Stiefel was also instrumental, Rodriguez says, in developing Mekko Graphics’ version identification capability—a very important feature in a “long-life” product with which many users have been creating their own objects going back as far as ten years.  “He helped us create an environment and infrastructure within the product that enables us to handle multiple versions,” says Rodriguez.  “Mekko Graphics can now handle objects created with all past versions of the product AND will also be able accommodate those objects into the future.”

The Importance of Being a Good Listener

In the end, however, it is not pure technical expertise that counts, in product development, so much as the ability to wed technical expertise to business expertise, and, in particular, an understanding of the client’s business goals for the project.  Stiefel, of course, recognized this, and was, according to Rodriguez, able to “balance multiple marketing and technical goals simultaneously.”  He adds:  “Michael is very perceptive on both technology and business, and is always a good listener.  He is very accommodating on why things are the way they are, and not the way we might want them.  A lot of techies are not.”

Stiefel’s primary contribution, according to Rodriguez, was being, “a good thinker and a good architect who was always pushing us towards the direction of making things clear and clean.  We’re always challenging each other, and he challenged us.  When you work with him, nothing goes unexamined.”   

All Content (c) 2000 - 2014 Reliable Software, Inc. All rights reserved.