Thursday, January 20, 2011

The Art in Conception


Once you have sold a vision and made the commitment on behalf of yourself (or your staff) to actually create a product, the magic of conception unfolds. Somewhere deep in your conscience you have the basic concepts of how the final product will look and behave -- in other words you've got the general parameters of a target -- but how will you get there?

Rather amazingly in our modern gadget-driven world, the best approach is still to sit quietly in a nice sunny room with a window, a pencil, and a pad of paper, and begin sketching. Draw out your concept, write down your concerns, and show all of the pieces and how they relate to one another. Make lists of the things that you need to store.

Then you're ready for some more presentable modeling. I usually like to start with three diagrams: a state model, a sequence diagram, and either an entity-relationship diagram (if you're focusing more on the data structure) or a UML diagram (if you're focusing more on the objects). The purpose of all this however isn't actually to convince anybody of anything, but rather to help clarify your own thinking and to pique new insights.

Now put the diagrams down and go out for a walk. Or better yet do the diagrams on a Friday and spend the weekend exploring around town.

On Monday look at your drawings with fresh eyes. What did you overlook? Things always turn out to be more complicated than you initially anticipated. Who do you need to talk to in order to clarify matters? Are there more robust ways to create your solution? Something that might be more flexible?

This first couple weeks of a project are magical but they are also a bit frightening. We make architectural decisions that fairly rapidly get set in concrete. So don't rush yourself through this aspect of design -- consider all of the possibilities. Then after you've nailed your design parameters comes the real stickler, user interface design.


Saturday, November 20, 2010

The Art in a Demur


It doesn't happen too frequently, but every once in a long while you will get partway into the design stage of a project and run into political interference under the dreaded guise of "company policy." It goes against company policy to purchase abc. It's against the policy to outsource this. Et cetera. And in your heart and in your experience you know that the manner you had planned is the correct method, regardless. For times like this keep this little story in your back pocket; it's a handy urban legend I use to employ just for the purpose.

-----


Back in the 80's a gentleman gained control of an airline in an effort to turn them around from bankruptcy. On one of his earliest flights on his new airline, he flew into Washington D.C. during the middle of winter to meet with federal regulators at the FAA. After his meeting, he boarded a passenger flight on his airline again to head back home. It had sleeted earlier and was now quite cold; the plane sat grounded on the runway. After half an hour, feeling frustrated, the new owner motioned to the stewardess and asked her what the problem was. She explained that, due to the inclement weather, the wings were covered with ice, so they couldn't take off. The gentleman identified himself as the new company president, and asked to leave the plane.

They reconnected a portable stairway exit ramp, and the owner grabbed his carry-on luggage and walked down the stairway and onto the tarmac. He approached the crew chief, identified himself as the new company president, and asked what the problem was. The crew chief explained the icing problem. "Well," the new president answered, "that's easy to fix." He opened up his carry-on bag and took out a portable cordless hair dryer. "Here", he motioned with the hairdryer on, back and forth over the wings. "Just use this." He handed the mechanic the hair dryer and reboarded the plane. After a half hour of de-icing, the plane was able to take off and the new president flew back home. The chief mechanic spread word of how he had been approached by the new president and given instructions.

Sometime later in the year, in the middle of the summer, the new president had occasion to once again visit Washington D.C. After his meeting, he boarded his airline on a passenger flight to head back home. He sat on the plane, waiting for it to leave the terminal, growing more and more impatient. When he glanced out the window, he saw a mechanic, standing on the top of a four-step rollable staircase, gliding a hair dryer back and forth over the wing. He motioned for the stewardess, identified himself, and asked to leave the plane. Once on the tarmac, he walked over to the mechanic, and being angry and in a rush, without even a hello, he tapped the mechanic on the shoulder and asked "what in the hell are you doing?". The mechanic turned to him and said "sorry for the delay sir, but it's company policy".

-----


The moral of the story of course is that just because an important person does something, it doesn't make it a policy. And an action that might make sense to perform some times is not universally correct. So listen to the wisdom in a company policy, but use your noggin and demur when appropriate. (ed. note: I checked with the owner mentioned in the story and he assured me it was entirely fiction).


Saturday, September 18, 2010

Artistic Herding


At some point in your career you may be presented with the choice, opportunity or responsibility of joining the technical management team. Most folks who have an ambition toward this (and who are competent people with good technical skills) may find themselves hitting their early management strides by their middle 30s.

The appearance and draw of a management position looks radically different when you're on the climb up however, than when you are actually saddled with the responsibility. Sometimes you hear folks give the old warning "be careful of what you wish for." It's not however, actually as severe a misgiving as all that. It's more like crossing the razor's edge between two distinct and incompatible points of view.

While you're on the upward climb a management position appears as though it could be a good place to share your knowledge and discoveries about how to be a creative professional. Once you're actually there however you often find that your subordinates aren't particularly interested in your opinions, and secondly that you spend most of your time consumed by political positioning, "gaming", and preventing infighting.

What it all boils down to eventually though -- the real guts of the viewpoint canyon -- is a deep social and spiritual divide over the concept and purposes of "work." A simplified way to describe it is like the difference between being a successful feline and being the boarding caretaker for said herd of cats.

From the lone cat's (and lone programmer's) perspective, the objective is to keep your claws (your skills) sharp, to stay light on your feet, to be cautious and curious and aware of the changing environment. You are in a world where you need to hide the mice you discover so that other cats don't steal them. You stay coy and aloof and full of misdirection. Your concept of "work" involves a certain amount of territorialism.

From the perspective of the cat herder you just mostly want to ensure that people aren't spending all of their time picking cat fights. There is some sense of direction and movement you want to achieve, of course, but mostly you want to avoid having the cats bored to tears, sleeping on the job, or scheming for their next kill. You really just want to keep them out of trouble. Your concept of "work" is about the gestalt of your employer.

More about how a manager reconciles these viewpoints in later posts.