Display Courage, Commitment, and Humility

From Programmer 97-things

Jump to: navigation, search

Software engineers are always having good ideas. Often you'll see something that you think can be done better. But complaining is not a good way to make things better.

Once, in an informal developer meeting, I saw two different strategies of changing things for the better. James, a software engineer, believed that he could reduce the number of bugs in his code using Test-Driven Development. He complained that he wasn't allowed to try it. The reason he wasn't allowed was that the project manager, Roger, wouldn't allow it. Roger's reasons were that adopting it would slow down development, impacting the deliverables of the project, even if it eventually lead to higher quality code.

Another software engineer, Harry, piped up to tell a different story. His project was also managed by Roger, but Harry's project was using TDD.

How could Roger have had such a different opinion from one project to the other?

Harry explained how he had introduced Test-Driven Development. Harry knew from experimentation at home that he could write better software using TDD. He decided to introduce this to his work. Understanding that the deliverables on the project still had to be met, he worked extra hours so they wouldn't be jeopardised. Once TDD was up and running, the extra time spent writing tests was reclaimed through less debugging and fewer bug reports. Once he had TDD set up he then explained what he had done to Roger, who was happy to let it continue. Having seen that his deliverables were being met, Roger was happy that Harry was taking responsibility for improving code quality, without affecting the criteria that Roger's role was judged on, meeting agreed deliverables.

Harry had never spoken about this before because he hadn't known how it would turn out. He was also aware that bragging about the change he had introduced would affect the perceptions of Roger and Roger's bosses, the management team, would have of it. Harry praised Roger for allowing TDD to remain in the project, despite Roger having voiced doubts about it previously. Harry also offered to help anyone who wanted to use TDD to avoid mistakes that he had made along the way.

Harry showed the courage to try out something new. He committed to the idea by being prepared to try it at home first and then by being prepared to work longer to implement it. He showed humility by talking about the idea only when the time was right, praising Roger's role and by being honest about mistakes he made.

As software engineers we sometimes need to display courage to make things better. Courage is nothing without commitment. If your idea goes wrong and causes problems you must be committed to fixing the problems or reverting your idea. Humility is crucial. It's important to admit and reflect upon the mistakes you make to yourself and to others because it helps learning.

When we feel frustrated and powerless the emotion can escape as a complaint. Focusing that emotion through the lens of hard work can turn that negativity into a persuasive positive force.

By Ed Sykes

This work is licensed under a Creative Commons Attribution 3

Personal tools