Over the course of working on over 30 software projects, I often found myself stuck.
I was believing some of the same popular lies you’ve probably already heard –
…lies about how to get what you want from a career in software development.
But after learning from stupid mistakes I made –
(and hearing wise words from mentors who cared about me)…
I finally learned what success should look like in our career – and how to find it.
You might assume I think of myself as a “know it all” after over two decades in the software industry.
But the truth is, I spent many years trying to show other people how smart I was – and looking like a fool.
There’s no one-size-fits-all approach to software development!
After my first 10 projects or so, it became obvious that there’s an exception for almost every rule.
And I realized that MOST teams actually use a Fake Agile process that burns people out.
I’ll never give up trying to find better ways for teams I’m on to work together.
But my biggest breakthroughs came when I learned how to still succeed – even when conditions aren’t ideal.
I’m grateful to have had many experiences over my career, but I try to not take myself too seriously.
So I share career advice out of a tiny music room on my YouTube channel, Healthy Software Developer.
There are many traps in the software industry you can fall into – but they hide in plain sight.
To have a sustainable career in software development you need to know the truth.
People > Process
It’s tempting to waste energy fighting about tech stacks, agile, and “best practices” in the software industry. And while these things matter, it wasn’t until I learned to work better with people that I got support for my ideas and stopped being manipulated.
Success isn’t Certain
Software development is a complex problem domain that can’t easily be predicted. Our industry is full of advice about making work more efficient, but it’s impossible to take every possible variable into account. You need extra margin to avoid burnout.
Freedom > Politics
I was promised many things in my career. But having my project go smoothly, or getting the rewards I wanted, was often out of my hands. Learning to set boundaries and only invest in things that are actually within your control lets you have a life outside work.
A few things about my career and life:
- I was promoted at 23 years old to be a Software Architect – and then made an ass out of myself by having no people skills. It was a humbling experience that always keeps me growing and trying to be more self-aware.
- The first 10 years of my career I was an employee of companies, and the following 15 I served as a consultant. Through consulting I met mentors that taught me to fight perfectionism and figure out faster ways to get work done.
- Agile development practices have been both the best thing ever, and the bane of my existence since I started using them in 2001. While working with so many teams, I saw that at most companies agile practices are cherry-picked so they provide comfort for management . And this just makes work harder for staff. I had to find ways to protect myself from FAKE Agile.
- I was often sent into projects where coworkers were hostile towards each other or mistakes were made by previous vendors. I had to find a way to earn trust quickly.
- I became a husband and father very early in my life. I had to learn (the hard way) how to make progress in my career so I’d get recognized , but not sacrifice my relationships and interests at home. This didn’t come easy to me.
- I gained over 70 pounds from poor lifestyle choices earlier in my career. After getting sick of being exhausted and feeling like crap about myself, I lost the weight through better nutrition, light exercise, and rejecting programmer stereotypes.
How Agile Teams Grow Toxic!
Ep. 4 Commitments
They Watched us with Webcams and Rewrote our Code!
Scott Nimrod on Consulting and Software Craftsmanship
Overcoming pride and pressure: my story
When I was a little boy, I wanted to be an ichthyologist (someone who discovers fish in the ocean). I pictured myself finding a new species and telling everyone about my great achievement.
I was raised in a performance-based family, where my parents had high expectations for me. Though they loved me, it often felt like love only came if I did what they wanted, and when. I needed to clean the house perfectly, or I’d get yelled at. If I came home 5 minutes late, it became a 20 minute verbal scolding.
So I was a quick learner, and I’d dive deep into anything I was interested in. BMX, then skateboarding, and finally playing guitar where I would spend all day practicing – only taking a break for meals.
I got fairly good grades in school, but I wanted to play music and hang out with my friends more than anything else. So I was rebellious. I didn’t like the strong control it felt like my parents had over me. I wanted to do things on my terms, and in my timeline.
During high school, I played guitar and sang in a couple bands – and this entered me into the world of drugs. For a period of about 2 years, it was all I would do or think about. We played festivals and social events around Wisconsin and Illinois. My band was growing, but at home my family knew something was wrong. A career was the least of my concerns.
“I was raised in a performance-based family, where my parents had high expectations for me.”
My parents had raised me to think I had big potential. So they fought hard to get me to take my future more seriously. And eventually they convinced me to go to the big university downtown.
Struggles with higher learning
I had no idea what I wanted to do when I went to college. Though I loved creative writing class, where I learned to write poetry and eventually my first few songs – I figured there was no money in it. So I tried taking physics. But my heart just wasn’t in it. I dropped out after the first semester from too much partying, and feeling tiny and meaningless in the large lecture halls. A big campus wasn’t the right learning environment for me at the time.
After a summer of working at a local pizza place, I was up late one night talking to my aunt. She suggested I meet a career counselor at the school where she was taking night classes. A few weeks later I enrolled to start an associates degree there. I would learn programming, networking, and a bunch of other computer related knowledge. But I hadn’t decided yet exactly what kind of job I should get in the field.
Around this same time I met the girl who would be my wife. After just 4 months of dating, I got her pregnant. 😳
That summer I was terrified. “How can I raise a kid at this age?” I thought. But my family was insistent that I take responsibility for my actions. So we moved into a tiny apartment together, and soon afterwards two big changes came into my life. The birth of my oldest son, and an interview for a job at Rockwell Software (now Rockwell Automation).
I wanted badly to move out of the apartment we lived in on a crappy side of town. So when I was offered a job as an intern testing software components, I took it with no complaints – or expectations.
Crashing into corporate America
In just a few weeks I realized I’d entered a strange new world at my first software job. I didn’t understand the lingo, there were a ton of new people to meet, and I barely knew the programming languages I was taught in school.
But people were generally eager to help teach me. My boss saw something in me and took me under his wing. He would tell me stories about the industry, give advice on dealing better with people, and became one of my greatest mentors.
An unlikely opportunity
After a couple years I began experimenting with some new web technologies I was reading about online. And my wife got pregnant with our second son, so she would go to bed at 7:00 PM every night. With nothing to do, and a ton of energy for a 22 year old, I stayed up late creating a side project. I used it to learn and experiment with some ideas I had about a better design for our software products at work.
Somehow I ended up telling my boss about it, and he asked me to give him a demo on a CD (this was around 1998). Soon afterwards he told me he met with the then VP of Rockwell and showed it to him! The VP called it “the most strategically important project in our portfolio”. Suddenly my little side project became an important goal at work. We were given permission to encourage people across the company to join us, and within a few months we had a team.
I ended up getting promoted to be a Software Architect in the middle of this project, at 23 years old. But I made a bunch of stupid mistakes. I knew a lot about designing and building software, but I didn’t know how to work with difficult people. The way I was raised to think I had so much potential, I would rub some members of my team the wrong way without realizing it. I had a lot of pride, and struggles with self-worth deep down inside that I barely recognized were there.
“I would rub some members of my team the wrong way without realizing it.”
During this time my dad passed away from cancer, and I fell into a deep depression. I was leading my software project, but at home I’d smoke pot and play video games to try to escape from the immense grief I felt. And I gained a lot of weight from emotional eating to deal with the stress at work.
After a variety of political struggles worthy of a movie, my boss and I eventually left. You can read more about this project on my software project stories page.
After leaving Rockwell, I followed this same mentor to 3 other companies. We kept running into more power struggles and politics. So eventually I got frustrated with the area where we lived. I started to wonder – “Am I in the wrong city for this career?“.
The consulting experience
In 2007 my family and I fixed up our aging house from the 1970’s in Wisconsin and sold it. We moved to Austin, Texas to try our luck at a new city with a reputation for music, a good technology market, and nicer weather.
Upon arriving in Austin, I spoke with several recruiters and hiring managers about positions. One night I received a call from a recruiter for a small (at the time) consulting agency in town, Catapult Systems. I had heard some bad things about consulting, so I was hesitant at first.
But the interview changed my mind completely. I met several people who would come to be my friends to this day. When they asked me about my story, and told me about working there – it was immediately obvious that there was an understanding of the software business there that I hadn’t come across before. Catapult convinced me to join them and I started a few weeks later.
After my first year, I went into a performance review expecting the same glowing feedback I always got from the boss I’d worked with in Wisconsin. Instead, I was told that most of my colleagues thought I was rude to clients, and that I was difficult to work with. It was a tough blow. But I took the feedback to heart and decided to invest in my soft skills.
Over the 10 years I spent in consulting, I worked with many clients and learned everything I could about working better with people from books – and mentors. I listened closely to other consultants to hear how they negotiated with people. I sat in on meetings with people on the business side that other developers would skip to try and understand how to connect with them better.
And eventually I started actually getting compliments that something had changed about me. Some people told me I was one of the best consultants they’d worked with. It was hard to believe them after all I’d been through. I tried to not let it get to my head, but I was happy people weren’t treating me like “just another developer” anymore! ?
I also changed my eating and exercise routine after so many years of being a slave to the keyboard. I started riding my bike every day. I ate eggs for breakfast, and smoothies for lunch. And I cut my caffeine down so I’d be less stressed on projects.
The plague of FAKE Agile
At this point I started to notice a trend. Most of the clients I went into were full of people on software development teams who struggled with the same problems I’d had. They were brilliant technologists, but they didn’t work well with people and they had no influence over how their company used agile development – so they were getting stressed and burned out.
“There were some good practices to follow, but people were blinding applying them without using common sense.”
In my last 5 years at Catapult Systems, I found myself frustrated that the culture was changing since they were bought out by a large Chinese IT company. We’d had several high profile projects get in trouble because the way they were managed didn’t make sense. The company was trying to understand agile better.
There was a movement across the company to try and standardize everything related to delivering software. But in the many projects I’d been on, I realized it wasn’t that simple. There were some good practices to follow, but people were blindly applying them without using common sense.
So I began offering a lot of help and guidance, in the form of open source projects I created, presentations I gave, and support to other consultants on their projects. But soon the politics once again got overwhelming. There were many others at the company who finally realized where the industry was going – they began to compete with me to lead us in the direction of Lean, Continuous Delivery, and DevOps.
A rude awakening
In April of 2017 I had several things in my life converge to bring my career to a sudden pause. My marriage was struggling because of how frustrated I was with work. I couldn’t seem to find the energy or time to spend with my kids, and one of my sons began to have some serious problems I couldn’t help him overcome. And the stress of being put on projects that were in trouble too many times was catching up with me.
I began to have serious insomnia and couldn’t sleep more than 3 hours a night for almost a month! I saw doctors, went to sleep studies, and tried everything I could find to overcome it. But eventually I used all my sick and vacation time and had to quit from the consulting agency to get better.
Dreams of giving back
After a couple weeks of walking through the wildflowers and discussing options with my wife, I knew I needed to try something different. I still needed steady work to pay the bills, but I could get independent consulting contracts at a higher bill rate to have more time off in between gigs. And during that time off, I could start making YouTube videos and sharing my story. My dream was to coach individuals directly – and help them work through the same issues I’d overcome.
I still struggled with work/life balance on some of the consulting contracts I found during this period. But I noticed again what I always do – other people on the project who need help way more than me. Unfortunately, I can only help a few people at a time on projects when I work for a company. So helping people online really does seem like the right thing for me to do.
After 2 years of making YouTube videos, I realized I STILL had some lingering anger issues I needed to recover from. I had some “aha” moments during a break from a couple hard contracts. I thought at first about getting a management position and put the online coaching stuff on hold.
But after continuing to get better, I felt even stronger that it was time to distill everything I’ve learned down into something more people can benefit from. Though the YouTube channel has been great for sharing ideas, and I’ll continue to make videos – I needed to start really helping people get results.