You might think I'm a "know it all" after over two decades in the software industry. But the truth is I spent many years showing other people how smart I was - and looking like a fool.
There's no one-size-fits-all approach to software development! As a consultant I learned there's an exception for every rule.
Most teams actually use a FAKE Agile process that burns people out. Through mistakes and mentoring, I learned how to influence others and succeed even when conditions aren't ideal.
Though I'm grateful to have had many experiences over my career, I try to not take myself too seriously. So I share advice out of a music room on my YouTube channel, Healthy Software Developer.
There are common traps people don't like to talk about in the software industry - but they hide in plain sight.
You don't need to get fancy to tell the truth.
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.
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.
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.
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.
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.
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.
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?".
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 a huge number of clients and learned everything I could about working better with people from books - and mentors. Over time I even began to get compliments from clients and colleagues that something had changed about me. They thought I was one of the best consultants they'd worked with. It was hard to believe them after all I'd been through.
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.
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.
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.
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. They finally set me on the path to work through a few things blocking me from moving forward with coaching people. 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 create something more structured that would really help people get results.
So I'm creating a course called "Defeating Fake Agile" that I'm getting ready to offer soon here on the site! If you're interested in learning the skills I developed in consulting, and how I cope with problems on software projects, you can signup below and I'll let you know when it's available.