Sunday, 11 September 2016

On Herzog and technique

I am a big Werner Herzog fan. I love his movies. I love his interviews. He seems like the kind of person you would want at a dinner party. So I was intrigued when he appeared twice in my Twitter timeline this week. The first was a quote from an interview giving advice to young film makers

I think that this is also great advice for developers starting out in their careers. People's problems and the work they do doesn't change as much as the underlying technology. This is a pretty simplistic example but I started running in 2009 and my experience is pretty much the same:
  • I listen to upbeat music of my choosing
  • I get statistics recorded of my performance
  • I can share those statistics on Facebook or Twitter
To support that I am on the the fourth device with about 6 different operating system versions. Starting off with an iPod and Nike+ sensor, then an iPhone 3GS, 5S and now 6. But the data is still there, sure there are some gaps when I didn't have GPS. I could also have switched to an Android device or used the Nike+ Sports watch. The technology changes. How I use it changes, and requires me to adapt to deliver the same core experience.

Another example from my work life. The product I work on, at its most simplistic reduction, delivers messages based on industry specific business rules. The recipient of these emails won't have noticed much change in the past ten years. Under the hood of the product though there have been a lot of changes. From use of VB6 and COM to early versions of .NET to bus based messaging. There have been various shifts in technology and techniques used that have forced adaptation. Luckily I didn't personally invest to much time in become a COM expert back then! Even the knowledge of how to deal with VB6 DLLs and Classic ASP pages isn't a great deal of use now. What is useful is the domain knowledge around communicating to people. About the stages of getting data and processing it.

The second occurrence of Herzog on my timeline was some commentary by Grady Booch on a film review. The tweets are in three parts, starting with 


“Whenever a self-driving car makes a mistake, all the other cars know about it, including future unborn cars.” Sebastian, I respect your metaphor and your POV, but let’s sit down and talk about the pragmatics of legacy code.

and finishing up
Again this tells a story about adaptation. How its not just the code we write but the data it uses to teach itself that give the outcomes we want. The cars of the future will learn about the mistakes of today if we adapt the code and data from one technology to the next. This has been easier in the past where the code and data are separate. 

In a world where we use inputs to evolve the "code" running then we may need to treat AI more like employees. With one generation "training" the next, passing on the data in a way that it can become part of the new model. With human beings our mortality and imperfections in passing on knowledge helps prevent a build up of useless information .... well to a certain degree! With computers it looks likely to be obsolescence preventing the passing of useful information. So yes, even with AI it appears we need to focus on adaptation rather than a particular technology that will get dated.

R for Product Management

Photo by  Štefan Štefančík  on  Unsplash Since my previous blog post I have made some progress on being able to replace most of what I...