|Knowledge Management Associates, Inc. (KMA), Burlington, Mass., a producer of corporate portals and intranets, is known for tackling the toughest, most complex projects. Still, a project for a leading management consulting firm was tough even by KMA standards. The firm asked KMA to build an intranet that would provide its more than eight thousand worldwide consultants with fast access to a vast trove of information generated both within and outside the company.
Because of the global nature of the user base, the entire system had to be available
twenty-four hours a day, seven days a week. All maintenance of its eighteen servers,
including the replications, synchronizations, and reindexings required due to continuous
data updates, had to happen "on the fly," without taking down servers.
Performance was another hurdle. The system needed to provide near-real-time querying
not just of internal corporate data stored across multiple servers, but a variety of
external data sources, as well.
Because of the highly-distributed nature of the solution, as well as the stringent
availability and performance requirements, KMA co-founder and chief technologist
Jorge Rodriguez decided to use a consultant accustomed to pushing Windows NT
Server and Microsoft BackOffice to the limit. He didn't want a "cowboy," however,
but someone who would take a disciplined approach to systems design, thus achieving
an optimal balance between performance and stability.
The Importance of Careful Analysis
Rodriguez says he frequently calls in Stiefel for the really tough technical
challenges because, "I know he will do a very careful analysis of the issues,
and come up with an elegant solution. He's not like some consultants who will
just say to try something. I can really trust Michael's analysis and carefulness.
I've worked with many consultants in my thirty years in the business, and Michael
is one of the very best."
While the KMA team focused on the application's data schema, data sources, and user
interface, Stiefel focused on the application's "kernel," working to optimize it for
and speed. His first task was to analyze and, if necessary, refine the design
specification. "The demands in terms of availability made this an unusually
difficult project," he recalls. "There was basically no room for the application
to break. Once this went live, people would be depending on it, and it would have
to stay live."
He also analyzed the design from the standpoint of performance-in particular,
to determine which components needed to be crafted in C++ as opposed to Visual
Basic. It was a critical decision involving some important tradeoffs, as C++ code
typically offers better performance than Visual Basic, but takes longer to develop.
Finally, he examined the application's multitasking requirements, determining where
multithreaded operation was required, how it should be set up, and what protections
needed to be put in place.
"There were lots of pieces that all had to be coordinated together so that you
could get good throughput and reliable operation," he says of the overall project.
"It required a detailed understanding of the COM infrastructure, as well as issues
of synchronization and marshalling."
The choice, he says, was obvious: Reliable Software, Inc., Brookline, Mass., a
specialist in crafting solutions involving Microsoft Corp. technologies, including
Windows NT Server, Microsoft Visual C++, Microsoft SQL Server, and Microsoft's
Component Object Model (COM). Reliable Software's principal, Michael Stiefel, Ph.D.,
has more than fifteen years' experience building systems, and formerly served as a
Microsoft Corp. consultant.
Good Design Leads to Faster Delivery
Stiefel also assisted the project by evaluating code for other areas of the project,
and by mentoring KMA 's less experienced staff in areas including source-code control,
programming practices, and programming discipline. "Michael is a great teacher, and
because he actually does what he teaches, he switches easily between the theoretical
and the applied," says David Goldstein, KMA 's president. "He can discuss a principle
of software engineering, and then right then and there write some code to illustrate
it. That's very valuable."
The completed application was delivered to the client in December, 1999, and has been
in continuous use every since. There has been no unscheduled downtime, and very little
scheduled downtime. The system now receives 5,000 queries per week, and research that
used to take the firm's consultants three weeks "now takes just a few minutes,"
according to Rodriguez.
Once the design stage was finished, Stiefel began writing the code. It became
immediately apparent that the use of a rigorous design process was to pay off
spectacularly in the form of a shortened development cycle. "All of Michael's
initial guesses panned out," says Rodriguez, who adds, "Getting the core
application working properly in such a short time gave us and our clients a
great deal of confidence that we could deliver the solution in an extremely