In any organization, you have a hierarchy. The opinions or comments of executives and managers carry authority employees will feel compelled to respond to. And this is a problem if that organization’s business is iOS development. Traditional methods of business management and current methods of iOS development don’t work very well together. A good iOS team manager does things differently.
iOS Development is unpredictable
Building a complex iOS app is inherently unpredictable. You usually start a project with not much more than:
- a broad vision for the work,
- a list of feature requirements,
- and what problem the app needs to solve for the user.
No one can accurately predict what the app will be like when it’s done.
There will be obstacles that arise that you only discover when you start publishing the app. Additionally, it’s likely the client will change their requirements. Moreover, there could be a major change to a library halfway through the project. As a result, your team will need to rethink the app going forward.
Tried and True iOS Team Management?
This is fundamentally different from older, more established kinds of work. For instance, with accounting, we’ve been managing money for the entire history of human civilization. The work is governed by well-established rules, regulations, and best practices. For this reason, there is generally an established way to achieve a desired result if the accounting is done well.
By comparison, iOS development is not even 15 years old. As a result, it has very few rules and best practices. In effect, there are multiple ways to a given result, each with pros and cons.
What Does This Have To Do With Management?
To manage this unpredictability, good iOS development teams are collaborative. Members need to be able to:
- flexibly share thoughts and ideas.
- work together to solve unexpected problems.
- not be constrained by a single way of approaching a specific problem.
This goes beyond building the app. It is not unusual for an unforeseen change in the codebase, user behavior, or the client’s business to destabilize an app. Most likely this will result in needing an update or additional maintenance.
Having a single person with an opinion (ie a manager or executive) who dictates how the app will be built becomes an obstacle to maintaining the best app possible. This is regardless of how much that manager or leader might know about software or how well-meaning they might be.
Encouraging Your Team
Managers aren’t going to go away – they almost always serve a key role in their organizations. The question is then: How can we reconcile management and iOS development? How might a manager work with a team, guiding and supporting their collaborative capacity? At the same time, how can a manager avoid tilting the team’s decisions with their influence?
What I’ve found is that the best iOS managers share a few traits. These traits:
- help them build up and support their teams,
- help them work without becoming controlling,
- and balance the unpredictability of development work with the stability most businesses and organizations need.
What follows are three traits that the most amazing iOS managers I’ve worked with have shared.
They Are Great Listeners
There’s a tactic I’ve seen some managers use: when the team is working through something together, they make sure they are always the last one to speak. They don’t want to influence the opinions of the team before they’ve had a chance to hear each other. As Peter Witham noted in my recent interview with him on my EmpowerApps.Show, it also gives the manager time to carefully listen and consider how the team thinks and feels before they weigh in.
It really can’t be underestimated how powerful it is to listen to the people you manage while resisting the urge to intervene, even if you feel strongly about the best way forward. Rather than an emphasis on control, assigning responsibility, and motivating the team – valued by traditional management – a good iOS manager sits back and listens.
Listening to your team
Along with a bit of empathy, this can do wonders. Not only for your team’s ability to organize its work and deliver it, but it also boosts the confidence of team members. As a result, this will encourage them to take on difficult challenges. Additionally, they are free to learn from those challenges, knowing they are supported by their boss.
For instance, the team may be building an application that requires an Apple Watch component. How should that application synchronize with the iPhone app? Should the app be independent? Are watch complications worth the effort implementing? A manager may decide whatever the simplest solution that will save time and money is best. However, a more experienced developer with the Apple Watch knows the benefits and risks of different approaches:
- WatchConnectivity vs. Networking?
- Independent vs. Dependent App?
- Complications or App Only?
That said, the manager still has an authoritative role. They are still responsible for deciding work priorities, as well as mediating relationships, specifically the relationship between app development and its value to the business. Part of that role includes setting boundaries on what is possible whether due to money or time. However, by taking a listening approach, rather than controlling and assigning, the team can easily address these limits as they do with any other limitation they have in building an app.
They Welcome And Invite Challenges From The Team
If a manager is committed to empathizing with their iOS development team, they must be open to having their mind changed. To that end, they must be able to entertain ideas or approaches that may not have initially occurred to them.
However, the best managers invite these kinds of challenges. An iOS manager is just as likely to miss things in the code, make bad calls, and screw up as anyone.
The goal is to make team members feel safe expressing themselves. Especially if they challenge the opinions, ideas, and decisions of their manager. And critically, when they feel the manager’s opinions aren’t serving the best interests of the team or the project.
Understanding Your Options
For instance, choosing a backend can be especially challenging. I have even written a whole blog post on the different choices. In many cases, Firebase is the default choice. However, there are caveats that an opposing developer should present. While it could change the resulting backend, at the very least it makes the team aware of other challenges ahead.
There is more for a manager that is both capable of putting aside their ego (a challenging task in almost any work environment) and feels strongly about what should be done. Namely, they need to share their thoughts while actively asking the team to shoot them down.
The benefit of this is not only making the team feel comfortable with asserting itself but also it ensures someone will walk away from the interaction having learned something.
They actively support multiple solutions to problems
Naturally following from being open to challenges and the questioning of ideas, supportive iOS managers help their team develop the capacity for multiple solutions. Most importantly, those solutions should be for persistent issues or obstacles they encounter during development.
One of the features of iOS development is how quickly everything changes. That is to say, what your iOS development team knows now could be less important in five years.
Building For Now… and For The Future
As an example, we have seen over the last five years the replacement of Objective-C with Swift as the preeminent language for native iOS development. For macOS developers, we are seeing a distinct shift toward Catalyst and away from AppKit. And most importantly, we see SwiftUI along with its patterns overtaking the paradigm Apple previously encouraged with UIKit within the Apple ecosystem.
A good iOS manager needs to support team efforts to compensate for these rapid changes. Not only in building the app today but also to help them stay ahead of the curve.
What can you concretely do as a manager? Although it may come at the somewhat difficult sacrifice of short-term efficiency, you need to give your team the time and space to try new things and experiment.
This can be as simple as leaving time in the workweek. Give team members time to learn new tools, libraries, or APIs when they come out. Additionally, you could also encourage them to create side projects and showcase them to demonstrate the potential of new approaches. Over time, it helps the team adapt faster as new things come out and the nature of apps changes.
I want to help people build better iOS apps
I hope the above is helpful for you if you’re managing an iOS team and want to help them become more effective and valuable to your business. You don’t need to change your entire management style overnight. However, I think if you can work on any of these traits, the results will speak for themselves. You will end up with a happier, more effective team that makes better apps that delight customers.
While you’re here, I’d like to invite you to sign up for my newsletter, where I share advice and tips like what you’ve just read to help businesses and agencies improve the quality of their iOS development. Just click here and leave me your name and email. Thanks!