Trusting technology and a few secrets to building systems that run systems
Wes Simonds 120000EFD6 firstname.lastname@example.org | | Tags:  wes complex products product-innovation engineering embedded rational of hoffmann hans-peter smarter gorman systems simonds greg
1 Comments | 3,601 Visits
I have a friend in Canada who doesn't trust technology. For years we've discussed this over the Internet -- the standard communications platform for people who want to argue at great length, across great distances, to no apparent benefit or conclusion. His idea is that since he didn't design and build the tech himself, he can't really trust it. But my idea is that in discussing this over the Internet with me, he is trusting it.
The Internet, after all, is really an unimaginably complex ‘system of systems’ comprised of switches, routers, microprocessors, storage arrays, networking protocols, various transmission media including fiber and copper and radio waves, and other elements ad infinitum. All of them interoperate to deliver holistic value for users.
If any one of these elements were fundamentally untrustworthy, so, too, would be the Internet as a whole, and our argument could not continue. But year after year, it does continue... which would seem to endorse the tech.
Lately, I've been pondering just how many other aspects of modern life could similarly be characterized as systems of systems or -- things we casually think of as a monolithic entity, like the Internet, but which are in fact far more complex and have complex systems embedded in them. A short list:
In every case, software running behind the scenes is responsible for orchestrating the total functionality, and taking care of that so perfectly we don't even think about all the complexity. Instead, we just trust it to work.
It's a good thing the software developers know what they're doing -- and have some outstanding tools to help them do it.
Optimize your software development process and working environment, and you're one step closer to optimized code
One such is the IBM Rational solution for systems and software engineering. The entire Rational portfolio, of course, helps development teams deliver quality code that's feature-complete, and as bug-free as possible, in a governed, methodical manner -- often, under budget and within target deadlines.
But this particular capability is intended for the kind of ultra-complex, system-of-systems software design I've described above, in which many individual systems, each with its own specifications and requirements, must not only work properly, but also collaborate with other such systems to deliver services.
To get the inside story on what the Rational offering is all about, I was fortunate to be able to speak to Greg Gorman, Program Director of World-Wide Systems Engineering Strategy and Delivery, IBM Rational Software, and Hans-Peter Hoffmann, PhD, Chief Systems Methodologist, IBM Rational Software.
Both of these experts were quick to point out how neatly the capability fits into IBM's larger Smarter Planet story. ‘How can you even have a smarter planet without smarter products?’ asked Gorman hypothetically.
It's a fair question. IBM conceives of the Smarter Planet essentially as the ultimate system-of-systems, the superset of all others because it is, in fact, the Earth's complete infrastructure.
While I have, as a former IT guy, a fairly solid understanding of just how complex software development can be, I've really never thought of it on this kind of scale before. But IBM has.
‘Many systems today have millions of parts -- and miles of wiring,’ said Gorman. ‘Our customers create incredibly complex systems -- airplanes, ships, missiles, cars, etc. Each of those consists of hundreds if not thousands of smaller subsystems, that all have to cooperate for the system to perform its intended function. It requires coordinating vast numbers of requirements, tests, source code, designs, changes -- you name it -- across a large team of engineers and developers, sometimes at many different companies and locations. A huge challenge that the Rational tooling and practices help them solve.’
That, it turns out, is key to the value proposition of the Rational offering. It's not just about getting code to interoperate, but, far beyond that, all the stakeholders associated with that code -- developers, architects, line-of-business guys, executives and end users.
And the Rational solution for systems and software engineering also spans the entire software development lifecycle, from project conception to ultimate retirement and every stage in between. Just as today's systems-of-systems need effective, governed orchestration to work properly, so, too, do the projects that make those systems possible in the first place via high-quality software.
An engaging past, tied to a bright future
IBM has an incredible depth of experience in business technology, of course -- what other IT solution provider is a century old? -- but I was curious how IBM first got its feet wet in systems-of-systems project optimization of this type. It turns out that the inciting event was America's space program.
‘Among other, very early contributions, we built NASA's Apollo mission control in Houston -- you know, 'Houston, we have a problem?' -- that mission control,’ said Gorman. ‘Obviously a complex system-of-systems challenge, to say the least, given the available technology of the time.’
Today, IBM's client roster is interested in a lot more than space exploration, though that, too, continues. I asked Hoffman what kinds of projects he might typically consult on.
‘Monday and Tuesday, maybe consulting with an aerospace company on a spacecraft project,’ he said. ‘But Wednesday? A diesel-electric locomotive project. And Thursday could be a medical company, for a pacemaker project. It's all software engineering, but each domain has its specific viewpoint and requires a different approach.’
This really struck me as a diverse range of applications for one guy -- or, for that matter, one consulting company -- to handle in such short order. How has IBM managed to become so expert, in so many fields? Turns out that there are abstract principles that remain fairly constant, though their specific implementation will vary from case to case.
‘Based on our experiences in the A&D, automotive, industrial automation and medical industries, we identified best practices that are key to systems engineering, covering both the selected tools collaboration as well as the methodical approach,’ said Hoffman. ‘In our engagements, we help our customers to adopt those practices that give them the most benefits, i.e., higher quality requirements and a significantly shorter development time.’
One particular case study that stands out in Gorman's mind: Invensys Rail, a European provider of on-board signaling systems used by Portugese and Spanish railway systems.
When you've got hundreds of trains flying along at 200 mph or more, the margin for error in the way you schedule them is very close to zero. So is the opportunity to improve your software later. Getting it right the first time is not just a goal; it's a mandate.
IBM's Rational technology played a key role in ensuring that outcome, while also making it relatively simple for Invensys to comply with various government regulations -- despite the fact that those regulations are in a constant state of flux.
And looking ahead, Gorman sees tremendous potential for even more complex, domain-spanning system-of-systems integration in the future.
‘Imagine a car wreck,’ he said. ‘Telemetry technology links to the car's GPS data, then broadcasts the car's exact location, notifying emergency first responders that a medical situation applies. The first responders, in turn, can find out even before they get to the scene who the car's owner is, and having accessed medical records, establish that he is allergic to certain medications and is a diabetic. Checks could even automatically be run to locate cellphones within a specified range, to discover any probable witnesses of the event who might be needed for legal or insurance reasons. The possibilities are really endless.’
Watch this webcast to learn how to conquer complexity in only six steps
Read this white paper on smarter product enablement
Join in the conversation on complex and embedded systems
About the author
Guest blogger Wes Simonds worked in IT for seven years before becoming a technology writer on topics including virtualization, cloud computing and service management. He lives in sunny Austin, Texas and believes Mexican food should always be served with queso.