Tool Selection

Tools

Hello Everyone! I am happy to be back this week. Last week was really crazy so I missed a post. However, today is my 34th post on this blog and I am glad to be here! Next week will be Game Developer’s Conference and the West African gaming elder Eyram Tawia will be making a presentation. Now let no man ask him if they can enter his traveling bag because that place is already booked by me.

This week I will be looking at the tool selection criteria that I use when deciding on a tool. As a product developer, good tools should enable you get the job done and not overwhelm you. Before choosing a tool, I am honest with myself. The first question I ask myself is my level of skill. If a tool is higher than my level of skill, I will not use it. An example of this is CakePHP. While I feel is it a great PHP framework, I also feel that it is not for an intermediate developer working without a mentor to guide the learning process. So, at the end of my search for a PHP framework, I chose CodeIgniter. Now in 2 years time, my level of skill will improve. Will I then switch to CakePHP, only time will tell. So without much ado, here is my tool selection criteria.

Popularity and Community
How much buy-in a tool has from people is important. No matter how good a tool is, it does not have a future if no one hears about it. Ask Lotus Note what happened! In its day it was a vastly superior tool to Microsoft Excel. Compare that to Java in its glory days. I learnt Java because of its popularity. Back in the day, there was almost a super-cool status to being a Java programmer. In fact the hype around it made it seem like the cure for everything from world peace to HIV/AIDS and Cancer. Now did it live up to the hype? You be the judge but even to this day when I tell people that I am a programmer, the first language they mention is Java. It also had a vibrant community around it. I say had because nowadays I am no longer sure. There is a law in the corporate realm that whenever a technology giant touches an open source project, the community tends to be slaughtered at the altar of profits. When Oracle took over Sun Microsystems, this law came into effect. But it isn’t all doom and gloom. The Netbeans IDE now has support for HTML5 and for all my hatred for Oracle and what they did with the Java language, Netbeans 7.3 is a great IDE for HTML5 and PHP. What is really cool about it even if you have sworn off Java (Like I did last year) is that you can download just the modules that will enable you work with HTML5 and PHP.

Documentation and Examples
No matter how great a tool is, if the documentation reads like greek, no developer will touch it. Good tools have great documentation! A classic example of this is XCode by Apple. Now I had to do research on developing for iDevices once upon a life time and I was suprised at the level of details of the documentation. Examples also matter! I was trying to create a chart for a particular project. Using Raphael was becoming cubersome so I decided to go in search of another JavaScript Library. In the course of searching, I found Highcharts. Not only did it meet the documentation criteria, the examples on pie chart creation are in my opinion the best among all the charting libraries I researched.

Licensing and Pricing
Yes legal and accounting issues do matter. I personally love FOSS (Free and Open Source Software) but even when deciding to use a product, you must read the license! Highcharts for example is free for non-profit purposes. Now a typical developer will say this is Africa and I will agree. But scaling has a way of catching up with a developer. Once a team gets big enough, it could have a lawsuit on its hands! You can ask Samsung about what Apple did to them. For years the issues where always there but Apple did nothing. Only when they where sure that Samsung was a big enough target did they go after them. Even Microsoft is not exempt from this. In the early days of tech adoption in Nigeria, banks got their software from Computer Village (A place where you can get everything tech in Nigeria). Now this was fake software but there was no stopping the binge that had started! One day when Microsoft was sure that they had found a home on most of the banks servers, they struck! Until that time, most banks did not know that Nigeria had an anti-piracy law. In the end, a lot of money was coughed out and Microsoft‘s dominion was assured in the banking halls of Nigeria.

Easy to Setup
No matter how great a tool is if it isn’t easy to setup, I am not interested! For years, this was my argument with Android. It was always a pain to setup. Now being a spoiled Windows user did not help matters! To illustrate how much of a problem it was, when the Android team finally decided to package Android into a single setup, guess which OS users got the package?

Easy to Use
Here all discussions end! If a tool is not easy to use based on the subjective experience of the user, then nothing else I have written in this post matters. Microsoft is the definitive standard for user accessibility in Africa! I wonder if I would be a programmer by now if I had to learn to from command prompt at the start. Even among all my programming friends this trend emerges. It seems like the guys who learnt Visual Basic (A drag and drop programming environment) first are still programming while those who where introduced into programming with C++ (A command line programming environment) are no longer programmers. Don’t get me wrong, in order to really push the limits of a machine, you must use the command line. The only problem is when you are being introduced to this at the beginning when you are trying to find your feet. In truth all tools have prerequisites for usage and jumping head first into using a tool without knowing its prerequisites is sometimes a recipe for failure. That noted, good programmers also know that the fastest way to learn is via experimentation. If we are too afraid to learn how to use a tool because we are afraid that we might break something, we might as well become project managers.

That’s my piece on tool selection. If you have anything to add do drop a comment in the comments section below. With this post, I hope you also understand why I use WordPress.