"Uncle Bob" Martin is a software engineer and co-author of the Agile Manifesto. About 2 years ago I had the awesome opportunity to see him speak about professionalism. So much of what he said left an impact on me.The worst thing you can do as a professional is nothing
You're getting paid to code; that's the skill set which makes you marketable, right? Yes, but will your ability to code be enough to keep you at your job? There are millions of software developers in the world, many of whom can probably code just as good, if not better, than you. If you're the King Sh*t of coding maybe writing code really is the only thing you should be doing. Otherwise, consider the notion that there's more to being a software development professional than just blazing through hundreds of lines of code per day.Anything other than coding is a waste of my time
Besides developers, think of all the people involved in achieving the goal of delivering quality software, on time, within budget, and without surprises—product owners, project managers, delivery leads, sales, authors, curators, designers, marketing, quality assurance, operations—it's a lot of people.
At some point during a project each of the different responsibilities will become a bottleneck. Design assets or content are late because of marketing, the backlog of stories ready to be worked on isn't large enough to keep the team busy, or the QA team is behind by a few weeks which could have an impact on meeting deadlines. What are we developers supposed to do? We help.
In some situations we can try to isolate and work around the block like using placeholder images and content. Otherwise, we can help write stories in the backlog to make sure there's a steady flow of available work. We can learn from the QA team to test other developers' changes, and write the automated test suites and load testing scripts. We can even take ownership of lower environments from the operations team. Sometimes we, developers, need to take a break from coding and just kindly do the needful.Being blocked is unprofessional and irresponsible
Always Be Improving, Learning, and Sharing
I've been a developer for over 15 years. It's fun to think about how quickly the software development world has evolved. I don't ever want to discount anyone's background, including my own—the languages and the tools of the past are part of who we are, and if it didn't kill us, it made us stronger. However, having worked with punch cards typically won't be of any benefit to your career today. Additionally, do not embrace being the sole developer who is capable of supporting something. Creating a forcefield of job security is irresponsible.Having "Bus Factor" is a grim way to describe how much or little knowledge teams and individuals have about a software's implementation, architecture, and business logic, and what the business impact would be if something were to happen to said individual(s). We need to constantly be teaching others and learning from one another.It’s unprofessional to have one person on the team that stops a project when they go on vacation
One of the most important responsibilities a software professional has (really any professional) is to continuously learn—read books and blogs, practice techniques, teach others (speaking, forums, etc), go to Meetups, build something using new technologies/approaches, or contribute to open source projects. And while having opportunities to learn new things at work happens occasionally, these opportunities alone will not be enough to help us continue to grow at the rate our industry demands. Bob Martin suggests we consider spending an additional 20 hours outside of work on our careers—it's what professionals do. Just as the company we work for relies on us to keep up with our industry and stay on top of our game, we rely on other professionals, such as doctors and lawyers, to do the same.
This post is not intended to be daunting to anyone. It's more of a reflection of the many great people I've worked with and aspire to be. And while I'm not sure being best friends with all of the people you work with should be your goal, realize they're the people you're with a majority of your time. Have fun, and grow as professionals together.The people that you work with are just, when you get down to it, your very best friends