So, this is probably the question I get the most. And right after it would be ‘and how much time will it take?’. I have bad news for you out there: project planing is still far away from an exact science. I’ve participated in too many project that were under estimated. There are many ideas and techniques to have in mind when planing a project that might give us an idea on what the time frame would more or less be the correct.
Design your app
Although this might sound trivial to people experienced in the IT or software business a lot of people don’t know they have to design their apps. They just have an idea (some times it’s quite clear) but they don’t have a good design. A good way to start is obvious: the user interface. It doesn’t have to be squeaky clean, in fact, it doesn’t even have to be an actual real world design. Sketches can be enough:
You can use paper and pencil or some cool software such as Sketch. What you will be doing is basically designing an interface that allows your potencial users to implement every each one of the use cases you want to serve. For a programmer or a company to being able to give you an estimate this is pure gold, although your application might do a lot of stuff in the background and maybe designing the UI is just not enough (think of Shazam it has a super simple UI and performs all the work at the back).
If you have an idea, you have nothing
As a mobile developer (specially since mobile development has become the thing lately, I get a pitch for an ‘awesome’ app idea every now and then. Although people are very enthusiastic they are not dumb: many have seen the so called dot-com bubble expand and explote, so (different that back in the late 1990s) nobody is expecting to become a millionaire overnight with just an idea. I would say that there are many ideas out here that have succeeded and failed, some sounded really good and some sounded awful (“A website with unlimited space for video upload, where users uploading trademarked suff” That could’ve been a YouTube pitch). So, it not actually ideas what makes companies thrive: it’s their implementation.
You think Netflix was a great idea? So did the guys at Blockbuster. They partnered up with Enron in the 1990’s (that in those days had a massive network to deliver video through the United States) and created an on demand video service that failed for many reasons, so quality and good software does matter.
Invision an MVP
You should first create an MVP, this is a Minimal Viable Product. This basically consists in discovering which features are essential to your application and should definitely be delivered on it’s first version. If you are developing a cool chat application that you want people to use right away maybe login through Facebook or Gmail is essential. Maybe it isn’t. But that the chat works perfectly is an absolute requirement.
Remember to negotiate the source code
When you purchase an application you are not buying anything but it’s code. It’s like the ‘score’ of the program developers are building. Without this you won’t be able to take it to other developers if you don’t like the work that is being done. I would negotiate this right at the beginning of the project, making very clear that you want to have access to the source code you are buying through the entire development process.
Companies such as Github or GitLab allow you to host your applications source code in the Cloud allowing different parties to add changes or just view it’s progress.
Contact different providers
There a number of different providers for the services you need (Designers, Programmers, etc). If you don’t have a team you trust I would recommend contacting several different teams and peach them the same idea. This would give you a hint of how this different companies see things and can give you a different perspective on the development you have in mind. They might even make you look at angles you didn’t think of.
Once you’ve reached them, they should make a proposition to you, which should look more or less like this:
|Feature||Story points effort||~Hours (estimation)|
|Home View||5||20 Hours|
|List Customer View||2||6 Hours|
|Customer Detail View||5||22 Hours|
So basically you would get a description of each feature (hopefully much more detailed that this one) where each feature has an estimate in story points and translated to an estimated number of hours. It would be long to discuss here how story points work, and there isn’t really an “official” measurement of how much work a single story point actually represents. But it’s the developer’s work to translate that into actual hours. Once you get the number of hours, you have to concentrate in getting the right price for an hour.
But I must warn your first: This total number of hours is not the actual time it will take build your app. This is what you will be charged. Always think that it will take at least %50 from the date you were promised and this is for the least. It can be a lot more (even %100 more).
So, to give you an idea of the rates that are right now being charged in the market is the above list. This prices are estimative, if you hire talented people it can be even higher, but at this point you already know that hiring the right people
|United States||Latin America|
|Junior developer||$95 – $101 (per hour)||$25 – $35|
|Mid-level Developer||$120 – $127||$35 – $45|
|Senior Developer||$140 – $148||$35 – $50|
|Principal Developer / Specialised contractor||$150 – $300||$50 – $100|