In the last decade, major players in the mobile market, such as Apple, Samsung, and Google, developed multiple platforms and devices that revolutionized the industry. As a result, mobile app development is more like changing a tire than building a car. However, for many developers, keeping up with changing demands and tight timelines often means operating under bad assumptions and results in utter failure.
Bad assumptions can ruin everything. Although it might feel safer to rely on previous experience and gut checks, engaging in due diligence beforehand will save you time and money in the long run. While there are good assumptions that can shorten your timeline, the problem is figuring out which to follow. To that end, this article outlines a few common dangerous assumptions that management and developers alike tend to make. Avoiding these will put you ahead of the competition and ensure your projects are more successful.
Your app must be built with a specific technology/toolset.
Be flexible. Evaluate your technology stack on a per-project basis instead of having a set platform for all projects. Developers should strive for adaptability, letting the needs of the project determine the tools they will use.
You should begin by evaluating your project and finding out where your team’s expertise is. Let the entire team’s input guide the process, because a good team should have an idea of its strengths and weaknesses.
In addition to clarifying the team’s technological approach, a similar exercise should happen entirely at the project level. It is much easier to figure out what a project looks like if you have unlimited talent, time, and resources, but take those factors away and you will find out just how much you need to deliver and when it has to be delivered. Is this a quick one-off, or a logic-heavy enterprise app that needs to be functional and maintained for years to come?
Once these specifics are brought to light, it is essential to strike a balance between them. Only when you know what you need to build and when it needs to be built can you then sit down with your tech team and determine the best path forward. Remember, depending on your needs or the needs of the client, best may or may not be equivalent to shortest. After this, you can plot out some rough timelines for each approach, referencing high level functionality and architecture with a focus on potential time sinks, and make an informed decision.
This comparison should give you a clearer picture of how to form an approach that will adhere to a timeline and budget. Remember that an important takeaway from this exercise is “can we do this?” Don’t be afraid to answer “no, this is impossible.” Sometimes it is.
You know the overall resource cost needed to build your app.
You probably do not. There is a general perception that an app doesn’t take long to build (somewhere around 2-4 months). While this may hold true in some cases, this is possibly the most dangerous assumption for both your bottom line and your stress level.
The fact of the matter is that the available tools and knowledge for building apps has come a long way since the days of the first iPhones. While app development has become more streamlined, careful planning and roadmapping will save you a lot of resources.
Research how to build your app before figuring what to build. This effort should include the kind of features, frameworks, interfaces, and back-end/service integrations that will be needed. Ask yourself as many questions as you can think of and elicit from peers. Even seemingly redundant inquiries can produce insights you would otherwise reach.
Should it be a cross-platform app (iOS/Android/Windows)? Should each platform look different? What about other devices or even offline access? How much security does it require? What about a marketing plan? Is this app even something people really want? Questions like these will help you hone in on what is really important to ensure project success.
Once you have finalized the functional requirements, architecture, and integration points, you can start to clarify the level of effort and resources needed to build your app. Formalizing these functional requirements will help speed up the actual implementation process. While it may turn out you will need to make changes along the way, determining these artifacts will reduce risk and potential pitfalls overall.
Everything will go according to plan.
As the poet Robert Burns implied, rarely do we ever succeed in following even our best-laid plans. Unforeseen setbacks are a natural part of projects and can be expected. Whether it be last minute requirements changes, faulty code, or a big chunk of functionality that was missed while defining the project, you can assure yourself that something is going to go wrong.
Unfortunately, these setbacks have the potential to completely derail your project. While you can try to exhaustively plan in the beginning phases and try to account for every possible scenario, that significantly increases the level of effort of defining the level of effort, which simply does not scale well. Even then, you are still likely to miss something.
The best thing to do is be ready with contingency plans and remain flexible. Leave little windows of time at regular intervals throughout your project to check that everything is running smoothly and that you do not have to redefine anything. More importantly, don’t be afraid to redefine if you need to.
Does this sound familiar? It should, because regularly redefining your requirements is a core tenet of Agile software development and one of its big strengths. However, just because your project isn’t being run as an Agile project doesn’t mean you can’t reap the benefits of this popular approach.
Overall, understand that every project is different and should be treated as such. Even if you’ve done this countless times, it is important to be wary of the pitfalls of assuming you know what you want or what you’re doing going in. It’s important to use your previous experience to support your implementation, not as a crutch. Your best bet is to enter every project with a clean slate and balance your assumptions with due diligence in order to mitigate potential risks in a way that won’t derail your team’s progress. Contact us today for any query.
The Migration of legacy systems may seem straightforward in concept, take information in an older system and put it in a newer one. The process of doing this however, is...
We are pleased to announce DOOR3 has received The Web Excellence Award in App and Mobile / Sustainability for our work with Retrievr UX mobile development. The Web Excellence Awards’...
The list of legacy system migration challenges for enterprises is extensive, as migrations can be a complex and challenging process, with many potential roadblocks and pitfalls along the way. For...