Listened to this talk by Martin Fowler, of Agile Manifesto fame. In this talk he suggests that “we as developers should not be just code monkeys bashing out code.” We developers, he suggests, need to consider the responsibility that we have for the software that is going to be written and used.
And I think that we have a certain responsibility to say: where are we going to apply our talents? Because in the end we are responsible for using our talents to, hopefully, make the world somewhat of a better place.
… we should say “is what we are doing useful?”
This reminded me of the Spiderman quote : with great power comes great responsibility. And having just read the graphic novel Marvel Zombies, led to capturing the main idea of the talk in this graphic.
Coding Zombies are the same as the coding monkeys Fowler refers to. Developers who take little to no thought in what they write – either as it relates to the business – or in my experience – in the design and quality of their code. They embrace the mentality that I’m just building what they asked for.
In order to avoid being a coding zombie we need to focus on writing clean code. But, to Fowler’s point in this talk, we also need to learn the domain so that we can answer the question: “is what we are doing useful?” Is it valuable for the domain in which I am working? When we learn about the domain we can begin to have meaningful interactions with analysts, which should result in more value in the software that we build.
The need for better interaction between the business analysts and technical team reminded me this great quote from The Lean Mindset by the Poppendiecks. They are critiquing the role of the Product Owner in a traditional Scrum process.
Agile depends on the Product Owner and other stakeholders having clairvoyance to guide a project toward a coherent, unified, and inventive product.
Having worked for a large number of commercial and government clients, I have found that it is rare to have a product owner that is able to guide a product that is “coherent, unified, and inventive”. Even if they are really great at the business side they often don’t have a full understanding of the constraints that their existing systems create, know the best ways to use new technologies to meet their needs, or know how to shape products to allow them to meet future needs. When developers embrace and learn the domain they are working in they are going to be able to influence the direction in which the software goes. And that is a good thing.
BTW: if you stop the video around the 14:20 mark, is Fowler giving the finger to developers who implement dark patterns?