There comes a time in everyone's career when the question, "Am I delivering value?" becomes persistent in one's mind. I have asked this of myself many times and I'm sure most others have. Within in the context of Software Delivery the question is prevalent. My feeling is that we should ask this question regularly and take responsibility to answer with ample context and minimum bias.
Often the question arises when we lack motivation. Our usual response is that I'm lacking motivation because "I'm not delivering value". Now! Value could mean value to the business, it could also mean value to my personal career. Arguably Autonomy, Mastery, and Purpose are key drivers for motivation1. This question speaks to both Mastery and Purpose. Motivation is also about the state of our mind - 2 different minds can be motivated and demotivated respectively from exactly the same work2. The state of mind is directly related to the question "Am I delivering value". From a motivation point of view, this question should never arise unbidden. Because it is a symptom of lack of motivation. We should, however, create an external trigger for this question to be asked because the result should be the creation/evolution of a strategy so the answer is in the positive. It is key to a professional attitude towards the business and us as individuals.
Often we think that it is someone else's fault that, "I am not delivering value". The attitude here is that, "I'm doing all I can but the external factors will not allow me to deliver value". Usually this kind of mindset is laced with a good dose of personal bias and myopic mindset. We may see value only in a single aspect that speaks to our narrow focus: I am not learning modern technologies, leading to fear that my skills are not marketable. The challenge faced in my daily work is too great or too little, leading to feelings of anxiety or boredom. No one sees the great work I'm doing, leading to feeling of unfairness and lack of recognition. I am not getting on with my team, leading to fear of social exclusions and animosity. The narrow focus also indicates the usual attitude that, "me delivering value is only someone else's responsibility". We end up blaming the organisation and the environment around us. Of course, the environment is often a contributor but rarely the sole party to blame.
"The organisation and environment that we are working in is a product of our collective behaviours."
First of all, let's get this straight! The organisation and environment that we are working in is a product of our collective behaviours. It is not an external force! It is created by us with each individual playing their part to create that exact environment. Evolving your environment can be difficult and sometimes impossible but most of the time Software Professionals do little to change it. We think it is someone else's concern — some team leader, manager, head of something or other — and when they don't do it according to our expectations, we tell ourselves that the situation is hopeless and we can do noting to change it.
We also suffer from the "grass is greener" syndrome. The often breakneck speed of the startup world may sound appealing to software professional used to the leisurely pace of a large IT department and vice versa. Going to organisations I rarely see a happy medium — departments are usually closer to the chaotic or the bureaucratic ends of the spectrum. The point is, no significant software delivery effort is perfect. There are always areas to be improved. If we are expecting others to sort out the organisation while we concentrate on our narrow focus, whatever that may be, then we are heading for disappointment no-mater where we go. We need to create a constructive mindset to meet these challenges in order to create value. Of course a mindset is not enough you also need the skills but a mindset is a good start.
"A Software Professional is not defined by a single technology, a narrow skillset, or some specific experience."
A narrow focus will maximise bias and will not be constructive in answering this question. A Software Professional is not defined by a single technology, a narrow skillset, or some specific experience. We specialise in certain technical areas and that is needed but we also need a number of other skills to be effective. These include leadership, consultancy, facilitation, product strategy, driving change, giving and receiving feedback, critical thinking, operational concerns, quality assurance, training, mentoring, effective execution, project management among many others. The specialised skills in certain technologies combined with these skills make us highly effective and marketable. These skills are often developed and honed in challenging environments. So the next time you think to yourself, "I'm not learning much" ask yourself the question, "What is it that I am meant to be learning?".
The value to the business is not only delivering features but also evolving the organisation so that it is aligned to the needs of the business and the people involved, the later is more difficult but also crucial. That is where you evolve your organisation and environment to become more effective at delivering value to the business and yourself. If the individual, the team, and the wider organisation is not aligned then delivering value will become more difficult. Running away from it is a choice that you can exercise but the next organisation will have its own challenges and you'll be starting from scratch. You will need to take a stance sooner or later. You may get lucky and land into a perfect team/organisation. I for one have not seen one throughout my career.
Once you decide to take a stance then it is important to understand that you don't have to do it alone. If you are frustrated with the work then it is quite possible that other people in your team and organisation share your opinion. If you aim to voice your frustrations with other, albeit in an constructive way, then they will either validate your opinion or provide you with a different perspective. "Delivering value" should be a responsiblity shared by the whole team3. Of course aligning your team towards that shared responsiblity is not an easy task. If you want to dig deeper then I recommend the reading list at the end of this article.
Of course understanding what needs to change and how to change it, is difficult indeed. In order to give us a fighting chance we need to value those "softer skills" much more. After all they're much harder to obtain and anecdotally rarer. Learning and exercising them will "deliver" value to us as individuals and the business. At Codurance we aim to help our craftspeople develop their skills in many areas including Leadership, Teamwork, Community Engagement, Training, Mentoring, Communication, and Consulting. These are in addition to their one or more specialisations such as Software Development (frontend and backend), Infrastructure Engineering, Product Strategy & Management, Business Analysis, UX, UI & Graphics Design. We recognise that while specialisations are very important we must also ensure that people are equipped with the full spectrum of skills they need to deliver value.
Software is our passion.
We are software craftspeople. We build well-crafted software for our clients, we help developers to get better at their craft through training, coaching and mentoring, and we help companies get better at delivering software.