p a t r i c k    c u r t a i n         
patrick : business : history   
   
 
e l s e w h e r e

SWDev Co  

Business Calendar

Our Wiki  

News Bits  

Movies!  

Merant
   Support Engineer and Trainer
   March 1994 to June 1995

The Company

Merant is the company that makes PVCS. During the time I worked there, PVCS was the number one software configuration management (SCM) solution on the market. SCM refers to the collection of tasks that allows development teams to archive versions of source files being developed, automate and manage the "build process" so that product releases can be safely duplicated and tested for deployment and much more. Configuration Management is absoutely critical to succesful software development. That importance grows as the number of developers on a project increases.

The Challenge

Programming, as an activity, has historically been all over the board in terms of best-practices and organization. Development happens in circumstances ranging from the solitary coder alone at his desk, to coordinated teams of hundreds working in remote locations all building a single product that will be released. Both organizations face the challenge of safely and productively buidling software.

The lone developer, without any version control tool, will simply overwrite his work with new changes. A slightly more sophisticated developer, the majority in fact, archive "versions" of their software using zip (or tar or stuffit) archives, floppy disks, tape and so on. For that developer, recreating a release of a package from a year earlier is an enormously tedious, manual process. Using version control software, even the open source CVS package, can handle that very neatly. In projects that I do solo, CVS helps me take more risks, compare attempts and pick best solutions, as I build software.

For software development teams, independent vendors or internal corporate teams, coordinating the development effort is critical just to get the application built! More than anything, teams have a need for tools to keep developers from stomping one anothers code. Configuration Management tools, including PVCS, can play "traffic cop", allowing only one developer to change a given software module, and locking out other developers until that first developer has checked their work back into the tool.

Support Role

When I first came to what was then Intersolv, I had just finished teaching myself C++. I'd just read Grady Booch's Object Oriented Analysis and Design with Applications. I was excited to go to work building code, using these ideas. Leveraging the creation of a product (PVCS) that I already saw as extremely valuable. Indeed, I was a true fan of their "Sage Professional Editor" product.

Unfortunately, I received the same disillusionment many of the excited software development grads were receiving in the early 1990's. Practice was lagging far behind theory. PVCS was built in plain C, function calls, pointers, miles upon miles of endless spaghetti code. I couldn't bring myself to join the development team. I still believed in the product, though, so I joined the support staff.

Support work, at Intersolv, was considerably more interesting than typical software support. The user community for PVCS was, understandably, almost entirely software developers. Real practitioners of this art that I'd been studying so ardently. Many really saw the value of bringing some automation and reliability to their development process. Others had configuration management thrust on them and saw it as some bizarre torture they were forced to endure in order to build the software they loved building. In either case, I enjoyed becoming the expert that could teach them all about installing, configuring and using PVCS to it's utmost capabilities. I documented best practices for configuration management in the enterprise and the small development shop. I wrote articles for several software journals and Intersolv's own newsletter. It was a fun time.

DTK Support Role

Shortly after mastering the product in the Support group, I began to get antsy for more challenges. I've always been fascinated by development languages and the effect that a development tool has on the project being developed. If the developers start out, from concept to design, knowing that Smalltalk would be the implementation language, how will the product, the timeline, the quality, be affected? How would the results differ from an identical project that would be built in VisualBasic?

Intersolv had a product, the PCVS Developers Toolkit (DTK), that was almost completely unsupported at the time. The DTK allowed developers to embed version control functionlity into their applications. This capability was used in two places, primarily:

  • adding functionality to a variety of projects like legal document tracking and medical records
  • integrating configuration management into development tools like Microsoft's Visual Studio, Borland's Delphi and others.
I took on the challenge of learning and supporting the PVCS DTK. I handled questions from developers at firms like Borland, Microsoft and Digitalk, helping them build their PVCS plug-ins. I was credited in some of them. :-)

Borland's Paradox Enterprise and Delphi Enterise Developer featured version control via the PVCS DTK code I helped them write. Along the way I got to build examples in Delphi that got me some familiarity with their implementation of Object Pascal.

Digitalk's Smalltalk/V had an add-on product, Team/V, that was based on the PVCS DTK. I helped them communicate with the Windows DLL using the smalltalk/v dll interface. I built and tested the version control interface for multiple users. This is actually quite a challenge, since Smalltalk development progresses by enhancing and manipulating an 'image', a binary representation, a snapshot of the state of the Smalltalk environment the developer is working in at a give time. Applying file-oriented version control to that kind development tool proved to be a challenge. Applying version control to multi-developer teams working in their images simultaneously was even more so.

That product effort was the best experience I enjoyed at Intersolv. It introduced me to the Smalltalk development concepts which still form some of the stronger themes in my development thinking. The code browser for organizing a class hierarchy. Dynamic compilation and direct manipulation of running code and more. Not to mention the truest implementation of object oriented programming.

Training Role

Those two experiences, supporting development groups in the implementation and use of PVCS for configuration management, and the integration of PVCS into specific development environments for entire communities of developers, led to development organizations seeking me out for training.

Development managers came looking for instruction in how to make the best use of configuration management tools in their organizations. What I found, however, was that in most cases the groundwork for good development had never been laid.

In a medium sized development team, say eight developers and two QA (test) engineers, someone will have been tasked with "architecting" the application. This person may or may not have had any experience with this role, often they're just the senior person in the group. Depending on the design choices made by the selected architect, a project could get hopelessly dead-locked around a few key software modules that, when locked by one developer, locked everyone else out of getting their work done.

In these organizations, I found myself giving more and more design and analysis input, as I tried to help improve the configuration management solution I was there to provide. This experience really bolstered my confidence in my ability to architect solutions for companies. All the more so since my customers during this phase of my time at Intersolv included firms like Lotus, General Motors, Kodak and the CIA. If they made mistakes in their development efforts, and if I could propose effective solutions, I knew I truly could build software.

Much of my over-inflated self-confidence stems from these experiences.

Before this, I was at Techniflex   After this, I moved on to SoftCare
h e r e 
The Company
PVCS Support
Developer Support
Developer Training
References
  
  
  

personal

 

2212 East 30th Street, Vancouver, Washington 98663 - 360-521-9623 - patrick at swdev dot com