After so many years working in the same still-young field, certain themes have become apparent as prerequisite for an enjoyable and most successful contract.
- Self-less purpose
It may sound self-righteous, silly, or naive, but true commitment is based in self-belief, and money alone does not buy this. Self-less does not necessarily mean saving the planet by throwing oneself in front of bulldozers – it could mean creating a better working environment. In any case, it is strictly the opposite of selfish.
- Like-minded folk
An office of complaints, constant gripes and grievances, and perpetual unhappiness leads to badly written, poorly maintained code, which leads to an office of complaints, ad nauseum.
- New technology, when necessary
…and not just for the fun of it. If there is a reason to use a new technology – software, management technique – it must be tested, understood, and thoroughly embraced.
- Everything is a compromise
Ideal coding does not exist in reality: to paraphrase Plato, ideals do not exist in the world of forms. Equally, not everything in the client or business owner requests can ever be delivered within the time they will allocate. Everyone has experienced this, our shared reality, and so everyone needs to admit to the necessity of pragmatism to achieve any progress. This is the foundation of Agile.
Rambling meetings and waffling e-mails annoy everyone eventually, even if, being British, they are too polite to admit it. Such events are the first signs of weak management, and should be redressed with the adaptation of informally formal channels of communication, that follow an established and commonly-understood model, which can be tightened as required. That is Agile, again.
- Freedom of expression
Another seemingly wimpy idea, but unless in the office staff feel free to question and doubt, to suggest and engage with all levels of a project, then they will do so out of the office, which will lead to either riotous pub scenes and work-place subterfuge, or a high staff turnover.