The Case for Customization1 Sep, 2002 By: Bill Kramer
Suppose you design things for a living, work in an environment where you use pencils only, and you have to submit your design drawings to a computer-graphics department or user. Is it faster to walk up to the user and tell him or her you'd like a drawing that shows a certain device attached to another, or to describe in detail each line and arc you want drawn? Obviously the first method is preferred, even though it can take years to train a user to understand the individual devices you are describing.
Large companies may do design and drafting in separate service groups, assigning users wherever they are required. But the reality with today's technology is different. In most cases, you do the design work and you use the CAD system. And when you use the CAD system, you are in essence describing each line and arc to the computer.
For the past several decades, the key to a successful CAD system has been more than just selecting the right software and computer system to run it. Many experts strongly suggest training as the single most important factor that determines whether a CAD system implementation will fail or succeed. Although one cannot deny that skilled and motivated users are an important element in an overall system, there is another area of CAD that is often overlooked where even greater returns can be gained--that's in computer training or customization.
Computers are trained through customization. A computer system can be programmed to process the essential descriptive input and then create a significant portion of a drawing on its own. You can think of it as training a computer. Just as a human user skilled in the design lingo can quickly take an idea and convert it into a drawing, so can a customized computer system. Computers trained in this way are wonderful tools for designers since they can imitate the designer's thinking process.
The tangible benefits of customization are relatively easy to measure and predict. If you have a task that requires a quarter of an hour to accomplish and can train the computer to do the task in only five minutes, you are saving ten minutes each time you run the program. For common design-oriented tasks, the program may be used five to ten times per week. That saves about an hour each week and totals up to about 50 hours (the equivalent of more than one work week) each year in operation-time savings. That is a conservative estimate. In a more aggressive project, the program may reduce a task that takes an hour or more into a fraction of an hour. The savings from such automation can be tremendous.
In addition to the tangible benefits of customization, there are many intangible ones as well. The first is the morale improvement among those using the system. It is a lot more productive to use a computer that has design intelligence than one that knows next to nothing about design. This reduces the time for training new users and makes the existing users more productive. Morale is also improved when the users have a direct hand in the customization. They feel a sense of ownership and the pride associated with it. This will make them want to use the custom program, resulting in the quick realization of the designs.The Price Tag
So how much does it cost to develop a custom system? That is a difficult question to answer, simply because, as things get customized, the users may have additional ideas and the scope of the project widens to include new items not previously considered. Although this may sound like a management nightmare, it does not have to be. There are some secrets to keeping a project under control and all the individuals involved happy.
The best solution is to define a functional specification of the project's scope. A functional specification is a written document that describes the application to be created in detail. The document should contain screen images showing dialog boxes, formula to calculate answers, and every nuance of the system to be programmed, all laid out in either a flow chart or in some sort of algorithmic description. From this document, a programming team can establish a cost estimate that's fairly accurate.
Creating a functional specification requires an analyst who knows the limitations and capabilities of the CAD system involved. The users and designers will also be involved at this stage since it is their vision. Hiring or contracting a systems analyst to create a functional specification will cost many thousands of dollars; therefore, this approach should be reserved for large-scale applications. For smaller application scopes, the following guidelines will keep it manageable.Be Concise
The first is to define a clear goal, something that can be stated in a simple paragraph everyone understands. The goal can be lofty; however, it should be something that can be attained through team effort. When new ideas creep into the design, they can be compared to the goal and then their value can be weighed against other ideas for possible incorporation into the system. Although the concept of setting a goal may sound simple, it is often overlooked in projects.
Next, define the team that will be involved in achieving the goal. Depending on the level of sophistication involved, the team may involve users, designers, and programmers. The first two can be found quickly from the available staff; however, the need for programmers may present a problem as you may have to contract the services of a consultant or borrow from another department. The reason programmers present a problem is they must be trained in the design aspects of what they are programming. Too often an implication of a concept will be provided from a user to a programmer with the user thinking the programmer fully understands the desired module when, in fact, the programmer may only have an overview concept in mind.
Last, define a "not to exceed" budget for the project that includes the current programming tasks, testing and acceptance time, and ongoing maintenance. My recommendation is to add up everyone's estimates and then double them. That normally provides a good picture of the costs involved. Although it is tempting to establish a basic project-cost, this is not feasible in most situations, so preparing for some flexibility in the budget by doubling the estimates is a good approach. The ever increasing scope typical of CAD applications development will frustrate any attempts to establish a firm price.
Customization of the CAD/CAM/CAE system can produce a good return on investment. Although customization will increase the overall cost of the system, if done right, it can produce benefits that outweigh the costs. Those benefits are not all tangible; you cannot formulate a simple equation to describe the cost and the value derived to measure such things as user satisfaction or improved morale. That helps to keep good people on staff and get the most from them. And, from the perspective of the designer who uses the CAD system, the term "ease of use" takes on a whole new meaning.
Until next time, keep on programmin'!