Engineering Time

by Sebastien Mirolo on Tue, 1 Sep 2009

Software is an artistic endeavor where elegance and flow are key factors to success. A passionate debate on two versus four versus eight spaces indentation reveals how much style and form matters to the practitioner. Software is as brutal and cold as any other engineering activities. It is the kind of work where only humble and honest people can thrive because either the computed result is correct or it is not. In most cases, you can objectively trace an error back to an individual. Software is a living entity the same way a manufacturing plant is. It requires the pragmatism and ingenuity of people to fix, update, and extend a system beyond its original intent.

Choosing a career in software is similar to starting a journey on becoming a grand master in martial arts. Both require constant discipline, humility, and honesty as well as to see opportunity when they arise. In both cases, the best practitioners will take on challenges that push beyond their limits and discover themselves.

You can write software, create software, and build software but most of all you have to time software.

The time to imagine comes in the busy daily life of walking in the streets, sitting at a coffee shop or lifting weights at the gym. I need external stimulation to create, imagine and think designs throughout. Hopefully, with advances in mobile technologies, there seem to be a trend for nomadic lifestyle and a recognition that sitting in a cubicle can kill the productivity of even the most motivated contributors.

The time to write is associated to the late hours of the night. Complex creative tasks to transfer ideas into writing require quiet uninterrupted hours that today are usually found at nighttime. I haven't found any better way to explain it as Paul Graham in Maker's Schedule, Manager's schedule. Note that to be on a night schedule is not without trouble. I live in San Francisco, a great city located on the west coast with a temperate climate all year long. Those two facts together mean that an important part of the population lives on the New York Stock Exchange schedule, which wakes up very early. Apartment buildings are usually built with thin walls and are definitely not sound proof. A major issue that rapidly became apparent to me was how to balance work and sleep during the few quiet uninterrupted hours of the night.

Software matures and with it comes the time of release. All is done and what remains need to be polished and finished. At that time, communication between all contributors is the most intensive. Every detail needs to be looked after, every outstanding issue resolved. The time of release is when hard facts force their way into the equation. A successful release relies on pragmatic inventive people and involves all hands on deck for long working shifts. This has an extensive impact on bodies, minds and families. That's why, as it looks like software approaches the time of release, it is important to pick a date, a duration and a place for all hands to show up. I think the talk of Theo de Raadt on releasing OpenBSD is quite educative in that regard.

As the time of release fades away, comes the time of disbanding. Each contributor soon looks forward to the next challenge. Like the clouds in the sky, Software and its practitioners are always changing shapes. They come together for a while to solve an interesting challenge, and then disband as other groups form to solve new challenges.

photo credit: JD Hancock (cc)

by Sebastien Mirolo on Tue, 1 Sep 2009