- Development is a science, so be scientific
- Development is an art, so create beauty
- Never stop learning
- Never stop teaching
- Question if we are using the right tool for the job
- Have fun
We are scientists. We develop to the scientific method. We make observations. We experiment. We improve.
There is no authority in science. No matter if we are the most junior developer, if we are right then we are right.
However, we do not assume that we are always right. We question everything. When asked for our opinion, we will provide evidence to justify our conclusions. We recognise that we may have to live with decisions made today for many years to come.
And we want this to be reciprocated. When presented with an opinion, we will question the evidence presented and the conclusions drawn. This is how we ensure that our software is built to the highest standards of rigour.
In the face of uncertainty, resist the temptation to merely guess. A guess without a solid basis is often flawed. We use the evidence at hand, our logic and reason to form a sound conclusion. There will be times when we don't have all the facts at hand. In these moments, we will not let our pursuit of evidence and reasoning desert us, and allow our conclusions to evolve as more evidence is presented.
We are artists. As humans, we intrinsically know that it is nicer to inhabit a beautiful room than one that is less so. The more pleasing the room is to be in, the more pleasure we have being in it. The same is true of our software.
As developers, we inhabit our software. Unlike everyone else, we walk through its corridors, live in the walls and can admire its construction. No one should be forced to live in a house that is unpleasant and we should not force other developers to live in software that is ugly.
Beauty means different things to different people. For some, it will be a consistent style. For others, it will mean test coverage. Others still will place value upon brevity.
Like art, the definition of "beauty" is infinite.
Like artists, we should always strive to achieve it.
No matter how good we are, we cannot know it all. It should be our ambition that, when we look back at our past work, we ought to be able to see ways in which to improve it.
It may be a small thing. It may a massive improvement. When we can't see any improvements to our old work, we have not grown and we have stagnated.
The development landscape that is here today may not be how it looks in 5 years time. It is our responsibility to our profession, to ourselves and to each other that we ensure that our abilities are kept sharp through education.
No matter how junior we are, to a non-developer we are a superstar. We have learnt how to make computers bend to our will. Never lose sight of how complex even the simplest "hello world" would be to most people.
When teaching, we will explain it at the level of our audience. It only serves to alienate our audience if we fail to explain concepts at their level. Once alienated, they will always be alienated.
We may never inspire generations of future developers. We may never be the mentor to a future development giant. But it is within all of our power to inspire, mentor and teach non-developers about the power of logical, analytical problem solving.
The hammer is a brilliant tool and has served humanity for well over two million years. It's reliable, effective and one of the most perfect tools we have.
Unless you have a screw. Then it's useless.
As developers, we have a whole range of tools in our arsenal. There is nothing more frustrating than having to hammer in a screw. We may have preferences and biases as to which tool we use, but trying to hammer in a screw is both wasted effort and inelegant.
The right tool for the job will change over time. What may be considered the best tool today may be considered a poor choice tomorrow. As a developer, it is our responsibility to question our choices and ensure we have enough knowledge to pose the best questions.
Every developer first started developing as a hobby simply because it was interesting. The moment we stop the child-like wonder at how amazing it is to develop is the moment we cease to be a developer.
Remember the excitement we had when we first made a computer do something. Those tasks are what we make computers do every single day of our lives. Consider just how amazing development is and what is still possible to do.
How can we inspire others if we cannot even inspire ourselves?
We do something amazing.