The importance of being agile
Not too far into the future, you will probably be able to stroll into a nearby car dealership, make a down payment, and leave in the latest self-driving car. The idea of driverless "Google" cars has captured the imagination of many, and the cars have rarely been far from the headlines in recent months. Not only because they are icons of cool technological innovation, but also because they could herald a dramatic shift in how our lives work.
Who needs a taxi when your car can drive itself back from a party? Why worry about finding a parking place downtown when your car can simply drive to the nearest out-of-town parking lot with spaces open and then return to collect you on demand? Will teenagers still have to wait patiently to be old enough for drivers’ licenses before taking their parents' cars?
Software is the driving force
Coming back to the present, Nissan announced recently that it intends to launch cars with "steer-by-wire" technology in the near future. "So what?" you might say. "Someone still has to sit in the driver’s seat and hold the wheel!" True, but this is the latest in a long line of vehicle control technologies that are now "by wire". Braking succumbed over a decade ago when ABS became a standard fitment. Processors decide when to change gear and how to adapt the suspension to road conditions and our driving styles, and forward-facing radar and vision systems keep us in-lane and at a safe stopping distance from the car in front of us. In fact, pretty much all of a modern car’s control and instrumentation systems are now based on software.
All this raises the very real possibility that the key difference between your new self-driving car and the previous, old-fashioned "powered by human beings" model will be a software upgrade. So, if you were in any doubt that software is driving innovation in smarter products, keep an eye on the automotive news in the coming years.
Will there be a lot of software? Yes. Will it be complex? Yes. Will it be safety-critical? Yes! And will it interact with many other components and systems that are beyond the developer's control? Yes.
If software is underpinning the transformation of engineering in such a traditional field as car making, it is imperative that the car industry and other industries that are undergoing similar transformations achieve best-in-class in software delivery. That means being sufficiently agile and collaborative to cope with changing marketplace and stakeholder needs, yet still delivering on time and with the required quality to meet product revenue goals. Furthermore, as software becomes so fundamental to product success, developers must demonstrate compliance with mandated standards without excessive overhead dragging on commercial performance.
New approaches for software development
That raises a host of questions for software and systems developers. Can agile approaches be applied to safety-critical software development? If so, how, and what adaptations need to be made? Does the agile approach apply only to software development? Or is there a role for agile methods in systems engineering?
As developers tackle these and a myriad of other issues, one thing is certain: The processes that we use to develop the new generation of smarter products will have to be considerably smarter than those we have used in the past.
Find out more about Delivering agility in real-time and embedded development
About the Author
Jon Chard is the Marketing Manager for IBM Rational Systems and Software Engineering, covering real-time and embedded software development and embedded agile. He has over 25 years experience of standards, technologies and development tools across the development lifecycle including requirements management, systems and software modeling, quality management and testing. Before moving to a marketing role in 2009, Jonathon spent eight years as an application engineer and consultant within IBM and formerly Telelogic. Prior to this he was a systems engineering practitioner within the automotive industry.