Do any of you remember the old commercials, “Time to make the donuts”? One early morning I twittered “Time to make the CAD software” and it seemed like it might be a good topic. Most companies have development groups and marketing groups and sales groups but what really happens inside the development group of a “CAD company”?
I’ve been involved in the development of four different CAD/CAM/CAE systems; an in-house system, I-deas, NX and now Solid Edge. I’d bet the ones I have not worked on have similar organizations. CAD software development requires some special skills beyond typical software development. The mathematics and graphics can be much more intense. Our customers are engineers and FEA analysts who are often a step ahead of the typical software user. Our applications are large and push the limits of hardware, operating systems and networks.
You might think the development organization is just a bunch of code jocks writing C++ code. The problem is that with CAD software developers needing to develop some very specialized skills, it doesn’t always leave a lot of time to work with customer or even the CAD system. It’s not unlike the automotive engineer designing the latest sports car or NASA engineer designing the latest space shuttle. So, like everyplace else, CAD development specializes around certain key areas. Some focus more on writing code, some focus more on customer needs, while other focus on building quality product. Here are some of the key areas:
Software Development: These are the folks that write the software. Within this area, you will have additional specializations. Some folks might focus on geometric modeling (i.e. Parasolid). Some might focus on mathematical routines. Some will focus on part design, sheet metal design, assemblies, FEA, data management or any number of other areas. The people here can be engineers that know coding or software developers with varying levels of engineering experience.
Quality Assurance: When the developers are done, some people think they throw it over the wall to the “testers” who beat it into shape. As in the case of manufacturing, quality assurance has moved upstream in the process of creating a good product. Sure, QA people run the product looking for bugs, but work is also done to change the process to reduce the number of bugs and maximize visibility of the state of the product and process. In some ways, the folks in QA are like industrial engineers trying to optimize the factory. If you are a Deming fan, you’ll see many of the same ideas here with much of the same focus on metrics and quality control.
Education and Training: CAD systems are complex so people skilled at writing documentation or teaching how to use the product can be as important as the product itself. Their material must be developed while the product is in a state of flux. They also have to help ramp up sales and marketing organizations as new functionality or products are added.
Product Planning: These people take the customer needs and form plans which can be implemented by the developers. Input comes from MANY channels – customer visits, beta testing, customer support, user groups, salespeople, and marketing (and I’ve personally been paying attention to people starting to use various social media platforms). Planning also has to listen to technology trends that either occur in the industry (i.e Synchronous Technology) or in software development ( Windows 7, Web 2.0). As with other areas, planners may specialize around product areas like part, assembly or PDM, or areas like the use-interface and new types of hardware.
Of course many companies will structure differently around these areas. They might have different names or split into multiple groups but I think you get the overall picture. In my next post, I’ll try to drill down into my own organization for a more concrete example.