Quantcast
Channel: clean code ‣ Swift and Memes
Viewing all articles
Browse latest Browse all 16

What Are 3 Truths About Becoming Successful IOS Tech Lead?

$
0
0

So you’ve been promoted to a Tech Lead position? Or perhaps you’re eyeing it as the next step in your career? But what does a Tech Lead actually do? What new responsibilities come with this title? Beyond the usual job-change jitters, is there anything you should know before taking the plunge? In short:

Is it worth it? - What Are 3 Truths About Being Successful IOS Tech Lead?

The answer is… yes! But, as always, there’s a catch. An iOS Tech Lead isn’t just an “stronger, better” version of a Senior Developer. The responsibilities, expectations, and daily activities differ significantly. It’s no longer about the code you write – it’s about ensuring project success. And that can be challenging, or even uncomfortable, for some developers.

As a mobile Tech Lead for over a decade, I’ve compiled three crucial facts about the role that I wish I’d known before accepting the position. I hope these insights will guide you on your path to becoming a successful Tech Lead and smooth your transition.

So, without further ado, let’s dive in.

Truth No. 1 - You don’t need to have all the answers.

As a senior developer, people rely on you to tackle complex technical challenges. Your expertise was the cornerstone of problem-solving within the team, and your colleagues often turned to you for guidance. You were expected to not only provide reliable solutions but also to estimate them accurately. This meant having a deep understanding of the project’s architecture, chosen frameworks, and conventions, as well as staying on top of the latest developments in iOS, Swift, and the Apple ecosystem in general. Your ability to foresee potential obstacles and plan accordingly was crucial in maintaining project timelines and managing stakeholder expectations.

In essence, you were viewed as a “black box” – an almost magical contraption that took in requirements, time constraints (and perhaps a generous dose of caffeine), and consistently produced high-quality app features. In other words, your role was to transform abstract ideas into tangible, functional code – on time, within scope, and meeting quality standards.

If you plan to transition into a Tech Lead position, you might be up for a big surprise – being “the smartest dev in the room” is unlikely to remain in your job description. You’ll no longer be required to have all the answers, but rather to effectively utilize the expertise of your team.

Does this mean giving up coding and switching from Xcode to Excel or Jira? Not at all! Producing code will still be a very important part of your duties. It’s just that you don’t need to do it all by yourself. Nor should you. The same applies to researching the best solutions to problems.

Here’s some advice I wish I’d known when I first took on Tech Lead responsibilities. I hope it helps you with your transition:

  • Practice delegating tasks:
    “Is this task something only I can do?”, or even better “If I’d ask Mary or Tom, how well would they accomplish the task?” If the answer is: “at least 80% as well as I would”, you should delegate the task immediately. There are literally hundreds of books on effective task delegation, so we won’t dive deep into the subject here. However, in a nutshell, there are only a couple of cardinal rules to follow. First, be precise when describing a task: set clear requirements, deliverables, and timelines. Next, agree on how the person will report progress to you. The most popular form is scheduling regular check-ins. Finally, ask the person to summarize what they’ve heard in their own words and let them know how to reach you in case they are stuck.
    Remember: delegating isn’t a sign of laziness or weakness. On the contrary – it empowers your team. There’s one caveat, though: be prepared for people to implement tasks differently than you would. And that’s perfectly okay!

  • Embracing the power of “I don’t know”:
    The iOS and Swift ecosystems are vast and ever-evolving. Even the most experienced developers can’t stay on top of every piece of tech, best practice, or tool. Acknowledging gaps in your knowledge isn’t a sign of weakness; it’s a testament to your honesty and professionalism. Moreover, openly admitting you don’t know everything builds trust within the team, fostering an environment where everyone feels comfortable asking questions. Perhaps the most challenging aspect of this mindset is accepting that there may be areas of iOS development (or software development in general) where you’ll never consider yourself an expert. For instance, I’ve come to terms with the fact that regular expressions and low-level algorithm optimization might never be my strongest suits.
    Always remember: being a Tech Lead isn’t about knowing everything; it’s about effectively leveraging the collective knowledge and skills of your team to drive the project’s success.

  • Don’t be afraid to ask for help: 
    Our time is our most precious and irreplaceable resource. We can’t purchase it, manufacture it, or recover lost moments, etc. When faced with challenges, don’t hesitate to seek assistance. This applies not only to technical issues but also to resource allocation. Develop the habit of proactively approaching your managers to request necessary resources, such as additional team members, software subscriptions, or training. When making these requests, frame your arguments in terms that resonate with management. Try speaking their language: time and money. Prepare a compelling case that illustrates how these resources will positively impact project timelines and outcomes. For instance, you might say, With this additional team member, we can complete this feature in 3 months instead of 5, potentially saving us $X in development costs.

Truth No. 2 - Perfect is the enemy of done. But there is a line in the sand too!

Ever heard of an application called Color? Don’t worry if you haven’t. Although not a mobile application, it’s a prime example of a project that failed due to endless delays in pursuit of perfection. Color was a photo-sharing app launched in 2011. Despite raising $41 million in funding, it spent an excessive amount of time perfecting its features and user interface. By the time it launched, the market had shifted, and the app failed to gain traction. Color shut down just 18 months after its launch, having never achieved significant user adoption.

This case demonstrates how excessive delays in pursuit of an ideal UI or set of features can result in a product missing its market window. If the app had been released earlier, albeit imperfect, the team would have received invaluable feedback from users, and the disaster might have been avoided.

So, is it worth releasing the app sooner, even at the cost of incurring technical debt? Absolutely! Getting fast and accurate feedback trumps producing a “perfect” app every time. In the worst-case scenario, you’ll be able to cut unnecessary app features before you’ve spent months developing them!

As they say, “If you have to fail, fail fast!”

Wait a minute, Pawel… Are you suggesting we allow untested and sloppy code through the code review just to maintain development speed? That goes against all the good practices you’ve always been preaching!

You’re absolutely right! As a Tech Lead, you can’t allow the project codebase to deteriorate. To prevent this, it’s crucial to establish and maintain Development Standard across the project. What is it? In short, a “gentleman’s agreement” among team members – a line in the sand that the team vows never to cross, no matter the circumstances.

What should be included in a Development Standard? Start by creating guidelines for coding style, architecture, and best practices (e.g., for code reviews). These guidelines should be documented as decision logs and approved by the entire team to ensure buy-in. On top of that, it’s essential to make these rules highly visible. Consider integrating them into PR guidelines or Definition of Done (DoD) attached to each task. Finally, communicate the Development Standard to all project stakeholders. You’ll need to translate it into business language: time and money. Once done, present these rules to the stakeholders. My favorite method is creating a one-page document with the team’s commitments on one side and the requirements needed to fulfill them on the other.

The analogy I often use is the Terms of Service you need to acknowledge when leaving your car at a certified workshop. All such places have their standards and procedures to guarantee proper quality and speed of performed services. Don’t believe me? Try getting your car fixed at an authorized workshop while bringing in a used part…

Is there anything more to mention? Absolutely! Although it requires some effort, it’s worth implementing automated enforcement of the development standard, preferably as a PR check. You can use a plethora of great tools to annotate your PRs with potential violations of the agreed standard and provide hints to improve the code.

Finally, remember that the Development Standard, no matter how good, should not be set in stone. It’s worth scheduling regular reviews to keep the rules up to date. You can use sprint retrospectives for this purpose. This way, your team can effectively foster a culture of continuous improvement.

Truth No. 3 - You need to live by what you preach.

Children rarely listen to what you say, but they closely observe everything you do. Similarly, your team will likely disregard your words if they’re not backed up by actions. Stakeholders, too, will evaluate you based on the deliverables.

These people will carry a mental image of you wherever their careers take them. If that perception is positive, they could open doors for you that otherwise might remain closed. Conversely, they could also bar doors that would seem wide open for someone of your experience and skills. Have I experienced both ends of the stick? More times than I care to remember… IT has always been a “small world“, especially in the age of remote-first work.

So, the pivotal question is: “How can I leave an indelible, positive impression?“. Let’s explore some approaches to help you build and maintain a favorable perception among the Team and Project Stakeholders:

  • Lead by example:
    You’ve probably heard the saying: “Put your money where your mouth is“? To earn respect, Tech Leads must consistently demonstrate the values they advocate. If you preach testability, ensure every pull request you submit includes a comprehensive suite of tests. When you stress the importance of clear communication, exemplify this in all your interactions. Your team will be more likely to follow suit when they see you actively practicing what you preach. There is no other way.

  • Honor your commitments and manage expectations:
    Be realistic about your team’s capabilities. Never make promises you can’t keep – it’s a guaranteed way to erode trust and credibility. Instead, master the art of under-promising and over-delivering. When discussing timelines or deliverables with stakeholders, always factor in a buffer for unexpected hiccups. It’s far better to delight people with early delivery than to disappoint them with missed deadlines.

  • Consistency is king:
    Consistency is key to building trust and fostering a fair work environment. This means applying the same rules, expectations, and standards across the entire team. Avoid showing favoritism or creating double standards, as this can lead to resentment and decreased morale. Instead, focus on developing a transparent framework for decision-making that allows you to evaluate ideas and contributions based on their merit, regardless of who they come from.

  • Take ultimate responsibility:
    As a Tech Lead, you are the final point of accountability for your team’s performance. Embrace their triumphs and setbacks as your own.
    When your team succeeds, share the credit generously. When challenges arise, step up to shoulder the responsibility.

Fortunately, the vast majority of IT managers understand that our business is more complex than, say, running a nail factory. They recognize that mistakes and underestimations are part of the game. As long as managers are informed about the challenges the team faces in a timely manner, they can update stakeholders and manage expectations accordingly.
As a Tech Lead, you’ll often be the bearer of bad news. Instead of pointing fingers, take responsibility and immediately shift focus to finding a solution. Will this guarantee job security? No. But would you really want to work in an environment that punishes every single mistake?

Summary

Returning to our initial question: “What does it take to become a successful Tech Lead?

If I had to choose just one, it would be effective cooperation. You don’t need to have all the answers – and you shouldn’t pretend that you do. Instead, rely on your team’s expertise, delegating tasks, and acting more like a coach than a Jedi master. Always remember: words, development standards, and commitments are meaningless unless you live by them yourself. People may forget what you’ve said, but they’ll remember what you’ve done.

While working effectively with your team is your bread and butter, managing project stakeholders is equally important. There are various communication strategies, but absolute honesty has always served me well. Project leaders deserve to know about any delays, obstacles, or technical issues, etc. And they should be informed as early as possible. The key is to manage their expectations by under-promising and over-delivering.

As a final piece of advice: embrace full responsibility for both your team’s successes and failures. This level of accountability is increasingly rare in today’s professional landscape. Your effectiveness as a Tech Lead hinges on your ability to shield your team from “distractions” — both internal (e.g., toxic team members, poor code quality) and external (unreasonable stakeholders). While IT managers often shy away from providing this protection, it’s crucial for your team’s success. Are you ready to step up and be that shield?

Don’t miss any new blogposts!

[contact-form-7]

By subscribing, you agree with our privacy policy and our terms and conditions.

Disclaimer: All memes used in the post were made for fun and educational purposes only 😎
They were not meant to offend anyone 🙌
All copyrights belong to their respective owners🧐
Some images were generated using Leonardo AI ❤
Audio version generated with TTS Maker ❤

The post What Are 3 Truths About Becoming Successful IOS Tech Lead? first appeared on Swift and Memes.


Viewing all articles
Browse latest Browse all 16

Trending Articles