How to pick the right (technology) tool for the job?
There are a lot of options out there. First, you need to decide where your servers will run: Google cloud platform, Amazon web services, and many others platforms that give you the ability to ‘run and scale’. Next, you need to think on the distribution platforms you wish cover and to prioritize them: Web, Android, iOS etc’.
Soon after these stages, you will hit the important questions, on your strategy. Is it going to be ‘mobile first’ or ‘mobile only’? How will you promote the product? Which channels? How to measure and tune them?
In this post, I will try to cover the tip of this iceberg. Specifically, what are some of the consideration you wish to be aware of when making the critical decisions that address your technology stack.
- Web – The Web got the huge benefits of discoverability and for its being a ubiquitous platform. Moreover, during this year (It’s 2015 already!) we will see new APIs (Service Workers, Notifications) that harness developers with important abilities to create web applications that work and feel ‘native’. You need to think on a ‘mobile only’ strategy and work to make your product great on mobile. The next 2B users are going to be mobile only and even in the ‘rich’ countries, we see more and more mobile usage. After we have a ‘mobile only’ product (e.g. Whatsapp, Instagram etc’) we can always come back and improve the ‘desktop’ version of your product. Another way to look at this, is coming from Design to Mobile – Start with mobile (e.g. limited screen) and ‘add’ more options to larger screens. This will force you to focus and give the best minimal product at early stage that will work great on small devices.
- Native (Android/iOS/Windows) – The benefit of being part of each platform are known, it’s mainly discoverability, powerful APIs and monetization. Each one of these platforms (Android/iOS) give you a lot of users that already know what to expect from your application. You can work with that ‘muscle memory’ and create great experiences. The main disadvantage is that ‘gatekeeper’ that is standing between you and the users.
- Hybrid – It’s a web app that is leveraging the native capabilities. On the plus side, you got most of your code in the same technology stack (HTML5, JS, CSS), However, on the minus side, you need to pay extra care to the hooks and APIs that cordova/phonegap (or other solutions) are exposing.
- Quality – you should start building your code with unit tests and continues integration. This is the only way to know what is the quality of your code and to make sure that with each new ‘fixes’ you are making the product better and not the other way around. In the triangle between: Features, Time and Quality you want to have the highest quality in the time that you have. So the best option is to focus and limit the amount of features per version.
- Testing – you can’t argue with data, although, you will find people who will try. You wish to have a full coverage (over 85% of your code base) and in many cases, it’s a great idea to start a new feature (story) with its testing unit. Other aspect of testing it A/B testing. It’s good to try and answer every question with data that is coming from a test.
- Monitor – like in testing, use data to prioritize additional features. A good monitoring will give you insights to popular usage and even to cases where your application is not acting as expected. There are many SAAS options out there that give you deep insight into your application. One that is getting a lot of attention is Newrelic.
- Tools – Use tools that works for you. There are many options and the best way to know what is working for you, is to taking it to a test drive. Below is a list from product hunt for Product managers but most of them will help developers as well. You can checkout other collections for startups.