The Gunslinger and the Indian

There’s a fight on your computer over a girl called Planned Obsolecence

I get that you need to update software periodically and I definitely want to see software developers paid an appropriate amount but what happens when no one can think of anymore functions to add? With my older applications I definitely change them less and less as time goes on. What then? Can we keep our ten year old software packages which still have the distilled mathematical knowledge from 2 millenia of scientific knowledge 95% of which we have never used?

How will software houses make their money? Temptation is to either by accident or design discourage or deny companies the ability to buy and maintain software outright for local installations rather requiring them to rent from proprietary servers to steady their reducing income streams? (cough splutter splutter Adobe)

I’m sure it will act as a tempting vacancy for the Open Source community, especially on the desktop.

What does the user do?

Go with the native Indian who is less familiar and sometimes rough around the edges but has a far more sustainable and economical way of life or the mercenary gun slinger who you always kind of half suspect has his own agenda and may leave town quickly.

To the horses boys there’s a fight coming.

Internal Development Good or Bad

Elite Dangerous from Frontier Developments an example of a game built on internally developed game engine – and they are seriously kicking ass as a result.

It is tempting having been burnt with IT projects to say right that’s it I don’t trust consultants anymore I’m going to try and do everything by myself we cannot trust outside companies with our valuable processes – we are after all primarily purely a process company and our processes are golden to us. I must admit I have had periods of my working life where I have been sympathetic to this view. I have found Internally developed systems great because – they motivate internal teams, they increase knowledge of systems design, they can be completely market leading, they can be incredibly flexible and reactive, they really engender responsibility and accountability, they can be very incremental and adaptable and certain individuals can develop systems often using existing IT infrastructure for solely labour costs. (Why employ capable people if you don’t want to use them?)

Against this there are some fairly big black marks which for some are insurmountable.
They tend to be very person dependent with a lot of power resting with certain individuals
Often those individuals are not necessarily chosen by management and often management really don’t like this.
People move on
Most systems will take a year to at least get up and running and sometimes solutions are needed quicker than this.

As a result I would always suggest a mixed strategy of allowing talented individuals to develop those areas for which there are no good products on the market while encouraging buy in of good tools and good products where tools and products do exist. It really should not be an either or and going down solely down either path could lead to problems. It is of course rare to go solely down the all internal route but I am aware of companies only going down the externally produced route.

But be aware even if you are going down the open source and internal development path – be prepared to invest. Buy good IDEs – don’t skimp on database support. Hire consultants (but please give them focused tasks non delivery of results from consultants is often because they’ve been hired without any real idea of what is required of them) Buy products because they look interesting. Financially support open source projects that are actively contributing – not because your liberal with your money but because value is value chances are you can still choose a cheaper path that benefits you and the providers by not leaving yourself open to the kind of consultancy that costs but does not provide. Most of all its your chance to buy in and vote on the future of your software. Open source providers will sit up and notice pay attention and give real weight to your requests.

Be warned though this kind of imagination and vision requires allowing good visibility and control across large parts of the network something that seems to contradict the general trend towards tighter formal security (at least where I work). I would argue however that tighter security often leads to loss of accountability and responsility (a lack of people who can track through all the programs of an issue) resulting in people and especially management being completely blind sided by problems and counter intuitively greater risk of negilgence and greater opportunity for fraud. [Financial Crisis and the Accounting profession anyone?]

I would add that if you really want to be world class you are going to have to take control of your software.

Complex Event Processing (How Cool)


As part of my timing software solution I had been interested in seeing if there was a better solution to the constant pulling of information from the timing boxes. It would for instance be far better to have some sort of push mechanism where calculations were only made when new information was received.

Turns out that with the advent of big data (which to my mind is being driven by sensors) it seems to be a bit of a hot topic. Doubtless brought on by the myriad number of devices and sensors which are in the market at the moment. Microsoft have a framework called StreamInSight which is free to those that already have SQL Server 2012 licence (not sure which level)

I still have a lot of questions.
Leading on from the post I did on designing my own timing software I consider that it would be useful as a single time could come in and it could be linked up with its partner times and a lap number could be calculated that would allow the relatively easy display via pivot. A process that could occur as the information came in rather than being pulled and batched which is the way my system does it at the moment.

Not sure how I can get my hands on the framework though… Would love to try it out.

Resources here.

StreamInsight: More than Just an API

General StreamInsight article list

The Economics of Immortality

It is my contention that there are software houses out there that are losing the plot.

 Rather than being in the business of reducing costs for their clients they are increasingly focused on maintaining their own revenues.
I would suggest that long term this is a recipe for failure.

Many software companies were born out of individuals who recognised that there was a better way to do something reducing the need for duplication increasing speed of transactions and transmissions and reducing deterioration of information while improving distribution, that sort of thing. Some companies seem to be forgetting the ultimate promise of the digital age. Information duplication and storage with 100% accuracy and essentially zero degradation. Isn’t data and software held on them a complete analogy to bacteria? What else lasts for significant periods without change through thick and thin maintaining their information with low levels of maintenance and error while their environment expands and contracts.

Surely then software has the potential to become ubiqutous, expendable, 100% maintainable and awkwardly for software houses – immortal.

I argue that the objective of a software house should be to put themselves out of business. To make a product that is so good that they can move onto a different arena and create another product that is so good that it cannot be beaten. I am also of the opinion that the founding fathers of software created the discipline with that in mind.

Up until now many houses have been doing a good job of this and I certainly think of certain individual digital projects that have pretty much succeeded in this goal – they do tend to be the low level stuff though – SQL / C++ etc.

Present day the easy wins are away new products regularly focus on usability and distribution and reimplementation of features which for older hands were always there (albeit in different guise).

Microsoft sometimes demonstrate aspects of this but they are in no means by themselves on this.
ESRI (ArcView)
Alpha 5
have recently been making moves to rent out their product and its not just software houses , IBM have significant income from services on demand section.

I maintain that when this is marred with software provision I think this is in direct contradiction to why software was originally created and therein lies the problem.

Service provision is an erosion of customer rights not an increase in them. It is making the landlord into a tenant no wonder it’s a difficult sell.

Why else is open source gaining ground? Because those with intelligence inherintely recognise the fact that although they are power users the products being offered to them just aren’t doing what they want. What’s more sometimes increased usability in one feature may be at the expense of reduced functionality in another. They don’t want to be a tenant and would prefer to be the landlord.

I appreciate the work that Microsoft has done and many of their brilliant tools. I just think if Microsoft want to make money out of software hone their products then get those developers to build software specific applications out of their environment. Its not as if sections of the organisation aren’t trying to do this. XBox and Kinnect have all been great demonstrations of the benefits of essentially that. At some point the marginal improvements from polishing will only serve to focus demand for open source solutions rather than towards their products.

Who knows exactly how this will pan out but one thing I am convinced at at some point secondhand software will be as valuable as new software as the incremental improvement in usability will be minimal and because of the immortality of everything digital there will be for all intensive purposes no age difference between either.

I look forward to supporting microsoft in the future and see no reason to stop that using tools that continue to be excellent. I will however be very cautious about becoming a slave to any software provider.