Posts

The Myth of Machine Learning

Image
Recently there has been a surge in the number of companies claiming machine learning capabilities, from startups to large organisations. The media is full of "machine learning" claims, investors seem to be dropping large amounts into startups claiming to have "machine learning" or "artificial intelligence" capabilities. From Logo design companies to delivery companies, they all claim to have implemented "machine learning". I recently saw a press release for a US based app development company that had raised a significant 7 figure sum, claiming they had developed "Human assisted machine learning" ! One has to ask, what is that ? Any machine "learning" has to be assisted by humans anyway, who would configure the algorithms, applications and hardware, not to mention the training ? Neural Networks and AI genetic algorithms have been around for a long time. So why now ? The answer is data (and to some extent computing power). ...

The CTO journey: 5 Things I have learnt

I remember hearing a quote from Herb Cohen, the respected US negotiator. It went something like "I never get called when everything is going well, I dunno who get those calls, but it ain't me !".  This is true of many startup CTO's. Usually there is some failed outsourced relationship, or a technical co-founder who takes the product to a point and then gets stuck. I have received many calls over the years and the problems are usually similar. This was indeed the case at my current position. Here are some things I have learnt .... Focus on the core product: There will be a lot of noise around the product, features that are not essential, wish lists, dreams. Stick to the basics ! Unless you get the fundamentals sorted out there is no future for the product. This requires single-mindedness, and possible a few "debates", the founders will want to get as many features in the product as possible. Don't give in ! The main role initially is knowing what ...

Shold Cloud Computing Costs be Regulated ?

I am not one for bureaucracy, in fact the contrary. I cringe at unnecessary bureaucracy and regulation. The face is that we are becoming a more highly regulated society, that being stated, I do feel there are some areas where we need regulation to protect the consumer. One such area is the regulation of costs by commodity suppliers, telecommunications, energy, fuel etc. As CTO of a emerging start-up I am responsible for ensuring that our systems run on the latest and most secure technology.  Cloud services provide that scalable infrastructure and so naturally I use them extensively. However, let me tell you a story of one warm Friday night last July. I was just about to go on paternity leave and settling down in my lovely new bath for a Friday night soak, when the phone rang. A chap was phoning from Amazon Web Services (AWS). He politely enquired if I was aware that our company had just incurred over $20 000 dollars of charges transferring some data from Glacier to S3 storage....

Implementing Product Development Methodologies across Cultures and Organizations

Image
Implementing Product Development Methodologies across Cultures and Organizations After experience at trying to bring various methodologies and ways of approaching product development to different types of organizations in different countries, and often not succeeding as well as I would like, I thought I would attempt at finding some explanations. I currently think of 3 dimensions that are the most important in terms of how they impact a generic methodology or approach. This is not an exhaustive list, however, after much thought these are what I feel are the key contributors to success or failure of putting an effective methodology or approach in place within an organization.  Communication The way that people communicate within the organization or team significantly affects the process of product or service development. Different cultures communicate in different ways, some more "open" others more "closed". Some "hierarchical" others less so. ...

Agile and Lean thinking in Japan

I have just returned from Japan, where I was involved in leading a workshop on Agile and Lean thinking. Being back in the UK, I am reflecting on how things went, what worked and what did not. The whole experience proved to be much more difficult than I could have imagined. Japanese culture does not seem to be compatible with Lean or Agile approaches. Consensus is always needed Time spent on a problem is the primary indicator of effort and success All expressions of ideas need to be well thought out (brainstorming is not natural)  It is natural to delay the commitment of an idea or an approach, so decision making is delayed to the last moment These observations are in total contrast to the Agile or Lean approaches, which value "efficient communication", "lists", "brainstorming" and rapid decision making.  This is probably why these Technics have not much of an adoption in the Japanese business world. If I were to revisit this market, in terms...

WebSockets is the way forward

One of the great frustrations of developing any Web based software system is the request driven paradigm that the HTTP protocol demands. The user sends a request and the server responds, based on some further user interaction further requests are sent and responded to.  There are clever ways of circumventing this behaviour, but they have all been rather messy. One big problem is that a request is generated on the client side either in HTML code or in some Javascript and then handed off to a handler on the server, there maybe many such handlers for different types of request. The response is then handled on the client side somewhere. It all get`s rather messy keeping track of where the request responses are handled and maintaining state. It reminds me of the bad old days of BASIC, where the GOTO command caused execution of the program to jump around. As code grew in complexity it became very difficult to track or debug. Developers were always discouraged from using GOTO unless ab...

Client responsive design

We are no longer in control of the devices on which our media and services are being consumed. They are becoming more varied and numerous in their differences. This is not a new problem, we have been faced with this issue for some time. Previous best solutions revolved around detecting the device capabilities at the server side and making intelligent choices to render the appropriate, fit-for-purpose content on the user device. This solution requires constant updating of the server side logic to account for all the new devices, this is a complex activity, prone to error and cannot possibly account for all the possible variations. Most recently there have been changes in the capabilities of most modern devices. (1) They have sufficient computing power to work out how to render their own content (ignoring legacy devices for now) (2) Most modern devices can run client side scripts to interpret data and render this data appropriately (3) We can define all we...