This is my personal statement:
“I value freedom, honesty, and transparency. I believe in self-organisation over command & control, open communication over hierarchy, and using common sense over blindly following procedures. By staying up to date with modern practices, in the realms of software engineering and of business and organisations, I keep developing myself both personally and professionally.”
This is my very condensed resume:
I have long-standing experience as a software developer. I have worked in a number of companies, and in a number of fields. This includes, but is not limited to, embedded systems and web development. I can write C/C++ code and Java (for Android), and I believe PHP and Python are not far behind. I have experience with databases, e.g., MySQL and PostgreSQL, web frameworks like Flask, and modern serverless environments like AWS.
As a certified Scrum Master (PSM I), I am a believer in Agile methodologies. It doesn’t end there. I believe that organisations need to adjust in order to successfully work in an agile fashion, and to stay competitive in this modern day and age. Hierarchical organisations are a thing of the past, the future lies in networked organisations. I am a proponent of Management 3.0 practices.
This is my view on software development and organisational management:
Software really isn’t just about technical skill any more (if ever). A developer rarely works alone, but almost always in a team. A team is surrounded by business folk, who are stakeholders in the product the developers are building. They are usually the ones who talk to customers. It all comes down to communication. And then there are the “impersonal” factors: market conditions, state of the economy, competitors, etc. It makes that software development is a complex endeavour.
Software development nowadays goes beyond the ‘hard skills’ that are often sought in developers. Those hard skills are technical abilities, engineering insights, and analytical thinking. We need those ‘other hard skills’ (sometimes referred to as ‘soft skills’) to complement a developer’s skill set. These other hard skills include communication and interacting with other human beings. I call it ‘other hard skills’ because it may actually be harder than the traditional hard skills.
Personally, I believe software development is a trade off between those two sets of skills. Sometimes the technical skills are needed more, and sometimes the non-technical skills should prevail. Within the Scrum framework, this is apparent: every (say) two weeks, the development team and stakeholders get together to discuss what has been done and what should be done next. During this (brief) period, a lot of communication takes place for all parties involved. However, once this is done, the focus can shift to the technical skills, and the development team can work pretty much autonomously on the product. Still, even during development, some communication will take place, often to clarify certain details.
The closer parties are aligned with each other, the better the outcome of the (agile) process. This always requires a learning curve, but this is neatly supported by, for instance, the Scrum framework. Every iteration, apart from ‘potentially shippable software’, the other deliverable is ‘process improvement’. Learning is at the heart of any agile methodology, it is never fixed. This learning should transcend the software development team, and spill over into the rest of the business. In fact, it should permeate the entire organisation.
The overall complexity I described above, points to an organisation that has communication at its core. It should, therefore, by definition be a networked organisation, and not the traditional hierarchical one. The modern organisation needs to be managed differently and in a way that is based on systems thinking, not the traditional mechanistic thinking.
This, in a nutshell, sums up what I stand for. Yes, we need technical excellence to create good software, but without the ‘other hard skills’, it will be a tough challenge, to say the least; we might not even be building the right thing. The three pillars ‘software development’, ‘agile methodologies’ and ‘managing differently’ are therefore all part of the same living system.