Our experience over the years helped us curate a list of points an app development project should “hit” to increase its chance of success. And in the spirit of sharing, we are happy to walk through our list of “hits” to help you work smarter, not harder!
So, what do you need to do to ensure successful app development?
We get two types of projects here in Telesoftas, new ones and those with at least some work done. When we start to work on new projects, we need specifications. It doesn’t need to be full specification, but there should be enough information to start working on the project. The full specification would consist of complete feature descriptions, use, edge, error cases and more based on the project’s needs.
When it comes to existing projects, they often don’t have specifications, so the developers on the project need to do deep research on the current app to get all the specifications. Only then can they continue work on the project. This research adds overhead and also introduces the possibility of human error.
Your designs should be consistent and provided using a proper tool, like Figma or Adobe XD. It is also crucial to ensure that they are based on Material guidelines for Android/Flutter and the Apple design guidelines for iOS. The designs must also address all the edge and error cases. So, you should include multiple screenshots of the same screen but with different cases.
For example, if it’s a login screen – there should be a screenshot of the empty state of the screen, an error case (missing email or password too short, etc.) and a success case. If the product supports it, there could also be screenshots of different phone screen sizes and tablets.
We also recommend making explicit comments on the designs of trickier places. That is because when any of these details are missing, the developers are bound to have some questions, and they will spend extra time attempting to answer them, or they will improvise, which leads to inconsistency, errors, and bugs.
For a project to be successful, it should have well-described tickets. Tickets should be thorough and include everything, and we mean everything! It should have a title, full description, acceptance criteria, and screenshots and mention whether it’s a bug or designs/mockups. The developer might have questions if something is missing, which will burn extra time in the development process.
It’s also harder to accurately estimate how much it will take to implement incomplete tickets, so managers will not be happy either.
Besides blueprints, a team needs an excellent process to help them manage their work. Our team at TeleSoftas loves scrum because the process brings ceremonies like sprints (2-week organized work period), standups, retros (feedback collecting after a sprint), and grooming (preparing for the next sprint). With all the ceremonies and frequent releases, we can ensure quicker app development and faster bug finding.
A quick tip regarding scrum is that while mutations of Scrum standards (longer sprint, skipping some ceremonies) are possible, you should be careful as they might lead to slower app development.
5. Native or Not
The next stage in your app development (if the app is from scratch) is to decide on which platform/framework the app will be written:
- Android + iOS (Native);
- Other hybrid solutions (React Native, Xamarin, Ionic).
In TeleSoftas, we usually choose native or Flutter based on app complexity and our client’s needs. If the app is quite simple or will be used once for an event, we suggest developing it in Flutter. It will be faster and cheaper. If the app is big or requires complicated features, like communication with Bluetooth gadgets, it would be better to write it with native technologies.
Currently, we are experimenting with KMM (Kotlin Multi-Platform), which, in theory, brings good from both sides (Native/Flutter). You will have a shared business logic base and UI written in native language.
6. Solid architecture
Another question we must answer clearly before developing is – what architecture should we use? Earlier projects used MVP, but now, for Android development, Google is providing tools and pushing to utilize MVVM. So, all new projects should use MVVM! As for iOS development, we usually use MVVM or MVC since Apple is neither enforcing nor giving any tools to help, providing us with the freedom to choose.
Our pro tip here is to use the same architecture since it will help you maintain consistency between projects.
You’ve reached the development stage, and tickets are moving. But you need an extra layer for protection against bugs. In Telesoftas, we follow these rules:
- Do code reviews – every merge request in Telesoftas is reviewed by at least one developer. That helps to maintain a clean code base to avoid bugs;
- Write UI tests – if your app designs don’t frequently change, writing UI tests saves a lot of time and simplifies quality checks later because UI tests will be run by CI/CD system;
- Writing Unit tests is a must! Without them, you are bound to miss something;
- Do manual testing – we test every ticket manually and do full regression before release. It takes time, but it’s worth it. Track with Crashlytics (or other tools) – if something slips into the release build, bug tracking systems can help you find the problem faster;
- Run static analysis – static analysis is a set of tools which check code quality without compiling it. Usually, they check for duplicate code, too-long classes, methods, unused variables and other minor project issues.
We find that the more we follow these rules, the fewer problems we face during the project.
While working on projects, developers do a lot of repetitive tasks, which can get tedious and increase the chance of human error in the long run. That’s why Automation is an excellent idea. Based on our experience, we would like to argue that any project should have a CI/CD system setup regardless of size.
CI/CD systems run static code analysis, tests, and build apps. With their help, you can have a smoother development process. And the project will avoid situations such as lost signing keys or a delay due to personal issues like when the responsible developer is taking sick leave. On top of that, Automation means that the developers are free to make progress on other tickets.
After releasing the first app build, we gather feedback to gain knowledge about our app’s health. We usually use Firebase Crashlytics to track bugs in our app so we can quickly detect and fix an issue if something goes wrong. We also use Firebase Analytics to track user behaviour to adjust our app UX to suit its users better.
For example, if the tracked data shows that users take a long time to pass through the login screen, it might be too complicated or hard to understand. Alternatively, we could find that one of our app features is rarely used, raising the question of whether it is needed or not. Therefore we highly encourage you to add analytics tools to your app as they help you solve future problems.
10. Fun for developers
The last thing on our list is not any less important because it focuses on motivation. At TeleSoftas, we acknowledge that people work best when motivated and passionate about their work. This is why we make a conscious effort to make projects more enjoyable for our developers to work on. One of our more popular ideas was to provide them with “Innovation Fridays”.
On this day, we let developers do whatever they want within the scope of their current projects. They can try new libraries, refactor, create their own features, and experiment. Most of the time, code written on those Fridays gets to the production code as brand new features.
Hence, our advice here is not to downplay the happiness of your developers because, more often than not, happy developers = happy clients.
After reading this article, we hope you came across ideas that will help elevate your app development projects further. But we want to leave you with one last note. Whether you follow our checklist or not, you should remember that when you combine passion, good skills and hard work, you can take any old buggy project and help it become fresh, clean and full of new libraries.