Taking Ownership of Your Career: Invest in Yourself and Achieve Professional Growth

Imagine you are visiting a lawyer to get assistance with your legal questions. He looks at your request and says: “You know what, I don’t know much about that. But if you can buy me a few books and reimburse me for training, I can help you.”

This is a paraphrase of something Sandro Mancuso wrote in his excellent book “The Software Craftsman,” and it really resonated with me.

As a manager, I try my best to give my team opportunities for self-development and constantly lobby upper management for a training budget. However, in this post, I emphasize the importance of taking ownership of your career and personal growth.

You may be one of the fortunate individuals whose employer invests in their employees, providing training, books, and time to learn. Alternatively, you might belong to the majority who never get that lucky. Investing in yourself is crucial for career development and self-improvement, regardless of circumstances. It enables you to become more capable and effective in various aspects of your life, leading to greater career opportunities, promotions, and higher earning potential.

To take charge of your professional growth, consider these practical tips for investing in yourself:

  • Set clear goals: Identify your long-term career objectives and short-term goals to focus your efforts and prioritize learning initiatives.
  • Create a learning plan: Develop a plan to achieve your goals, allocate time in your schedule for learning, and commit to it. Be intentional about what you want to learn and track your progress.
  • Read regularly: Reading helps expand your knowledge and gain insights into different perspectives. Make a habit of reading books, articles, or blogs to stay current in your field and broaden your horizons.
  • Leverage online resources: Utilize free or low-cost online courses, webinars, and tutorials to deepen your knowledge and skills.
  • Learn from your peers: Collaborate with colleagues to share knowledge, discuss ideas, and enhance professional development.
  • Embrace failure: Use failure as a learning opportunity. Take risks, make mistakes, and reflect on what went wrong to grow from the experience.
  • Practice continuous improvement: Strive for excellence, look for ways to improve, and embrace feedback and criticism as opportunities for growth.
  • Network: Build a strong network of contacts to open doors to new opportunities and expose yourself to fresh ideas.
  • Stay curious: Cultivate a mindset of curiosity and wonder, and remain open to new ideas, experiences, and perspectives.

Remember, investing in yourself is not a luxury; it’s a necessity. By taking ownership of your career and actively pursuing professional development, you’ll become more valuable to your current employer and better equipped to navigate the ever-changing job market. So, embrace the challenge and embark on the exciting personal and professional growth journey.

Letting Go of the Chainsaw: Lessons from Firefighters for Software Engineers

I am reading this excellent book called Range, and I just went through an interesting chapter where the author reports some studies that were looking at why some firefighters die trying to outrun a fire while carrying heavy chainsaws, axes and other equipment. Should they have dropped those, they would have survived.

Emotional Attachment to Tools

One possible explanation is that their tools are so intrinsically linked to their identity as firefighters that they become almost like an extra limb on a subconscious level. People don’t realize those tools are not part of their being and can be dropped.

The book mentions one firefighter who noticed what was happening and knew he had to throw away his saw but felt compelled to carefully put it down – while trying to escape a ravaging fire. Still, he pushed the feeling aside, dropped his saw and survived.

The Sunk Cost Fallacy

When reflecting on this, the sunk cost fallacy also came to mind, which is “the phenomenon whereby a person is reluctant to abandon a strategy or course of action because they have invested heavily in it, even when it is clear that abandonment would be more beneficial.”

Letting Go of Past Investments

We can draw some valuable lessons from those examples in software engineering and operations. For instance, many people may feel emotionally attached to the tools, frameworks, and programming languages they have used throughout their careers. This attachment can be so strong that they become resistant to change, even when it’s evident that adopting new and more efficient technologies would yield better results.

Engineers may also hesitate to switch to a new technology or platform, fearing that the time and effort spent learning and working with their current tools would go to waste. However, it’s essential to recognize that technology is constantly evolving, and what was once cutting-edge may now be outdated. In these cases, it’s crucial to let go of past investments and focus on adopting new solutions to deliver better outcomes.

To succeed and keep improving, we need to be adaptable. Just as the firefighter who survived realized he had to drop his chainsaw, software engineers should be open to discarding tools or practices that may be hindering their progress or efficiency. It might be challenging to let go of something integral to your work, but doing so can open up new opportunities for growth and success.

Fostering Improvement

In team management and collaboration, fostering a culture that values continuous learning and improvement is essential. Encourage team members to explore new tools, frameworks, and methodologies to help the team become more efficient and deliver higher-quality software. By creating an environment where individuals feel supported in their pursuit of growth, you’ll be better equipped to handle the ever-changing landscape of software development.

Lastly, communication is vital when applying these lessons to your teams. Make it a point to regularly discuss new technologies, trends, and best practices with your team. 

Conclusion

Encourage open conversations about the tools and processes currently in place, and be willing to make adjustments if they no longer serve the team’s best interests. By fostering a culture of transparency and adaptability, you can help your team thrive in an ever-changing industry and drive continued success.

Building Mental Toughness: A Key to Professional Success

As someone who has always wanted to excel professionally, I’ve come to understand that mental toughness is crucial in achieving success. It’s often the difference between those who excel and those who don’t.

Mental toughness is all about how you respond to stress. Do you panic and lose control, or do you zero in on how you will overcome the difficulty? I’m actually pretty good at this when it comes to work. Even when the world around me is falling apart, I can keep my focus and get the job done.

Nevertheless, I’ve decided to start focusing on building my mental toughness. According to Wikipedia, mental toughness is a collection of attributes that allow a person to persevere through difficult circumstances and emerge without losing confidence. It’s a skill; like any other skill, it can be trained and enhanced.

Antifragile

I found this one-sentence summary of the book Antifragile that says: “[Antifragile] reveals how some systems thrive from shocks, volatility and uncertainty, instead of breaking from them, and how you can adapt more antifragile traits yourself to thrive in an uncertain and chaotic world.”

This concept of antifragility can also be applied to cultivating mental toughness in difficult circumstances. By embracing challenges and actively seeking out uncomfortable situations, we can foster resilience and adaptability and ultimately enhance our ability to confront obstacles.

How to become mentally tougher:

  1. Push harder during physical training: I’ve always pushed myself harder each time I work out, but now I’m trying to push myself to my limits.
  2. Get comfortable with discomfort: In Canada, it’s easy to practice getting comfortable with discomfort. I’m constantly exposing myself to cold temperatures by wearing shorts and a t-shirt outside when it’s -20 degrees Celsius or keeping my house at a chilly 17 degrees Celsius all day. I also fast an entire day once a week, which is uncomfortable but has health benefits.
  3. Socialize more: This is a big one for me. I’m not great at socializing, so I’m taking baby steps and exposing myself to more social situations, like making small talk before meetings.
  4. Embrace the struggle: I’m changing my perspective on struggles and seeing them as opportunities for growth and learning.
  5. Practice mindfulness: Mindfulness is being present and aware of your thoughts and feelings. It can help build resilience and manage stress. I am a big fan of Headspace.

Conclusion

Building mental toughness is essential for success in our personal and professional lives. By embracing discomfort, seeking out challenges, and developing resilience, we can enhance our mental fortitude and become better equipped to handle the stresses and obstacles that come our way. 

I encourage readers to try out the tips mentioned in this post and to continue exploring other ways to build their mental toughness. 

Do you have any other suggestions for activities or practices that can help strengthen mental toughness? Please share your thoughts and experiences in the comments below. Together, we can all become mentally tougher and achieve our goals.

Everything Sucks – Managing IT Risks: Strategies for IT Professionals.

As someone who has worked in the IT industry for many years, I have realized that technology is far from perfect. In fact, I would go so far as to say that everything sucks when it comes to technology.

IT professionals constantly deal with a never-ending barrage of issues, from unexpected hardware failures to software bugs and infrastructure breakdowns. It is Murphy’s Law all the way.

And while we often joke about the shortcomings of operating systems like Windows, even the most reliable and robust systems like Linux are not immune to bugs and glitches. The sheer complexity of software development means that dozens of bugs are likely lurking in every thousand lines of code, making it impossible to catch them all.

It is everything

But it’s more than just problematic software. Even the best hardware can fail unexpectedly, despite companies spending large sums on the latest and greatest equipment. Mean Time Between Failures (MTBF) might offer some guidance, but it’s often a source of delusion rather than certainty.

And when it comes to infrastructure, the fragility of the Internet can be mind-boggling. For example, one broken fibre cable in Egypt caused widespread disruption to millions across Africa, the Middle East, and South Asia. Given the countless potential points of failure and the constant threat of cybercriminals, it’s a miracle that the Internet works at all.

And let’s not even go into all the problems around Border Gateway Protocol (BGP), which is a fundamental protocol that helps keep the Internet running. It is based on trust rather than security. This means that every network operator must trust the information provided by others, even if they have no direct relationship with them. What could possibly go wrong, right?

But not all is lost

Despite all these challenges, there are ways to mitigate the risks and prepare for the worst.

It’s important to perform risk analyses and prioritize resources accordingly. While protecting against every potential threat is impossible, it’s crucial to focus on the most significant risks and allocate resources accordingly.

Performing risk analysis is a critical step for any IT professional in preparing for the worst. It involves identifying potential risks and evaluating the likelihood of those risks occurring, as well as the potential impact they could have. By conducting a risk analysis, IT professionals can better understand where their systems and infrastructure are vulnerable and prioritize resources accordingly.

Risk Matrix

One common risk analysis method uses a risk matrix, which assigns likelihood and impact scores to various risks to determine their overall risk level. Once the risks have been identified and evaluated, IT professionals can develop strategies to mitigate them and prepare for the worst.

Wikimedia

For example, if a company relies heavily on a particular system, it might identify the failure of that system as a significant risk. They could then develop a backup plan, such as having redundant systems or backup servers, to minimize the impact of a potential failure.

It is a continuous process

It’s important to note that risk analysis is an ongoing process. Risks can change over time, and new ones can emerge, so it’s essential to regularly review and update risk analyses to ensure that IT professionals are always prepared for the worst.

IT professionals must acknowledge technology’s flaws and take action to prepare for potential risks. By performing risk analyses and prioritizing resources, we can develop effective strategies to minimize the impact of unexpected challenges and ensure critical systems remain operational. Let’s make risk analysis and mitigation strategies a priority in our work and ensure technology works for us.