#60: The Programmers Oath - I will never stop learning and improving my craft

In this episode I continue to look at professionalism in software development.

I take a look at the ninth oath from the Programmer's Oath by Uncle Bob Martin, introduced in episode #51, to explore further:

"I Promise that, to the best of my ability and judgement: I will never stop learning and improving my craft.".

I also close out this mini-series looking at the Programmer's Oath with some final thoughts.

Or listen at:

Published: Wed, 14 Oct 2020 16:08:28 GMT

Links

Transcript

[00:00:35] Hello and welcome.

[00:00:38] Over the last few episodes, I've been looking at Professionalism within Software Development, and I've talked about it through the lens of the Programmer's Oath by "Uncle" Bob Martin, which I introduced in Episode 51. In this episode:.

"I Promise that, to the best of my ability and judgement: I will never stop learning and improving my craft."

[00:01:06] If you listen to my podcasts for any length of time, you know that learning is very important to me. In Episode 44 to 47, I go through why it's so important, I then talk about ways of increasing and helping learning at the individual level, at the team level, at the organization level. How critical it is that we must be learning at all times.

[00:01:31] But why is that?

[00:01:33] Well, for software development, there's a constant changing of technology. There's a constant changing of ways things can be done.

[00:01:42] Software development is actually a very young industry, so there is always different ways coming through in how to be better at what do. There are ways of being able to improve individual productivity through new software techniques, new programming languages, new tools. The same is true of team productivity and the same is true of organizational productivity. And I think there are certainly ways that we should be looking at how to increase our across all three disciplines, not just at the individual player, but the team and the organization.

[00:02:21] I talked previously about an organization having a learning culture, making sure that it can look at how it's behaving, look at what's happening around it and making sure that it can adapt and adjust as needed.

[00:02:36] And through that greater learning, we're in a position to improve our productivity, to improve the value we provide to our customer, to improve our value throughout the organization.

[00:02:50] Now, some of those changes are likely to be only small gains, but over time you're experiencing compound growth. Small changes on top of more small changes over a long period have a substantial outcome over the longer term and can greatly improve all layers of the organization, team or individual in terms of doing the job better.

[00:03:19] If you look at martial arts. You'll find a 12th Dan black belt, why may seem to be at the top of his game will continue to learn, will still continue to treat themselves as a student. They know that there is further room to refine and learn their craft.

[00:03:41] And I like to see this especially in recruitment. I like to see this when I'm looking to bring on a software developer. I want to understand how well do they learn and then apply that learning that for me is critical in any organization.

[00:03:58] You want to employ people that have a proven track record of not just being able to do the job they do now, which may not be the job they do in six months, 12 months, 24 months time, you want to be able to make sure that you are bringing in someone that can adapt, someone that can learn and then apply that learning in your organization when you need it.

[00:04:24] So whose responsibility is it for the learning?

[00:04:28] Now, I think "Uncle" Bob tries to push this to the individual. I don't believe for one second he thinks it's just the individual's responsibility and I personally don't believe it's just the individual's responsibility.

[00:04:40] I do think he's correct, though, in saying that an individual who is aiming to be professional should have at the heart of their activities; efforts to make sure they are keeping up to date, learning new things constantly. They should definitely be investing their own time. They should definitely be spending time outside of work, learning.

[00:05:10] I also believe the business has a level of responsibility and also gains a huge amount of return from encouraging and enabling the software developer to learn. They can provide an environment that not only encourages but also supports and provides time for the developer to learn.

[00:05:35] If this is combined with the individual developers own learning, then this is a double win for me because you're then in a position where not only are they being encouraged actively work in learn, to improve, they're also self-motivated to do so as well.

[00:05:54] There's a number of ways a business can support that. Whether its allowing time for individual developers to learn, maybe it's allowing time and space for developers to get together and share knowledge. Maybe it's funding access to online training courses or attending conferences. There are so many ways a business can help an individual and the team learn.

[00:06:24] And as I come back to, I honestly believe that there's a huge return on that investment by the business in terms of helping the individuals learn.

[00:06:36] And of course, the organization has to be willing to learn itself, it has to be willing to look at what it's doing; as to is this the right thing for us? Does this help produce a learning culture? Do we support learning? Do we encourage it? Or are we actively cracking down on it? Are we being negative about it, which is so much worse?

[00:07:00] So certainly the business is involved in both the organization in terms of setting the right learning culture, in terms of accepting that not everybody is going to know everything from day one, and the business itself should be learning from experimentation.

[00:07:18] And of course, then pushing it down into the team, so they're learning locally for things like agile retrospectives, improving their own team working, making sure that they're being the most productive they can be.

[00:07:30] And, of course, as I say, the individual.

[00:07:35] Now that we've finished going through the Programmer's Oath, I wanted to spend some time sharing some final thoughts.

[00:07:44] We must remember that the Programmer's Oath was in response to the question of Professionalism within Software Development. We can look at other industries such as doctors, accountants, architects, lawyers, and you can see professional characteristics within those careers, whether it be a specific level of training, whether it be a certain level of ethics, whether it be a certain level of accountability and indeed expected quality. Those don't exist within software development at the moment.

[00:08:22] Now, I think the Programmer's Oath is actually a very good way of looking at what we would like to see - and maybe even what some employers already expect to see out of software developers.

[00:08:38] It feels a very brave thing for a software developer to try and stand up and hold these Professional Oaths in most organizations. Most organizations are not likely to be accepting of these oaths.

[00:08:56] I think their great is a conversation point, but a number of organizations aren't there yet. Now, that may be because they expect the software developer just be doing this by nature. Maybe they've just never thought of them. Maybe it's simply they aren't expecting a developer to think or work in that way.

[00:09:18] So I think there's a level of education that would have to be brought forth before you could, realistically, as a software developer be comfortable with being able to stand in front of an employer and say "I embody these oaths, I will not deviate from these oath as I believe they are ethically correct for my profession".

[00:09:43] But we have to remember that software development is in its infancy. Software development is a very young industry. I'd certainly like to see more of this professionalism coming into the industry. More software developers not only feeling comfortable with saying they abide to these oaths, but more businesses are actually asking for them. More businesses actively saying these are the levels of ethics, quality, and standards that we expect from our software developers.

[00:10:18] Because ultimately I think that is good for the organization and for the end customer and delivering value to the customer. Which for me is what it's all about.

[00:10:30] Thank you for listening and I look forward to speaking to you again next week.