Featured Post

Game Analytics - Big Data And Business Intelligence(BI)

Games generate more data then an average application because of the game state machine . Terabytes  of data can be accumulated in a short pe...

Wednesday, June 2, 2010

Non Technical Factors Influencing The Development Platform Selection

Recently, I have been working with a number of early stage companies engaged in the debate over what development platform would be best for their company. The options considered are varied with the most significant division occurring between the Microsoft and Open Source/Linux camps. Database selection, program language, O/S, Hardware, Cloud Computing versus conventional hosting are all in the decision mix.

Oddly enough my experience has been that the decision to go down one path or another is significantly influenced by "non-technical" considerations. Companies can use business, prior experience and in some cases less than rational arguments to select one platform over another.

This is an interesting challenge from a consultant/adviser perspective. A technical consultant's initial reaction is to steer people away from the more esoteric reasons for choosing one platform or another. However, the less then purely technical reasons for selecting a development platform need to be understood, dealt with, addressed rationally to obtain a consensus within the organization and to recommend the "best" development platform for an organization.

The following are common non-technical arguments that frequently influence the development platform decision.

The CTO (main programmer) Knowledge Base - Early phase companies are highly dependent on single individuals. A key person in a startup is the main programmer setting up the systems and coding away to get the company up and running. Their knowledge base is usually restricted to a certain universe of development platforms. Frequently, a company will assume that the platform selection of the programmer is the right one. No questions are asked, no assessment is done, no performance criteria is considered.

What happens if this individual leaves the company? The main programmer may have made the right chose and they many not have. If they leave the business the company could be stuck with an obsolete platform, a platform that does not scale, or a platform that is expensive to maintain.

Available Expertise - Platform decisions can be based on the availability of resources in a certain geographical area. If an area has an abundance of programmers using one programming language versus another the tendency is to select a platform for the available pool. This reason has merit. A business certainly needs resources to build and maintain products. However, a company should not make a platform decision exclusively based upon available resources. Technical pros and cons need to be brought into the discussion. Just because there are a lot of technical resources available to build a certain platform does not automatically mean the platform is appropriate for your business.

Business Fear Of Open Source - There still exists a large pool of business people that are skeptical about the safety and security of Open Source based software products. Many executives harbor the fear that Open Source software is subject to embedded "Easter Eggs" and tunneling hackers that could somehow topple an Open Source based platform. This may be a surprise for technical professionals and does require the technical staff to "educate" business owners on how Open Source projects are run and operated. Open Source is certainly a viable platform and should not be discounted because business owners have not been educated about the merits and security of Open Source products.

Brand Prejudices And Bias - Everyone has their bias and prejudices when it comes to product selection. Brand prejudices also exist in the development platform world. Business and technical people will have brand name prejudices(Microsoft, Oracle, IBM, RedHat, etc.). Buying into a development platform based on a bias without associated technical merit is not a good way to select a platform. Not considering a platform because there is bias against it is also not a reason to ignore a platform.

The Latest Hot Platform - Developers are subject to adopting the latest new programming language, DB or upgrade. This is what keeps the industry evolving and improving and is a great way for technical people to upgrade their skills, learn something new and command more money for their services. Adopting a new and emerging programming language may or may not be a good chose for a company. Just because something is new and emerging is not a reason to adopt or reject it as a platform chose.

My Competitor Or Potential Partner Is Using The Platform - If the platform used by a competitor or potential business partner is working for them then it certainly merits consideration. Equally important is to determine what if anything is different about your company. product or service. If the competitors platform puts a company in a position where you lack differentiation, scalability or flexibility to increase market share the company may want to consider other options.

Conclusion - The selection of a development platform for a company is a major decision that has long term consequences for an organization. Startups are especially susceptible to making hasty and uninformed development platform selection. Spending a bit more time on the decision and grounding the decision by considering technical as well as business input will lead to a more defensible outcome. It will also build consensus within your company and the confidence that the company is making the right decision.

No comments: