On my return flight from HP Discover in Frankfurt, I read this article on self-parking cars in USA Today. Auto-parking systems use sensors to identify the right-sized spot, and signal drivers when the system has found one. The system then takes over steering, and uses sensors to guide the vehicle into place. I have always found applications to be similar to cars—whether it is to selectively modernize them, or to systemically monitor them. The article made me wonder if applications can take a hint and follow the example set by self-parking cars.
Applications are like children that business and IT conceive, nurture, and deploy into production. After that, they are monitored to ensure they operate efficiently and deliver on service levels. Despite the systemic introduction of automation across the applications development and management lifecycle, there are several steps that remain manual today—just like I thought parallel parking was, before I read the article.
Essentially, self-parking cars are designed to detect an impending obstacle, and take corrective measures to avert it. Similarly, couldn't applications monitor a well-defined set of parameters? And couldn’t applications take corrective measures? Say one of two things—either take a different route that averts this possibility, or come to a graceful stop?
To facilitate this behavior, here are the top five features that could be built into applications:
1. Track. Follow the date and time of failures and the pertinent environmental parameters
2. Collect. Record the remedial measures taken for each failure
3. Suggest. Exit gracefully the next time a failure is imminent. Suggest remedial measures that could be taken based upon history. (Perhaps the pick-up truck of my colleague, Susan could have done this too.)
4. Expose. Uncover the need for additional information to make more intelligent choices. (Such as cars detecting falling objects well in advance.)
5. Network. Be part of a social network of applications.
Repositioning the first letters of the actions above yields the word SCENT. Applications should detect the SCENT of an impending failure, just like self-parking cars (and police dogs, by the way).
Preventive measures are already in place to reduce the probability of failures across the analysis, design, development and testing phases of the applications lifecycle. Even so, introduction of automation and access to accumulated intelligence can position applications to proactively take preventive measures in production. IT must ensure that applications are wired with code that matters so that they have access to data that matters.
How about you? What are other things that applications can do to help themselves? Have you parallel parked your applications?
I am heading out to teach my daughter how to drive, and I suggest parallel parking as today’s lesson. “Why bother, Dad?” she asks. She has a point. The cars she plans on driving can park themselves. Parallel parking is becoming a lost art. Maybe the day will come when applications monitoring becomes a lost art as well.