The last year or so, I’ve been the lead developer for the Android mobile team at British Airways. I was brought on board to help deliver the newly designed app, which we shipped on time on 21st May 2014.
British Airways is a company with a large IT department but, when I joined, very little Android expertise. I think quite a few other Android developers may find themselves in a similar situation, so, hopefully, sharing my lessons learned will benefit others.
Disclaimer: this blog post is my opinion only and doesn’t necessarily reflect the opinion of my employer or colleagues. Blah blah, you know the legal blurb.
Lesson 1: It’s important to evangelise about Android up and down the business ladder
Don’t assume that just because a business is investing resources into Android, its business managers love Android, or even know the market share that Android has. So it’s important that you keep yourself up to date regarding the latest statistics for Android, from marketshare of the OS in various countries, to distribution of each version, as well as most sold devices for the main countries the company operates in.
Most business people still have a bias towards iPhone, it’s your job as an Android developer to educate them, it’s your job to be their source of information. Don’t be shy to remind them about how big a platform it is, you don’t need to get into a platform war to do this, just keep to the facts and everyone will be a little bit more knowledgeable.
Lesson 2: Make sure there are enough devices available to all in the team (both technical and business teams)
It is even more important that you do this if you work for a company that issues blackberries or iPhones to its business staff, because those people will, most likely, never have used an Android phone. If anyone is at all involved in making decisions about the Android app, check that they have access to a device and encourage them to use it.
Of course, as a developer, you’re probably not in a position to order devices but you can always raise this as a concern with your project manager.
Lesson 3: Understand UX, and your limits
As a developer, you will have to communicate a lot with the UX/UI team. If they do not have much experience with Android, they may ask you for your opinion sometimes but nonetheless, they are the expert at UX, not you.
It is actually an invaluable opportunity to learn more about the UX process, as they will seek out your feedback for Android specific pattern, so you are likely to feel quite involved in the process. Use this to understand UX better, as well as your own limits. Don’t try to do their job, but recognise the patterns they use so you can ask the right questions when you are facing corner cases.
Lesson 4: Understand testing, and your limits
Most established companies have testing suites in place for their website and/or server code. Most of them also have dedicated testers, who are well versed in the business rules and systems. They are unlikely to have any tool for Android testing, or any tester with Android testing experience. Therefore, it’s your job to understand the testing challenges of the app and how you can work with the existing testing systems and people inside the company.
Of course, on top of that, you will have the additional technical challenge of merging this with Android test tools itself. Lastly, it’s difficult to change a testing culture inside a company, but push for more automated testing wherever possible.
Lesson 5: Do the Joel Test when you arrive and aim to score higher when you leave
If you’re lucky enough to work somewhere that scores 12 on The Joel Test: 12 Steps to better code, then you can skip this part, but for the rest of us, it’s important to find out where the company is at when you arrive. You probably won’t be able to improve on everything within a few months, but you can make a difference, particularly if you discuss this with your colleagues and project manager. Most companies with sub-par software practices actually want to improve, so it’s a great opportunity for you to have an impact.
The mobile team in large companies is often seen as the “innovative” team, so show the way, don’t just innovate in the app features but also in how software is coded inside the company. You’re likely to have a little bit of rope you can tug if the company has no established Android team, or only a small team, so grab this opportunity to make a difference.