In recent months I have been doing research, re-educating, renewing, updating and refamiliarizing myself with my craft which I had put on the back burner in the hope I could transform an IT organisation. After three years I decided that I prefer following my passion instead of trying to herd a bunch of cats.
That was the paragraph I penned when starting this blog and when I had written it I realised that there was a fundamental problem with the last sentence. Why would I be herding a bunch of cats if these were supposed to be professionals? And it is this that got me thinking. Are we really professional, and if not what are we?
To aid me in my search for an answer I turned to my trusted friend Google in the hope of finding some answers. My first point of call was the Webster Dictionary for obvious reasons, and this is what I found: Professional:
a ) relating to, or characteristic of a profession
b ) engaged in one of the learned professions
c ) (1) characterized by or conforming to the technical or ethical standards of a profession
(2) exhibiting a courteous, conscientious, and generally businesslike manner in the workplace
After exploring this definition I realised that we are not in a position to call ourselves Professionals as we do not have any technical or ethical standards that we conform too.
So if we are not professionals then what are we? Well the best I could come up with is an artisan which is defined by the Webster Dictionary as:
Artisan: a worker in a skilled trade, especially one that involves making things by hand. And this definition fits us more closely, and now I was not surprised because being an artisan does not mean you are a professional.
While our skills have certainly grown and our status in society has grown, we have become the unwitting slaves to the dreaded deadline and through this slavery have thrown the baby out with the bath water with regards to professionalism and have, more often than not, delivered code that falls far from the mark and does not meet the quality standards required. What is even more concerning is “Agile” and deadlines are often the excuses used to justify this lack of quality.
I had to try and find the reason for this apparent misinterpretation of Agile and started with the Agile Manifesto which states:
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
And this is where the problem lies. Most of us have read the Agile manifesto and we subscribe to it, but most of us have missed the twelve principles of Agile that underpin the manifesto and instead have opted to provide our own and it is this that has had the largest impact on our community.
We follow these principles: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress.
Agile processes promote sustainable development.
The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity–the art of maximizing the amount of work not done–is essential.
The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
And when we take into account these principles what we realise that what we are subscribing to is not to be ruled by deadlines or the whim of some stakeholder who wants to be first to market, but rather to a set of principles that elevate us from being mere artisans into the realm of the professional.
There is one caveat to this it is relying on the individual to hold fast to these principles and there is no self regulating entity as with other professions that ensure that professionals uphold the principles and ethical standards of their craft.
And in line with Uncle Bobs thinking (Robert C. Martin) I would like to propose that we as a community establish the first institute that regulates our craft.
In line with Uncle Bobs thinking (Robert C. Martin) I would like to propose that we as a community establish the first institute that regulates our craft.
by Mo Hassem
A herd of cats