Thursday, 26 March 2015

What's your excuse?

It's 2015 and the software industry has taken the world by storm with VCs like Sequoia Capital investing large sums of money in new innovative startups all across the world (Google, LinkedIn, Zappos...ring a bell?). Accelerators like Y-Combinator providing early stage funding and support for a large number of founders and teams (with Homejoy, Parse and Heroku being just a few successful exits). Successful company IPOs breaking world records and game-changing apps like Uber and AirBnB completely revolutionizing the way that we interface with service providers in our day to day lives.

Ladies and gentlemen if the introduction doesn't make it obvious enough, it is very clear that we are well into the Developer Age and life as we know it will never be the same, We now live in a world where software is king and those that know how to write, market and sell it have the digital future in the palms of their precious programming hands. What previous generations took months/years to do, needing large sums of money, larger teams as well as costly equipment and resources... our generation can do over a weekend in the comfort of our rooms, with access to the internet a standard laptop/desktop computer and a few simple and free software tools and services, Its actually quite ridiculous...

With significant improvements to development and deployment techniques, the time-to-market time period your app has in the modern day and age is vastly improved compared to say 15-25 years ago. With this in mind I ask you technologists, creators, developers and tech-entrepreneurs:

" what is stopping you from testing the market with that prized idea of yours?"

Well... while you wait to search your hat of excuses to answer that question, I'll proceed to give you a brief into to how I have chosen to transform my ideas into reality of late. In order for me to get V 1.0 of my apps up onto the internet and accessible by the public I have done the following:

1. Buy a domain.

If you are looking into building a web-app the first step I would feel is to buy a domain, the assumption for this step is that you already have an idea of course. For this step I would advise using Afrihost (I have used GoDaddy as well, but Afrihost is much closer to home) - they have served me really well over the recent year or two. They offer great service and the prices are reasonable.

2. Host you app online.

Alright now for this step you have a number of approaches, I'll only talk about what I have used so far. After doing some initial research I landed up on Heroku (I thought about using GAE or AWS...so maybe next time). Now these guys have an extremely easy setup process that allows you to push your app up and add-on a host of services and tools to ensure your app is well rounded and runs smoothly, whether it be in a staging environment or in production.

3. Map that domain to your app.

Ok so now I have my domain and I have my app on the world wide web..what next? Well then you ensure that your domain is mapped to the domain given to you by Heroku, the default Heroku app domains are in the form yourApp.herokuapp.com. It is quite an easy process, but note that after adding your custom domain it might take some time to reflect because of DNS propagation. You will also have to make some changes through you Domain Name Registra.


4. Host the code up in the cloud.

Alright so now I have my idea, my domain, my app host...time to get to some coding! But what do I do with this code? Well in order for you to access your code from multiple devices as well as have a safe centralized storage site you might want to use an online repository like Github or BitBucket, I used GitHub for a long time until I wanted to start using private repos (kinda got scared of random web-surfers coming across my world-changing code), so then I moved to Bitbucket, because private repos are free (oh the joy!) for teams of 5 or less. You will have to install git for this.

4. Use a CI building tool like Codeship.

Alright so now I have my idea, my domain, my app host, my code base is hosted in a private repository...time to build my app! But what happens after I code? Well you can either push directly to Heroku through git and the heroku toolbelt, or you can use a CI tool like Codeship that will trigger a build each time you push to your repository and the joys of this are it will run your tests for you and it will notify you if your build has failed. You can add Codeship as an add-on through Heroku, and everything will be tied up together seamlessly and perfectly.

But wait...I am not alone in this endeavour

Alright so you are not alone, you are in a team, now what. How do you co-ordinate this amongst your fellow devs and if you are lucky enough..an actual Project Manager and/or Business Analyst...


"Never fear, innovation is here."

5. Communication

I have recently started using Slack with my team and it's great, you have the ability to add multiple members and have multiple "channels" that you can use to separate your communication into different stream so as not to confuse each other. On top of this you have the ability to integrate with other online tools and services, so now everyone will now when you have pushed up some code (Bitbucket integration) and everyone knows who to blame when your build fails (Codeship integration)... well that's if they haven't already read the email from Codeship itself. Its a great app that you can access via the web, desktop or mobile. And it has a nifty bot called Slackbot that you can customize to do and say almost anything.

6. Sprint management

Alright so now we are all talking and coding and building and we can let users access our app via our private domain... but how are we going to co-ordinate this development process? Well for that I have been using sprintly, its a great tool for task management and progress, you can build up your backlog and ensure items are all logged in detail before starting your sprint. You can add tasks as well as defects. It has a free version like everything else, completely free for one product and 3 members, with each other version offering a free 30-day trial period.


With all these free tools and services at you disposal, with your knowledge, skills and ambition ....

"What's your excuse?

*This is just my Journey, with countless number of tools and services this is bound to change over the coming months and years.


Benjamin J.E Mmari
Developer, Entrepreneur and changer-of-the-world.

No comments:

Post a Comment