Quality As First-Class Citizen In Mobile App Development
For everyone who’s developing apps, it’s essential to automatically test the application on a bunch of different devices. It’s crucial not only to deliver features fast, but also to always keep in mind that the lack of quality can stab you in the back later.
A fast feedback loop is essential in Agile app development. Here are some tips and tools you can use to significantly improve the performance of your development team.
Communication Is The Key
You probably don’t know what terms ‘master’ or ‘exception’ mean in the context of programming. But if you encounter them as part of a collaboration with the team, ask them. They will be happy to explain you how all the things work internally.
The more you ask, the more you will learn about the business value of the product. The team can then help you decide on what brings the biggest ROI. And you can finally start giving feedback on features without disrupting developers, after you’ve read this magical sentence in the subject line:
“Merge branch ‘feature/login_with_facebook’ into develop”
Tolerate No Bugs
Even with a team of rockstar developers, your app will crash on users. There are many device specific issues, especially on Android, that no one can predict.
There is not much to discuss here. Simply set up an account on Crashlytics or similar service and let yourself and developers know when something goes wrong at zero cost. And make sure the zero bug tolerance practice is encoded in the team’s DNA.
Automated Testing Pays Off Quickly
The hard part about writing tests is what tests to actually write. When you are developing in an Agile environment, you most likely have acceptance criteria attached to each and every story. What’s nice about acceptance criteria is that these simple sentences help you recall all the requirements once a feature is done, and validate them quickly. The awesome thing is when you have proper acceptance criteria — it’s easy for developers to write automated tests.
Many mobile developers have never written tests, so give them some time at the beginning. Tests will start to pay off for themselves instantly. Writing them later for an existing codebase is much harder and less valuable, because devs will tend to skip the hard parts.
Continuous Transparency Of Development
Months after a feature is finished, integration servers like Travis CI or CircleCI can verify that nothing is broken. Automated testing is one of the things CI does, but it can offer a lot more.
When each bit of developer’s work is pushed to the repository, a build is created and sent to an app testing platform like TestFairy or HockeyApp. Without any additional work, you can receive notifications on builds dozens of times a day and pick one or two to check the progress. This will give developers more time to improve automation even more.
100% work transparency might be a bit scary at first, so let the team know it’s not used for reporting or control. Also remember not to interrupt when developers work, and instead comment on tickets in the team’s tracking tool (like Taiga, Jira or Pivotal Tracker). All things can be discussed during the next daily stand-up.
How do you improve the quality in your app development process? What are your favorite tools? Let me know in the comments below.