Not much to update today. Yesterday wore me out emotionally. (Gasp! He still has feelings! Oh no!) So I didn’t get much done. Today I’m half-tired and half-motivated. The motivation is really for all the wrong reasons. I just want to prove to the majority of people how wrong they are about me. And rub it in their face. Hard.
Anyways, nothing much going on. It sucks when reality whispers in your ear, “Nothing has changed.” Even when you hoped it did. I’m not sure whether to try harder. Or just stop caring. Either way… just another day.
I’ll be the first to admit it. I am a perfectionist.
At first glance, this is a very positive trait. I pay attention to detail. I can “hyper-focus” on a task, and flesh out all the issues with it. I want to bring into existence the best solutions, the most efficient code and most beautiful art. It helps avoiding mistakes. It helps with paying attention to details, others skim over. It helps bring masterpieces into existence.
But there are downsides to perfectionism as well. Time does not always allow for the perfect technical solution. Historical reasons-I shiver at those words as a excuse for past sins-and other things outside of your control don’t always allow for a solution to getting even close to perfection. You need to maintain a healthy level of pragmatism and be realistic, or you will go crazy.
More importantly, perfectionism can lead to a pessimistic perspective of life. You may bring the bar up so high, that no human can achieve to your perfect ideal. The worst, you can’t either. If I tried to write the perfect piece or code the perfect application, I would never get anything out the door. So remember to give yourself a break occasionally. No one is perfect.
I have a serious character flaw. I’m a perfectionist. Nothing kills creativity like trying to get everything right the first time around. One of the most important skills I learned in professional writing: is create first, edit to perfection later. Give yourself leeway and freedom to make mistakes and to experiment.
There is a second part to the lesson though. You must treat and follow your process as closely one should practise religion. In writing, a process gives you the structure to write faster, better and with more freedom. In programming and developing applications, rigour in sticking with your process is essential for the project’s health and your sanity.
Processes like planning, documenting, testing, deploying and fixing bugs should be well worked out in the developer’s mind. Being drilled, the developer can control her environment better. In a controlled environment, there are no surprises or unexpected issues. Everything works with the precision, logic and accuracy of a Swiss watch. With a well documented and followed process, you can measure efficiency and progress.
In a controlled process, you can work out what you can expect to happen and how. Your developers can gauge how their work is progressing. Your designers can see how well the implementation follows the design. Your testers know where to spend time testing. And your business people, can figure out the cost in time, people and materials your project will take. Everyone know what is expected of them. Your team feels less stress, and works more effectively. That is why ideas like Sigma Six and best engineering practises exist. Japanese manufacturer stressed over their processes bring them to perfection. No wonder why Japanese manufacturers can corner the market.
Without a process, chaos ensues, stress builds and projects fail. So if you manage a team or a project, do your team a favour: figure out a process that works for everyone and stick to it. Your team will appreciate less stress and chaos. And your bosses will appreciate a project well done. Perfection belongs in your processes.
I’m not feeling particularly creative today. Or rather the hustle of both my professional and personal life is taking a toll on my creativity. Also sorting out stuff and figuring out a road map for immediate goals takes time.
At least one of the stresses of whether I’ll work for my current employer more or less disappeared. So it looks like I’ll get to keep growing in my current role as a software consultant. Development in real life differs greatly from the sheltered realm of university. Gathering requirements is more difficult. The code base most likely won’t win awards for breivity, simplicity and elegence. And a perfectionist approach to engineering, will drive you insane or into pessimism. Finally consulting requires one to be diplomatic nearly all of the time. For an asocial (not anti-social, I just need solitude more than others) individual, this can be quite a challenge. So far I think I’m achieving this, more or less.
Writing and blogging at least gives a nice way to unwind. But unfortunately this week is so hectic, that I have very little time. In fact, I got to end right here.