“A goal without a plan is just a wish.” – Said Jeff Rich once.
While starting work on an app we wish to make great, fun-filled & superbly usable apps. But while starting work on an app do we plan to make great, fun-filled & superbly usable apps? If we do, we can try and improve and share our knowledge but if we don’t already we really need to start the planning and to plan we need to consider a few things.
But before even starting to consider these things there is an important step to do, which we miss out on most of the times. The step 0
0) Knowing the app and the thought behind it
- Firstly the team members, once they are assigned to a project, should be eager to know about the project as much as possible, before even starting to think about development.
- Secondly, the management should make sure that an introductory and constructive talk is initiated between the client and the tech team.
1) Deciding the platform for the application:
- Which Devices? – First, you need to decide on the devices you’d like to run your app on. This decision really depends on the device market in the geography where the app would be marketed. Majority of the mobile enterprise clients focus on one or two of the most popular devices to launch their first mobile applications.
- Which OS versions? – Most mobile enterprise clients typically support the most current OS version along with the previous release. If you want to support even older OS versions than the previous release, you really need to evaluate if the additional cost of development and, especially, testing is worth the extra coverage.
2) Deciding on the Application technologies:
- App v/s website. Many businesses are fine with simply having a website, while others want to take full advantages of device capabilities to offer a more personalized experience to the user by developing apps. If your client goes for an application, he/she should be well suggested to make an app that is task-oriented and not to try to put all the web features in a single app.
- Native v/s hybrid apps. This is the hottest debate for most mobile application development projects right now. The answer depends on the client’s business needs, thus a systematic approach should be taken to arrive at a conclusion.
3) Tools and frameworks to be used for mobile app development:
- Deciding and knowing, what all technologies, libraries, tools, knowledge, resources would be needed, makes a developer feel empowered and informed while pursuing mobile app development.
- This decision can only be taken once the developer is fully aware of the exact functionalities needed.
- At least, the main features should be well highlighted and discussed at length to have the required resources ready for development.
- A few questions need to be asked for this step, like: Would we require to maintain a database within or outside of the app? What is on higher priority, the look and feel of the app or the smoothness and functionality? What are the security norms to be followed within the app? Etc. etc.
4) The modules and the timelines:
- The entire project needs to be discussed and broken down into clear subtasks and modules.
- The timeline for development, testing, bug fixing and delivering should be decided for each module.
- What would be the order of the modules and which team will handle which module, this needs to be taken into consideration while deciding the timelines for the deliverables.
- Even considering and working on the possible test cases, in this phase itself can ease out the delivery process at the end to a great extent.
5) The last but definitely not the least step, before starting the development, would be to chart out the architectural design of the whole application:
- Identify the objectives of your architecture
- Architecture objectives are the goals and constraints that shape your architecture and design process, scope the exercise, and help you determine when you are finished.
- Identify the Key scenarios of your application
- The goal is to achieve a balance between the user, business, and system goals
- Create an application overview
- Basically an overview of what your application will look like when it is complete. This overview serves to make your architecture more tangible, connecting it to real-world constraints and decisions.
- Whiteboard your architecture and identify the Key Issues
- Identify the issues in your application architecture to understand the areas where mistakes are most likely to be made.
- Candidate Solution
- After you define the key issues, you can create your initial baseline architecture and then start to fill in the details to produce a basic architecture.
(Image and Architecture Design Description Reference:4)