Part 1 of 4: The comprehensive guide to successful app development

Developing an app is a multi-layered process that goes far beyond mere programming. This 4-part guide covers all the steps from the initial idea through to launch and maintenance, including detailed information on the requirements and functional specifications that are essential for the success of a project.

1. Initial considerations as the basis for a successful app

1.1. Idea and validation

Every successful app starts with an idea. However, before you invest in development, you should check the idea thoroughly:

  • Market analysis: Investigate which solutions are already available on the market and how your idea can outperform them. Consider both direct competitors and alternative solutions that could possibly compete indirectly with your app. This analysis will give you insights into market needs and gaps that your app may be able to fill.
  • Get feedback: Talk to friends and potential users to validate and refine the idea. Test the concept early on through surveys, focus groups or even simple prototypes. This will allow you to respond to concerns or suggestions for improvement at an early stage.
  • Profitability analysis: Make an initial rough cost analysis that takes into account not only the development, but also the follow-up costs for server rental, web services and the monthly costs, depending on the app and the number of users. Also think about the monetization strategy: How and when should the app generate profit? Are in-app purchases, subscriptions or advertising planned?

1.2. Financial considerations

The cost of an app is not just limited to development. Here are some important points:

  • Monthly costs: These can vary depending on the app and number of users, but many web services are largely free to use. However, you should consider potential scaling costs as the user base grows. Also investigate whether it makes sense to switch to paid premium services to offer better performance or additional features.
  • Apple developer account: Apple currently charges 99 USD per year for a developer account. This is just one of the fixed costs you need to consider. Also consider the annual costs for renewing certificates and licenses that are necessary to keep the app in the stores.
  • Long-term costs: Also plan for follow-up costs such as server rental and web services, which may be incurred on a monthly basis. This also includes the costs for regular security updates, bug fixes and possible extensions to the app functions based on user feedback.

2. Planning: From concept to detailed plan

2.1. Requirement specification

The requirements specification is a central document in project planning. It describes the objective of the project from the client's perspective and defines the framework conditions:

  • Vision of the product: The product owner, who is responsible for the vision of the product, creates the specifications. This consists of the so-called business cases, i.e. the individual requirements. The vision should be formulated in a clear and inspiring way in order to motivate the development team and align it with the goals of the project.
  • Content: It should first contain an abstract description of the project result to quickly convey to new readers what it is all about. This is followed by detailed requirements. These requirements should be prioritized to give the team a clear direction for development. Also remember to define use cases and user personas to align the development with the needs of the target group.
  • Best Practices: A good specification sheet contains clear information on the following points:
    • Who is the product owner?
    • Who owns the product with all rights and obligations?
    • Which project management tool is used?
    • Which project language is used?
    • Target platforms: Is the app to be developed for iOS, Android or both platforms? Also consider whether the app should be optimized for smartphones, tablets or both. Also consider whether the app should be available on wearables or other smart devices.
    • Multilingualism: Will the app be monolingual or multilingual? If multilingual, consider which languages should be supported from the outset and how the translations will be integrated into the development process.
    • Documentation: The developer should document the code comprehensively so that future developers can familiarize themselves with it more easily. Make sure that the documentation is also understandable for non-technicians, especially for management who may need to monitor the development.
    • MockUp: A MockUp or ClickDummy is useful to give the client a feel for the development at an early stage. These visual aids can also be used to obtain early feedback from test users.

2.2. Functional specification

The functional specification is created by the developer on the basis of the requirements specification and specifies the technical requirements:

  • Understanding the requirements specification: The requirements specification describes what the developer has understood from the requirements specification and should also contain technical details beyond the pure requirements such as architecture diagrams and flowcharts. These detailed diagrams help to visualize the program flow and ensure that all parts of the app work together seamlessly.
  • Services and monthly costs: The specifications should contain a list of the services used, including the expected monthly costs and an explanation of the tasks of these services in the specific use case, e.g:
    • Resend.com: e-mail service for password resets and confirmations.
    • Firebase.com: Notifications that cannot be sent via the operating system.
    • Supabase.com: User login and authentication.
    • Vercel.com: Provider for the admin panel for managing content and content.
    • ReactNative and Expo for React Native: Development environment for iOS and Android.
    • Figma.com: Tool for the development of UI/UX.
    • Cloudflare.com: Web infrastructure service for security and speed.
      Stripe.com: payment service.
    • GitLab or GitHub: Source code management, making sure that access is well managed. Ensure that backup strategies and recovery plans are clearly defined in the specifications.
  • Quality assurance: The requirements specification should also contain clear requirements for quality assurance and the test process. This includes not only automated tests, but also manual tests and user acceptance tests (UAT) to ensure that the end product meets user expectations.
  • Approval of the requirements specification: The requirements specification must be checked and formally approved by the client or product owner. This is the only way to ensure that the end result is what the client had in mind. Due to the time pressure, it is often abbreviated at this point. However, experience shows that misunderstandings mean that time is needed twice or three times as much afterwards. Therefore, the clear recommendation here is not to shorten this step, but to take the time it needs.

This was the first of four parts of our guide to app development. Of course, we welcome feedback, because we also like to learn. In part 2, we will look at the user experience and the business model.

About the Author

Joerg Strothmann As a CTO with over 30 years of professional experience in hardware and software development at distributed locations (Europe and India), I have gained a lot of experience, which I like to share.

Joerg Strothmann