Maximizing Impact with Minimal Resources
Ishtiak Ahmed
Lead iOS Engineer, Sharing Practical ? dev Tips & Insights - Opinions are my own
Managing Design and Testing with Minimal Funds in a Small App Development Team.
Large-scale organizations often have dedicated teams for designing and testing, ensuring a smooth and polished product before release. However, for smaller teams or app development companies, the reality can be quite different. With very limited budgets for both designing and testing, small-scale companies often find themselves in a challenging position. The app developers in those small-scale companies/teams often find themselves managing a lot of other responsibilities but end up with poor app growth.
Unlike larger organizations, where there are dedicated resources for each aspect of app development, smaller teams may rely on the product owner or senior developer to handle testing before the app goes live.
Additionally, they may only have one or few web-specific/in-general designers who do not work based on general app design guidelines, such as Apple's Human Interface Guidelines or Android-specific designs. Another common scenario is when a web designer is tasked with creating an app design, that may not fully align with the specific tools and aesthetics required for a mobile app.
However, When it comes to indie developers, resources are often scarce, leaving them with little option but to embrace the principle of "Maximizing Impact with Minimal Resources" throughout their careers. Unlike larger companies, indie developers can't afford lavish investments in design and testing phases. Their primary strength lies in development, but with practice, they can gradually acquire essential design skills and testing procedures. This evolution allows indie developers to move away from initial challenges of poor design and lack of testing towards more refined and efficient practices over time.
In this post, I'll share some insights I've gathered from colleagues and friends on how to tackle the challenges of limited resources, particularly in app testing and UI design. Please note that I'll be focusing on these aspects and skipping over the development phase, assuming there are enough developers to kickstart the project.
The viewpoints expressed here are solely based on my personal experiences and those of my friends who have addressed similar challenges within their respective companies. They do not necessarily reflect the views or policies of any employer. Your input and suggestions are welcome, so please feel free to contribute any additional ideas or insights you may have.
Learning design is easy, but mastering it is hard.
Every app developer begins as an enthusiastic app user, and their approach to app development is heavily influenced by how they use and interact with apps themselves. Developers often explore a multitude of apps, drawing inspiration from various ideas to enhance their own creations. A skilled app developer can discern between good, simple designs and those that are overly complex. It's essential to remember that simplicity is key, and adhering to simple design principles typically results in a visually appealing outcome.
Learning the basics of designing a simple app is relatively straightforward nowadays, but mastering it requires dedication and practice. When faced with limited resources or budget constraints, opting for a straightforward design approach is advisable. As revenue starts flowing in, it's wise to reinvest it into improving the user experience and UI/UX aspects of the app.
Lately, I've been inspired by my LinkedIn friend, Shubham, who has worked on numerous UI projects. I reached out to him for tips to assist developers who are new to design or have minimal experience in it.
So, Shubham graciously provided some invaluable advice to kickstart the learning process. While diving into design may initially pose challenges, with time, one can grasp various concepts and trends, seamlessly integrating them into new projects or suggesting innovative ideas within their current workplace.
Shubham said:
So, my tips for Indie app developers to improve their app design are:
领英推荐
There is another great tip from my former colleague Cristina:
Use only native components.
In my opinion, a proficient developer or a small app team should always prioritize the utilization of native components. I believe the primary advantage of native components lies in their ease of implementation and maintenance. They undergo thorough testing and are well-implemented, resulting in fewer bugs and errors. A few minor issues typically arise within these native components which are easy to solve.
Avoid complex UIs when possible.
For a small team operating on a limited budget, I suggest steering clear of overly complex features and instead focusing on simplifying the UI. This may involve trimming down certain features or aspects of the app. The key concept here is to start with a simple app that generates revenue. As revenue grows, complexity can be introduced gradually to cater to advanced users.
Follow the guidelines, not the trend.
I've noticed that following current trends is a common practice in the app market, with many apps simply copying trends regardless of their suitability for the app's purpose or user interaction. However, blindly adhering to trends can negatively impact overall development and design. As a small team, I believe it's prudent to avoid trends and adhere to established guidelines. For instance, opting for basic native tab bars and navigation systems is often sufficient, eliminating the need for users to learn new ways of interacting with the app. Users instinctively understand the familiar patterns found in native components, simplifying their app experience.
There are no manual testers, so write a lot of unit tests.
In one part of my career, when our small app team lacked a dedicated manual tester, I found it beneficial for app developers to focus on writing extensive unit tests. These tests should cover various aspects such as business logic, error-handling functions, server calls, and UI differences. By writing these unit tests, developers can ensure that critical parts of the app are handled effectively, thereby reducing the need for extensive manual testing.
Emphasizing the creation of robust unit tests not only leads to a higher quality app but also facilitates a solid release phase. This approach allows us to rely more on our own abilities than solely on the expertise of testers. However, it's important to note that even with thorough unit testing, some bugs or UI glitches may still occur. Nevertheless, having confidence in the app's integrity is invaluable.
Consider writing UI tests when possible.
While unit testing doesn't entirely replace manual testing, it certainly eases the testing phase. With a substantial number of unit tests in place, the need for a large testing team diminishes. One or two testers may suffice to thoroughly test the project, compared to the potentially larger team required without unit testing or UI testing.
I recommend considering UI tests, particularly when dealing with complex UI logic. These tests help in understanding various scenarios without relying heavily on testers. By writing code, developers can confidently ensure that the UI functions as expected, even under extreme conditions.
Ask on Twitter or LinkedIn / Ask the users to provide feedback.
In instances where a dedicated tester isn't available, leveraging platforms like Twitter or LinkedIn communities to gather feedback can be beneficial. Offering incentives such as free plans or gifts from the app can incentivize users to provide valuable feedback. Directly soliciting feedback from users, with or without incentives, can also yield valuable insights for app development.
Follow me on LN Ishtiak Ahmed & Twitter/X @ishtiz_
Thanks to Shubham Singh & Cristina Müller
iOS Developer ? ? SIH'23 Winner ? Ex Intern @Coforge ? Ex Intern @AAI ? MSIT’25
9 个月Great work ????Ishtiak Ahmed Shubham Singh
iOS Developer (SDE-3) at DailyRounds / Marrow
9 个月Glad to be of help, nicely written article Ishtiak Ahmed ????
AI Engineer/Researcher || Cohere for AI ||Passionate about Tech Policy, National & International Security, and the Democratization of AI Systems ?? || Advocating for the Preservation of African Values and Culture in AI.
9 个月Nice one Ishtiak Ahmed