Along with managing change, there are other development challenges, such as coordinating globally dispersed design teams, integrating across different engineering disciplines, and closing the loop from requirements to validation.
The survey results raise the question of what product development organizations need to do to take on these challenges. Not surprisingly, the answer involves both organizational change and technology. Companies that fared better and avoided some of these challenges had more integrated team structures, as opposed to separate teams for mechanical, electrical, and software engineering, the survey found. In addition, system modeling was a key way to avoid problems, though only 12 percent of respondents said they consistently create system models.
The other linchpin in surmounting the development complexity is technology -- specifically, some sort of structured lifecycle management approach, which is obviously where the PTC connection comes in. PTC and Brown make the case that companies using product data management (PDM), product lifecycle management (PLM), or application lifecycle management (ALM), particularly a platform that is integrated across disciplines, will have more opportunity to avoid the problems that arise from software-driven complexity than companies using point solutions or simple document management tools and email.
The findings are meant to play well with PTC’s product story. The company made a big push last year to embrace embedded software development as part of its PLM platform with its $306 million acquisition of MKS, which markets the Integrity ALM platform. Yet beyond any market positioning value, I think PTC and Tech-Clarity have defined some very real challenges for product development organizations, particularly as products shift from a heavy reliance on traditional electronics and mechanical components to lines of code.
I’d love to hear how the Design News audience is dealing with these challenges and what kind of wrinkles software development is adding to traditional design processes? Discuss in the comments section below.
ChasChas - A lot of those old products you mentioned can still be restored into usable condition - at least by some extremely talented individuals. (Ever see American Restoration on History Channel?). Unfortnately, a lot of the software based stuff will soon become boat anchors.
In the big scheme of things, the whole field of software is relatively new, and it still suffers a lot from growing pains. There is still way too much bad software out there.
Part of the problem with programming in general is the perception that anybody can do it - because almost anybody can. But there is a huge (and sometimes unrecognized) cavern between "programming", and writing solid, production-ready software.
In my opinion, writing code that is functional, maintainable, and solid, takes a level of expertise that is seldom achieved, even by fairly experienced programmers. However, I think it is true of most fields that the really good work is done by a very small percentage of the people who are truly passionate about what they are doing.
Hopefully as the field of software matures and develops, the quality level will go up, and the development cycles will go down.
Processing power -- CPU cycles are now essentially free, or at least incremental cycles are -- has finally reached the point where graphical programming tools are supportable. They're being used in the real world -- witness the success of LabView -- and they're a big help to mechanical engineers and other non-programmers who need to create software. At the same time, we haven't yet seen the limitations of these tools surface because we're still at relatively early stages and at the same time the tools are still not really applicable for real-time apps and those where user safety is an issue. My point is that we're going to see continued development of drag-and-drop as MEs and hardware-only folks have needs for more capabilities. Then we'll see how far these tools can go.
Once after being subjected to a marketeer's breathless pitch on a worldbeater of a new product, I buttonholed the product's programmer -- what was along for the ride. When I admitted to being puzzled about the utility of some of the "features" of the product, the programmer cheerfully admitted that that Marketing Department had tossed them into the product-definition specification to "uniqify" the product! I mean, how many friends and acquaintenances do you have who have purchased expensive "smart" cellular phones, that have upwards of thirteen or more functions *except the most vital one for a portable product; A Porta Potty), and use them only to make phone calls, text, and play pinball?
I am a mechanical engineer. Look at the old, say, adding machines, cash registers printers, etc. There are a lot of old machines that for the life of me, I cannot figure out what they were used for. At that point, I am sure the mechanical engineers' brain was slowly turning into potato salad.
Then came software, hydraulics, etc. - and the mechanical engineers' sanity was spared.
Now it looks like the software people are going to need to be rescued.
It is time for self-learning and self-programming products.
I don't know what it will be, but it won't be software - it is reaching it's limit.
Model-based design and the ability to use software simulations is something that is beginning to gain traction in automation and control as well. Machine builders and designers will be to reduce development time and costs as these tools become more mainstream. Automation equipment definitely fits into the category of software-intensive product designs; often the basics of the machine's hardware has been developed over decades. But there is a definite need for tools which connect and unify thinking through the design process and the actual code to run the machine. Should be an interesting area for growth in automation.
Agree completly Alexander. I have worked on many embedded projects. Some where a software engineer writes the code for the hardware from a spec, some where the hardware guy does everything himself (out of necessity as you pointed out). The later projects always outperform the former in terms of time to complete and overall cost as well as after/design problems. That is not to say that it should be done that way in every case. Rather, projects should be evaluated from the start as to which method is a best fit. Something that is almost never done.
I think PTC making what is a pretty sizeable investment (a $300 million acquisition) in the software development space shows just how significant this trend is and how important is it that the mechanical, electrical, and software development tools serve some sort of integrated platform as opposed to how they traditionally reside today, which is primarily silos.
Also, Naperlou's description of the multidisciplinary teams at work in the spacecraft industry could and probably should serve as a model for design teams across myriad industries going forward.
Beth, thanks for a great article. I've been hearing about this trend for several years in system design, most recently in embedded systems and then in machine vision systems and networks. It's interesting to see the growth in the importance of software to product differentiation finally reach a > 50% threshold: over 50% of companies interviewed in the survey saying, in more than one way, how important it's become. And the trend has certainly become visible more recently in end-products like cars, industrial products, and medical devices, while it's been continuing to be true in electronics for a long time. Managing the resulting complexity, in several dimensions, is going to be quite a challenge. The first thing that occurs to me is how this may force even more integration of software, and modularization of code, to make things easier and faster.
That's a great point, Naperlou, regarding hardware engineers writing code for their embedded designs, instead of software engineers. I never saw the potential flaw in this, because indeed we've been encouraging engineers who don't have software smarts to learn how to write programs for their designs. So you make a great point. However, I don't think the problem is that anyone thinks they can write code. Hardware engineers are being encouraged to write code out of necessity -- mainly head count shortages. It also short-circuits the necessity for writing out detailed specs/requirements that can be thrown over the wall to software. I.e., the hardware designer has it all in his/her head, and can just happily begin coding. So that enables the company to meet its time-to-market deadlines, with the results that your message predictably implies.
For industrial control applications, or even a simple assembly line, that machine can go almost 24/7 without a break. But what happens when the task is a little more complex? That’s where the “smart” machine would come in. The smart machine is one that has some simple (or complex in some cases) processing capability to be able to adapt to changing conditions. Such machines are suited for a host of applications, including automotive, aerospace, defense, medical, computers and electronics, telecommunications, consumer goods, and so on. This discussion will examine what’s possible with smart machines, and what tradeoffs need to be made to implement such a solution.