Software development and programming is a difficult profession. It is very new and requires a lot of practice, learning and mental focus. It can get frustrating when you are working with others and mistakes are made. Programmers are also very demanding of those who provide our programming languages and frameworks, especially with bugs or problems that hinder our daily work. When we encounter these problems, it is very tempting to get angry and make a snide comment on social media or give a dirty look in the office.
An angry response is not what we need in development. Showing patience with new developers allows them room to grow without fear of retribution. Being kind to vendors allows them the mental energy to improve their product or framework. Forgiving mistakes improves the emotional health of your team and their ability to code incredible features. To encourage patience, here are my thoughts on how we can better show kindness in software development.
Being a junior developer is very difficult. There is so much to learn when starting to develop software and it goes beyond just knowing how to use a programming language. A junior developer has to learn how to work on a team, understand software requirements, solve problems and communicate with non-technical stakeholders. It is very intimidating and takes several years for a junior developer to even begin to master these different areas, not to mention keeping up with programming trends. Therefore, it is key for more experienced developers and managers to show patience with junior developers as they learn. For a junior developer to find confidence in their work, they do not need to be afraid of failing. They need to be able to fail and be instructed, with kindness, about how to prevent the mistake again.
We developers are very opinionated about what is the best programming language or framework to use. Having opinions and healthy debates is a good thing and allows the programming community to grow with even better features and tools. However, we need to stop mocking each other for building a product or tool in a given language or framework just because we do not like it. I see this a lot in the JavaScript and PHP communities. We criticize each other for using React or Vue or Angular or (heaven forbid) jQuery! PHP developers are mocked for their language’s inconsistencies. These criticisms are not constructive and just discourage developers from building. At the end of the day, it doesn’t matter if you like React or Ember when you are making successful software.
Our profession is very unique in that it relies a lot on free frameworks and tools provided by volunteers. Since open source tools are built out in the open, we also have more access to the maintainers and creators behind them. It can get very tempting to send an angry comment to maintainers on Twitter or GitHub when their framework breaks. An open source developer is often unpaid in their contributions so they do not deserve our ire or disrespect. Even if they are being paid, showing anger does not help them fix a problem. Being kind and giving respectful feedback is key to the project being successful and the maintainers not getting burned out on their work.
When something goes wrong with your application, it can be really easy to start the blame game. Who pushed the code? What did they screw up? Why were they not more careful? These kinds of questions are unhelpful and hurtful to whoever receives the blame. Instead of blaming, we need to focus on what went wrong and how we can help each other not make that mistake again. Maybe we need a better unit testing setup? Maybe we need better documentation of this feature? Should we test more thoroughly after deploying code? Questions like these are constructive and help programmers recover more quickly from mistakes and stay confident in their work.
When development is going well, it is easily taken for granted. As a result, we often do not display an emotional reaction until a bug happens or a customer complains. To increase programming morale, it is important to regularly celebrate accomplishments. Success is very satisfying and helps programmers stay motivated and avoid burnout. Next time you achieve a new feature, celebrate it! Even if the reward is just a box of cookies and some high fives.
Being kind and forgiving is a conscious choice that we need to encourage in our development teams. It allows for developers to learn more quickly, prevent mistakes and enjoy work. Kindness is a cure for burnout and exhaustion and encourages fresh ideas and unique features. Being patient with others is not easy, but essential for happy and successful teams. Next time you work with another programmer, I encourage you to think about how you can be more kind and patient with them. It will make your work more fulfilling in a way you may not have already experienced.