August 30, 2019
Categorized: Career Advice | Career Tips | Meet IBMers
Share this post:
(5 min read) By Nife Oluyemi
Recently I received my first warning email from IBM that I needed to do a regular update of my password for security purposes. It was only then that it occurred to me: I have already spent three months at IBM. This realization caused me to reflect back on my first days at this new job—all I have learned and what I’m looking forward to. I want to share my thoughts on how to have a great start in a new DevOps role.
IBM has nurtured the culture of continuous improvement, which is my number one priority and what DevOps is all about. I’ve learned about more new information in my first three months than I ever have. There is never a shortage of great mentors on my team and when I feel lost, there is always someone ready to help. At first having loads of new information thrown at me was overwhelming, but with help from my colleagues and access to IBM’s learning tools, I figured out how to navigate myself through.
Based on my understanding of DevOps and how I have been able to immerse myself into the practice so far, here are six ideas to help DevOps hires as they start a new career journey.
1. Understand Why Your Organization or Team Needs DevOps
I am on the site reliability engineering (SRE) team for Watson Financial Services. Prior to joining IBM, I did not know SRE and DevOps are two peas in a pod. When I started at IBM, I saw the use of all these amazing technologies, like Kubernetes and Docker. I had a basic understanding of the tools’ functions but not the reasons why they were being used.
With the help of my team members, I began to understand the underlying purpose. SRE is a major part of the overall DevOps mission. We develop solutions and adapt tools to quickly deploy customers environments, as well as monitor those environments to ensure client software is up and running at all times and their data is preserved.
Once I understood why we needed DevOps, it was easy for me to figure out how I could play a part in the overall mission and match my strengths to the aspects I could influence the most. Different teams have different goals, and it is essential to have a clear picture of the overall goals of the team or organization.
2. Dive into the Ops
Coming from a coding background, I thought DevOps was about writing code to automate tedious operational processes. While that can sometimes be true, I have discovered that it actually teaches you to be a T-shaped professional, someone with both breadth and depth of skills. In DevOps, there is crossover with IT Operations (Ops). You need to immerse yourself into IT Ops as much as possible to build your breadth of skills and allow you to determine which technologies/skills to explore deeper. The knowledge gained from IT Ops will also go a long way in helping you understand the need to synergize operations and software development.
3. Collaborate to Zero
Collaborating to zero means being a team player and collaborating until there is zero friction between you and your team. This point is a parallelism to ‘Innovating to Zero’, Bill Gates’ popular TED talk.
In DevOps, we work to remove the barriers between different teams, so I cannot over-emphasize the benefits of teamwork, of being a team player and having the willingness to cooperate with others. It’s not enough to have the technical chops; soft skills matter too. The ability to work with others and communicate effectively, both verbally and non-verbally, is essential.
My teammates are scattered across different locations, so for me, remote working is a big reality. Initially, I thought collaboration would be difficult, as I had never worked in any kind of remote arrangement. But thanks to tools available and the flexibility that is ingrained in DevOps culture, it is easy for me to work with anyone anywhere. Collaboration is just as important as automation.
4. Know Your Users
At IBM, we praise human-centered design and its importance in problem-solving. Everything is designed, and design thinking helps us immerse ourselves into the user’s problem. At first, this was tricky, as I build mostly internal tools. Since my work is not client-facing, I struggled with user empathy.
I once asked a colleague, “How do I apply human-centered design if I am not really doing client-facing work?” He pointed out to me that, as a DevOps developer, your job is to increase productivity across different stages of software delivery. Hence, my clients could be members of my team, developers, QA, product managers, IT Operations, or business leaders. It would help me to truly understand what problems they face and create solutions to help them perform their own jobs better. That’s the beauty of design thinking and human-centered design, it can be applied to many problems.
5. Scout for Automation Gaps
With fresh eyes come new ideas and opportunities that might otherwise not seen by others. A great DevOps employee is constantly curious and open to learning new things. Some ideas are expected from you when it comes to figuring out new ways of looking at existing processes. As a result of getting familiar with IT Ops, you can easily spot areas that require automation. Manual configuration is prone to errors, making automation crucial in DevOps on the path to delivering value to customers consistently.
6. Write Things Down
This is my favourite life hack and the key to stress-free productivity. What better way is there to retain information and free up your brain than by writing things down? When I joined my team, I leveraged the notes of teammates who joined before me to help navigate and speed up my learning process.
I enjoy that the DevOps role is far from predictable. As a DevOps Engineer, there is a high likelihood you will face more than one new interesting problem a day. And when you solve a problem, you have to document your process towards the solution. Then, when the same problem arises in the future, you or your colleagues can reference your previous work. Building a habit of documenting processes and insights provides an opportunity to create resources others can leverage.
DevOps requires an eye for improving software delivery, recognizing siloed processes, and providing solutions to decrease the barriers between different teams. IBM is a leader in Cloud Computing, and therefore a pioneer in DevOps. When I joined my team at IBM, I wasn’t sure what role I would play. But I have always found joy in simplifying processes, so finding myself in DevOps at IBM was a case of right personality meets the right opportunity. IBMers have momentum, and the culture of THINK and always taking action is what kept the company for 100+ years and what will keep it going for 100 more.
About the Author: Nife Oluyemi is a DevOps Engineer in IBM Watson Financial Service Solutions on the Financial Crimes Insight — Site Reliability Engineering team. He studied Master of Applied Computing at the University of Windsor and joined IBM at the end of April 2019. He is based out of the IBM Canada Software Lab in Markham, Ontario, Canada. He is interested in the entire software delivery process from idea to deployment and the continuous feedback loop.