Does your workplace use best practices?...Tue, Aug 16, 2016
Are you somewhere that doesn’t promote good coding practices like code reviews, unit testing, pair programming, etc…? Do you know someone who is? The result is situations like the ones I’ve posted about recently - shitty legacy code, 500 line methods with 20 parameters, and no way to wrap your head around it.
You might start planning how you’re going to influence the organization to start adopting these practices.
Look around and see what other cultural changes have been made in your company. How long did they take? Were they natural? Were they made by one person? What drove the changes? Could you make this change by yourself?…
It’s a bummer. Without a culture that promotes good code, you’re constantly fighting against the current. In order to grow, you have to study on your own time - time you should be spending with your friends and family.
Is it really worth your time to try to make a huge cultural change towards using best practices in your company? What else can you do about it? Are you stuck?
I’ve been there. Know what I did?… I took control. I took responsibility for growing my career. There are two people who influenced me to take change my mindset this way.
1) John Sonmez. In John’s book “Soft Skills: The developer’s life manual” he emphasizes that:
“Most software developers starting out in their careers make a few huge mistakes. The biggest of those mistakes, by far, is not treating their software development career as a business.”
The idea that I am a business makes me responsible for becoming more valuable. At one of my old jobs, my boss told me not to write tests when I brought it up to them. I saw plenty of job ads that required unit testing skills.
Guess what I did… I wrote tests anyway. Guess what that did… increased my value. It increased my marketability. I knew that there was no argument good enough to discourage proper unit testing.
As a business, I offer a service. Just like a business, I can “refuse the right to serve anyone.” My company can take their business elsewhere if they want to ignore work that reduces the ownership cost of their investment in software.
Guess what happened… I used TDD to ship bug-free features faster than anyone who had ever been on the team… and my bosses noticed… and I got a raise.
2) Tim Ferris. You might be familiar with The 4-Hour Workweek. This was the first time I heard the saying: “Ask for Forgiveness, Not Permission.” Turns out, if you Google it - our very own Grace Hopper is quoted in the U.S. Navy’s Chips Ahoy magazine (July 1986)!
If you know that being the best engineer you can be requires certain best practices, don’t ask for permission. It’s your responsibility to defy any forces against doing so.
It’s also your responsibility to kick ass when you open your IDE. Using best practices, whatever they may be, feels great and it motivates you to keep going. It reminds you why you’re in it for the long haul - to become a better software developer every day.
Unless you can see yourself changing your company’s culture to use best practices, focus inward. See yourself as a business that offers the best service money can buy. Don’t ask for permission to become valuable, ask for forgiveness after cultivating more value.
- I was thrown into the codebase from day 1
- I’ve inherited 200k lines of spaghetti code… what now?
- Are you working on the greenfield code that you always dreamed of?…
- What’s better: bad tests or no tests at all?…
- Cracking open a legacy code ‘black box’…
- Debugging all the time isn’t fun…
- New to Testing Time-Dependent Code?… Use NodaTime.Testing!
- Converting DateTimes by Offsets with NodaTime
- Intuitive Testing with Legacy Code
- How to Compare Object Instances in your Unit Tests Quickly and Easily
- Should You Jump into Unit Testing before OOP?
- How Working the ‘Vertical Slice’ Can Fix your Coding Mental Block
- Using TDD to Break Through ‘Paralysis by Analysis’
- Do I Really Have to Unit Test This Method?