Today I’m going to be talking about the key factors to building a successful mobile application. This is something that a lot of developers need to know how to do, like how do you get started, how do you plan out, do you go all the way in depth and plan it all out from the beginning or do you fly by the seat of your pants, do you—be super agile, what do you do?
The Early Days
I think there are a lot of app developers that don’t know how to get started like how you start building an app. I remember back in the day having Rational Rose and having these UML diagrams and planning out these apps and all to the class and variable level. The whole idea was that you could plan this whole thing out in UML and then you could click a button and generate all the code and then you’d have your application. That really didn’t work out so well. It was a cool idea but it didn’t work out. The reason why is because one of the most difficult things in software development is that you don’t really know what you need until you start building it. That’s why a lot of the software development best practices have moved from that kind of waterfall methodology where you kind of do big upfront planning and design into Agile where you’re sort of, I don’t want to say flying by the seat of your pants, but you’re iterating, you’re building something, you’re getting feedback, getting input and then you’re iterating, you’re changing it and it’s growing with you.
Have an Idea and Plan out What you are Building
Now there are problems with both approaches and I am not an extremist on either side. See, here’s the thing. If you’re building a simple mobile application you should probably have an idea of what you’re going to build. You don’t just start writing code without having an idea and you need to plan out what you’re building before you build it. I have this saying I say, every time you sit down at your desk to do work you turn on your computer, know exactly what you plan to do. You should do that every time you write code. You should know what kind of code am I writing? What am I creating? Am I creating a user interface and what should it look like? So you’ve got to have that level, but for a small project you could probably get away with not planning things out so much, being a lot more agile with build this version of the app, send it to the users, get some feedback and then iterate on that. Many app developers plan much out ahead of time, don’t even know what database you’re going to use, you don’t even know if you’re going to need a database. There are a lot of books on test driven development that go through this process and then you can see that. More details here: https://tech.co/successful-mobile-app-launch-2017-05
Plan an Architecture
The other thing is if it’s just a complex system sometimes an architecture needs to be planned upfront as well. Sometimes when you have agile teams you end up not designing, not having any kind of architecture. You have got the two extremes that is the thing here. On one end you have got the people that are super agile and they don’t want to write any requirements or plan anything upfront. It’s much towards the agile side as you can go that’s what you want to do because that’s going to give you the most flexibility. That’s going to give you the better product in the end based on user feedback but you can’t always do that.
Lacking a solid idea and not having enough metrics on your potential clients are some of the factors key to building a successful mobile application.