I recently returned from a short sabbatical, the purpose of which was to recharge my batteries, refresh my mind, and ponder my goals. Some of my friends asked me if the sabbatical was the first step toward retirement. I told them that I wasn’t going to retire until I was done meeting my goal of improving the profession of software development.
We live in a complex society where software is increasingly used to improve efficiency and create connectivity. Thanks to built-in software, John Deere tractors, that iconic symbol of the working farm, don’t need a farmer in them anymore. Software, as the last scalable solution to many complex problems, holds great promise—as long as it works.
After my return, I was at a meeting with fifteen of the most skilled software developers I know. At one point in the discussions the developers were disagreeing about the definition of a unit test. Opinions of exactly what a unit test is ranged from a test of a unit of code, to tests of functionality. As I listened to the discussion I thought, if these people can’t agree on what a unit test is, how can other developers know what to do? As I got on my plane to return home to Boston from this meeting, I overheard the pilot telling the copilot to “just reboot it.”
One of the most rigorous approaches to building quality software is the software product line methodology (http://www.sei.cmu.edu/productlines/). Continental, an international automotive parts supplier, develops subsystems using this methodology. I recently bought a Volvo XC70, one of the first vehicles with Continental’s safety software.
I was particularly looking forward to being able to test the collision warning subsystem, part of the overall safety system. Potential hazards or obstacles are identified by the subsystem through cameras mounted on the front of the car. The cameras provide views at cross-traffic at intersections. I live in Boston, where in the wintertime mounds of snow often block visibility. I confidently pulled up to one such blind intersection. The cameras correctly displayed cross traffic … until a message was unexpectedly displayed, blocking out all video. The message stated, “Difficulty Connecting with Cell Phone … OK or Cancel.”
Sitting in the car and looking at the message blocking the screen, I was reminded of my friends’ question regarding my retirement, and my goal to improve software development. Even with as far as we have come and the advances such as the software product line methodology, I don’t think we are “done” yet with perfecting software, and that I have a long time before retirement.
Welcome ‘back’. Good to know you won’t retire just yet 😉
Ken,
Motivated thinkers like you don’t ever really retire. They just take more vacations and sabbaticals than they used to in order to maintain a sustainable pace.
Glad to hear that you’re back. Let’s get crackin’!
Ken, remember what the pilot said: “just reboot it” 🙂
What a valuable insight. From users point of view, requirements can give rise due to environment and vantage point. From developer point of view, their environment improves at another vantage point.
The blocking out of video surprised you.
If I reflect on showcases, using it to solicit Product Owner acceptance probably lead to this kind of surprises. However if showcases is used as forum of exchange and idea creation, ie. co-creation and collaboration, this surprise could have been an opportunity.
Welcome back, Ken.
Welcome Back. I would like to connect with you and see if you would be interested in participating in my Doctoral study about Scrum.