Introduction

One day I was catching up with my social networks and I came across an interesting tweet from a prominent independent IT consultant who I followed and respect. 

His tweet was focused on the development of software products (from various companies) but focused on comparison of products capabilities and what could perhaps be achieved with what her referred to as ad-hoc or free development tools such as PowerShell and Visual Studio etc. 

It was clear that his view was in some respect a damming and derogatory account that appeared to be aimed directly at software vendors suggesting that many products are overpriced for what they did and not worth the price vendors asked for them.  This got me thinking and questioning if I felt he had a point. 

I just want what I pay for

Let’s start by (hopefully) agreeing on one thing and that is that nobody wants to pay for something they feel is not worth the money they paid for it but with software the costs of producing it is often misunderstood or simply not realised.    I am not going to defend large software companies or justify the cost of their products, but I believe in being fair and fairness is essential in any debate.  After all a balanced argument is far more compelling than an ill thought though and biased one. 

How do I know if I am getting value for money?

Software is used by most of us on a daily basis and to some extent we take it for granted.  Often software products are not even seen by end users, yet they still have a positive impact on the way they work and for business productivity as a whole.  For instance, cloud computing has allowed many companies to move closer to the utopia of software defined datacenters which allow them to become more agile and far more efficient and therefore more effective so the value in these software solutions is difficult and sometimes impossible to realise if looked at purely from a user’s perspective.  This can be said of many other products that on the face of them add little value but in fact are crucial components of an overall solution.

How difficult can it be to develop my own software solution?

Now let’s get back to our friend the IT consultant.  It’s true that many companies IT departments leverage open API’s and use established software methodologies (such as PowerShell and JavaScript etc.) which (if the knowledge is available) anyone can tap into and product something that may do similar things to (perceived) overpriced software products.   The real question is how many people actually do this?  The answer is not many and there are good reasons why.  Even though many have the technical capability to produce code most individuals can’t afford the time to do so and most importantly even if they could they would not be able to provide the ongoing support of what they produce.  There have been many occasions throughout my career where issues have been caused by that simple little PowerShell script that at one time was perfect but unfortunately hadn’t been changed to reflect changes in other architectural components and yes, the guy that wrote it hadn’t documented it before he moved onto his next project.  I am sure we have all been there.  The cost to a company can be a high one though. 

The fact is there is much that makes a software product and differentiates it from a piece of ad-hoc code.  Testing is an area that consumes huge resources and time.  In fact, the testing of a product is (in my opinion) where it is defined prior to its release but even then, it will not be perfect so ongoing support and updates are not only necessary, but they are crucial. 

Summary

In summary it’s no trivial undertaking to produce a software product and that remains beyond most individual’s capability.  There will always be individuals that are skilled and determined enough to produce a scripted solution which can certainly do some worthy and useful things and they have my total respect, but they do not produce products so they cannot and should not be compared with pieces of code that have no support and receive no ongoing development.   To do so is not just unfair but it is also illogical.

How difficult can it be to develop my own software solution?

Introduction

One day I was catching up with my social networks and I came across an interesting tweet from a prominent independent IT consultant who I followed and respect. 

His tweet was focused on the development of software products (from various companies) but focused on comparison of products capabilities and what could perhaps be achieved with what her referred to as ad-hoc or free development tools such as PowerShell and Visual Studio etc. 

It was clear that his view was in some respect a damming and derogatory account that appeared to be aimed directly at software vendors suggesting that many products are overpriced for what they did and not worth the price vendors asked for them.  This got me thinking and questioning if I felt he had a point. 

I just want what I pay for

Let’s start by (hopefully) agreeing on one thing and that is that nobody wants to pay for something they feel is not worth the money they paid for it but with software the costs of producing it is often misunderstood or simply not realised.    I am not going to defend large software companies or justify the cost of their products, but I believe in being fair and fairness is essential in any debate.  After all a balanced argument is far more compelling than an ill thought though and biased one. 

How do I know if I am getting value for money?

Software is used by most of us on a daily basis and to some extent we take it for granted.  Often software products are not even seen by end users, yet they still have a positive impact on the way they work and for business productivity as a whole.  For instance, cloud computing has allowed many companies to move closer to the utopia of software defined datacenters which allow them to become more agile and far more efficient and therefore more effective so the value in these software solutions is difficult and sometimes impossible to realise if looked at purely from a user’s perspective.  This can be said of many other products that on the face of them add little value but in fact are crucial components of an overall solution.

How difficult can it be to develop my own software solution?

Now let’s get back to our friend the IT consultant.  It’s true that many companies IT departments leverage open API’s and use established software methodologies (such as PowerShell and JavaScript etc.) which (if the knowledge is available) anyone can tap into and product something that may do similar things to (perceived) overpriced software products.   The real question is how many people actually do this?  The answer is not many and there are good reasons why.  Even though many have the technical capability to produce code most individuals can’t afford the time to do so and most importantly even if they could they would not be able to provide the ongoing support of what they produce.  There have been many occasions throughout my career where issues have been caused by that simple little PowerShell script that at one time was perfect but unfortunately hadn’t been changed to reflect changes in other architectural components and yes, the guy that wrote it hadn’t documented it before he moved onto his next project.  I am sure we have all been there.  The cost to a company can be a high one though. 

The fact is there is much that makes a software product and differentiates it from a piece of ad-hoc code.  Testing is an area that consumes huge resources and time.  In fact, the testing of a product is (in my opinion) where it is defined prior to its release but even then, it will not be perfect so ongoing support and updates are not only necessary, but they are crucial. 

Summary

In summary it’s no trivial undertaking to produce a software product and that remains beyond most individual’s capability.  There will always be individuals that are skilled and determined enough to produce a scripted solution which can certainly do some worthy and useful things and they have my total respect, but they do not produce products so they cannot and should not be compared with pieces of code that have no support and receive no ongoing development.   To do so is not just unfair but it is also illogical.

About the Author

Steve Atkinson is the Co-founder and CTO of Cycloud. He has held a number of technical director and engineering roles for virtualization technology, including at Citrix and Dell.