Yesterday Kent Nguyen posted a blog: “Dear business people, an iOS app actually takes a lot of work!” which got a lot of votes and comments on hackernews.
And it really amazed me. For two reasons: First, the points he is discussing are nothing new to App development. They are true for any software project. So why is he upvoted so heavily? Secondly because I disagree with some of his comments. Do I miss the big picture or do we just have a different experiences.
Apps are just software
I’ve been working for almost 10 years in software development doing consulting work. The discussion has always been that in software “there is more than meets the eye”. Most of the work is done in the backend. This is not only true for apps, but for all software projects. And as software engineers it is our duty to inform the customer. And advice them in the steps to be taken. In the remark: “prepare to pay more than just for the iPhone app” iPhone app can easily be replaced by website.
He mark some of his text in bold: “You need to have a server“, “There is no standard way, there is no plug-and-play way to do it“, “These APIs must be in existence before you can proceed to make the iPhone app”. And I dont’t agree. On some projects I worked on I just used my own server or a service like parse.com. For other project we created a REST web api, hosted on our own servers to connect to in the app. The REST web api will connect to the customers webservices when they are ready. Till then we are able to present mock data and test the interaction of the app. So we have created the IOS app, we are testing it’s flow and getting feedback and are able to change the behavior of the app while the API is not set in stone. How lean is that?
About iPone development
My flow of app development (iPhone of Android) is fairly different than the flow Kent posted. Normally I would start by creating an interface design in balsamiq . And begin the initial development of the interface directly after that. In the first version I focus on the interface elements and their interaction. I use fake pictures and create the flow of the application. This will take me somewhere between 2-5 days. I will show the app to the customer and will gather feedback. In my experience the customer understands the app the best when they can interact with it on their phone. Luckily we have tools like testflightapp to send updated versions to customers.
In this phase we discuss new wishes and I give them quotes. Based on my experience most of the wishes they have at this stage can be implemented in a couple of hours. Even a Facebook like button.
After we agree on what will be in the app, I provide the app to a visual designer to finish the design. And when he finishes I implement the design in the app. Screen by screen.
So I disagree with Kent. Nothing he states is new for app development. Teaching a customer how we create software has always been part of the job. And I don’t have the same experiences with the limitations in the workflow. I can build apps “lean” and “agile”. But perhaps I’m missing something here.
2 Comments on this post
Leave a CommentI think the main thrust of Kent’s article is something like this: Everyone wants a mobile app, and some of the schmucks have no idea how much that it costs to create software.
People have been sold this idea that, “Hey, anyone can build, own, and sell one of these things!” Mobile apps are the “cure-all, end-all, be-all.” A mobile app is the road to success!
So they think it’s within their reach. You encounter this more in the freelance world than in corporate environments.
A couple schmucks will approach you with a “simple” idea and ask how much it will cost. Their so-called simple app will require a couple months time and far more money than they ever expected.
Comment left on 2.1.2012 by Dozier Hudson
I’m going to have to say, I lay somewhere in the middle between your two posts. I’ve been developing software and web apps for a good portion of my life, and I can see both sides of it. There are times when I feel like Mr. Nguyen, and some times where I feel like you. I think it’s a matter of current state-of-mind, the state-of-mind of the client, and the proposed project. All in all I actually agree with both of your posts without necessarily feeling like I’m in contradiction. Good post though, it gives the topic balance.
Comment left on 2.2.2012 by Thomas Wright