Friday, December 26, 2008

Comments on "Time Management for Architects and Designers: Challenges and Remedies", by Thorbjoern Mann (part 2)

In a previous post, I discussed some thinks I learned from Dr. Mann's book, Time Management for Architects and Designers. In this post, I discuss a few other things I learned.

The Avant-Garde Trap

Mann mentions that some designers can tend toward using cutting-edge designs, or that clients want these avant-garde designs. But sometimes, a designer might do something and a customer perceives it to be avant-garde, and the customer may protest. Reading this really helped me understand why I got so much resistance to a particular design I often apply: public IP addresses on Internet servers.

I often advocate for using real, genuine public IP addresses on servers that will be accessed from the Internet. Some of my clients think this is wasteful and possibly dangerous, but they eventually build static-NAT mappings through their firewall to accomplish a similar purpose. Some people confuse using NAT with using firewalls.

For me, using public IP addresses for Internet servers is as old-fashioned as FTP. But for my clients, it's crazytalk fancy. I realized that I needed to approach this differently; I shouldn't assume that clients would bow to my old-fashioned design as "traditional", because it's not the common design they know.

Sometimes the popular, cutting-edge designs don't fit. For example, to be considered a competent network designer in 2008, you have to use MPLS.[1]

Self-Inflicted Distractions

On p.53, Mann reminded me of something I keep re-learning:

[B]ackground noise should be so unobtrusive that you actually forget it's there when you are focusing fully on the work, and only become aware of it when you are taking a break.
Other people, or machines, are one source of noise. But music is one that I sometimes do to myself. I keep learning that I may like music, but it actually works against me when I need to focus.

Work Time Chunks

Mann makes a good point about work time chunks (p.58): you need to plan to work chunks of time that match your preferences, and your attention span. Dr. Brooks at UNC-CH also discusses this in his seminar Professional Practice in Computer Science.

For example, if you like to work on one task for at least two hours, then don't schedule a new task to start every 90 minutes. Or if you prefer to work on one task for only 15 minutes at a time, then don't schedule two hours of work on it.

Wicked Problems Abound

"Most nontrivial design problems are 'wicked' to some extent . . . no solution can be claimed to be the 'right' answer or the 'correct' solution for . . . any design problem." (pp.66-67). Truly wicked problems "have no definitive problem formulation"; the more you work on them, the more likely you are to have a good solution; "have answers that are 'more appropriate' or 'less appropriate' rather than 'true' or 'false'; and among other things "do not allow for trial and error".

This has really helped me in the past year; I've had a number of interesting network and software design problems. My old tendency was to attempt to give the "right" answer, but then I chafed knowing there were downsides to that "right" answer. I have learned that there are always pros and cons in design problems. No decision is without gains and costs.

Ought Questions: Should we install a new Call Agent Cluster, or not?

From page 73:
A question such as "Should the building be located on a part of the site that has pipe clay in the soil?" relates to what the world "ought" to be like. This kind of quetsion is really the quintessential design issue. . . ."We settle such questions by discussing the merits and drawbacks of design proposals -- a process that involves debate, getting information and opinions from peple affected by similar problems, weighing the pros and cons, evaluating procedures, and using "political" decision-making methods such as voting. The position we decide upon may be a "yes" or "no," but this does not mean that one is right or true and the other is wrong or false.

Learning this has helped me immensely, because I used to labor under the assumption that I needed to make the right recommendation, and that other ideas were wrong. I believe in right and wrong -- Universal Truth, and a personal God who makes the rules. But I've decided that there's no Universally Right answer to the question of whether to use the Active Copper Pass-Through Module or the Passive Copper Pass-Through Module.

I wish some of my colleagues could learn this. We tend to make a recommendation, then get committed to it as if it's a personal matter. Then if a client decides not to follow our recommendation, we conclude they really don't want to make smart decisions.

Parallel Processing

Mann recommends keeping separate files for separate components of the project. For example, you have one file on the Problem Statement; another on the Information Search, and another file for Developing Solutions, and another on the Recommendation. Then you work on all the parts at the same time, rather than assuming they have to be done in any specific order. I think this says that Design is really a knowledge-gathering activity. You put your best, latest information in each file, then work on the problem until you run out of time.

Take Charge of Time Estimates

Because design problems are somewhat wicked, and you can continue working on them forever without ever arriving at a "final" answer, you have to "adopt the habit of [taking] "charge and replace guesswork [time estimates] with decisions about how much time you are able or willing to devote to a task." For example, if you just want my recommendation about the best software to use as a carrier email server, I can give you an answer in 30 seconds. But if you give me an hour and tell me you're planning to service 40,000 subscribers, I can give you some better analysis and information on the requirements. If you give me a few hours and tell me that thousands of recipients will be receiving copies of the same attachment, and that attachment is several hundred megabytes large, then my recommendation would change.

On the other hand, there is a minimum quality I'm willing to produce. If you want me to produce a network design diagram in 5 minutes, I may be able to throw together something, but it likely won't have much detail. It may be OK for a whiteboard discussion, but it's probably too poor to distribute as a deliverable.

[1] One VRF per residential client, anyone? Maybe if we work hard, we can make provisioning even more messy! I've seen telecom networks implement MPLS VRFs when all they really needed were subnets. In another case of MPLS planning, a telco paid extra for MPLS, but it turns out MPLS can't be used with other features they needed on their chosen hardware platform.

Sunday, December 14, 2008

Feeling Empty For Christmas

There's a catchy song by the Chrsitian group Third Day about Christmas. Here's an excerpt of the lyrics:

I want to feel Christmas, how it used to be
With all of its wonder falling on me
This season has felt so empty, oh for quite a while
I want to feel Christmas like a child

I want to see snowflakes fall to the ground
My brothers and sisters all gathered around
Singing "Away In A Manager" as we sit by the fire
I want to feel Christmas like a child

It's been so long now, I can't say
Just when I lost my way
But I'm going back to how it was
When this day meant everything
And we spent our time remembering
The baby Child born for us

The singer feels empty about Christmas as an adult. This year, I've been thinking a lot about the way I feel kinda unenthusiastic around Christmas. Aren't I supposed to be merry, and excited?

Maybe it's all just about the retail holiday. I.e., all the decorations and such are just installed to remind us we're supposed to be spending a lot. And there's a deadline for the purchases.

But this theory doesn't completely capture it. Hayden, for example, gets excited about Christmas, and like decorating. She's not the only one. Certainly people don't listen to Christmas music for a month just to get in the gift-buying mood.

And what about the sacred part? Maybe the public lights and decorations are vestiges of celebrating the Sacred Christian holiday. But it's hard to reconcile the Christmas trees and gift-giving with Jesus's birth. And why would we start celebrating Jesus' birth so far in advance? Resurrection Sunday (Easter) only gets a couple of days of effort.

So why don't I feel excited by it? And why don't I feel like I should? Why do I feel somewhat empty about it? Why does it make some people feel so grumpy about it?

I now think Merry Christmas happens when I make it happen. My expectation to suddenly feel merry and joyful about the season is irrational; there is no overwhelming Christmas Magic that makes me feel merry without my consent.

The lights, decorations, Christmas cards, gifts, cheerful music, special foods, are all things we do to create cheer. We do it for each other, and I do it for myself.

If I choose not to decorate, or not to sing Christmas music, then I won't get the cheer they engender. Nothing is going to cheer me up without my participation.

So why do people feel especially empty this time of year? I think there are two reasons: the holiday excitement -- personal and commercial -- contrasts with ordinary life. It makes ordinary life seem boring, or sad.

But another reason specific to the Northern Hemisphere is really key: it's dark out. Days are short. It's cold. Of course we're going to feel sad, whether or not it's clinically Seasonal Affective Disorder.

All these lights, special music, gifts, and sweets are one way to combat the sadness of a dark time of year. If I choose to reject the festivities, I'm rejecting something that can help me.

Yes, having a decorated cut tree in my house is a little bizarre out of context, but it's also funny and cheerful.

"I want to feel Christmas like a child" because, as a child, everybody is working to make me feel cheerful around Christmas. Everybody else is putting up the lights, and buying me gifts.

What about the Sacred part? It seems historically Christmas was placed here to replace pagan holidays involving the rebirth of the sun after the winter solstice. But it seems like a good replacement to me. The story of Jesus' birth is quite compelling, and includes several dramatic twists. It's fun to celebrate a birthday.

The seasonal festival involving lights and decorations doesn't necessarily need to be redeemed by adding a celebration of Jesus' birth. But it's good to have a time of year to commemorate the momentus event -- God's Son's arrived.

I'm arguing for personal responsibility. I'm advocating making merry. I'm in favor of keeping the Messiah, the Christ, in Christmas.

Now, who's ready to help me setup our home-made lighted J-E-S-U-S letters in the front yard?

Friday, December 12, 2008

Paying a consultant to learn

No one wants to pay a consultant to "learn on my dime". Just today, a technical consultant at another firm told me that he doesn't charge for some of the experimentation that he does.

It's not a simple determination: "Is the work I'm doing learning? Should the customer pay for this time?"

There are several factors at play.

1. The "statement of work" agreement between a client and a consultant should say something about what the consultant is expected to know. This is called the "skills" section sometimes. E.g., "This project will be performed by an engineer with Cisco router management experience." But if part of the project involves work not covered by the Skills section, and the consultant has to figure something out, should the client pay? Or what if, using our example, the Client is using a Cisco router with software newer than the consultant's experience, and a feature (say, MPLS), and the Consultant is new to that. What should be charged to the client?

2. Normal employees charge (collect a salary) to learn all the time. In fact, most firms offer some sort of training or mentoring. So should an outside contract consultant never charge for time spent learning?

3. What is acceptable research? If you hire a lawyer to litigate a case, you'll pay for the time it takes for him to research case law. Is the lawyer learning on your dime? Is this immoral? If you ask a Consultant to configure a brand new network protocol, is it reasonable for them to read up on the configuration for that protocol? If your consultant has configured SQL Server, but you decide to use Oracle, should you expect him to gain Oracle expertise without charging you?

4. What role does Certification play? Suppose a consultant has a CCIE certification, and you hire him to help design and configure a router. If he needs to do research, what does that mean? You can be sure it's something a CCIE can not know. If you (as the customer) have confidence that a CCIE certification is valuable, then perhaps you will trusts that any research done by a CCIE is acceptable. But is that really true?

5. Ever-changing software is relevant. If your consultant knows the Acme Packet 4.x code, but you need something done using 5.x features, is it reasonable for him to investigate the software differences? Is that "learning on your dime"? Now consider that any real system has software from many sources -- tens or hundreds -- and a new version of one of those software packages is probably released every day.

Wednesday, December 03, 2008

Seven Like-Minded Primates

From the New York Times Article from December 4, 2008, "Conservatives Expected to Split Episcopal Church":

Conservative leaders in North American say they expect to be granted approval for their new province from at least seven like-minded primates, who lead provinces in the Communion’s Southern hemisphere — in Africa, Australia, Latin America and Asia.

Check the Date on your Salsa

I'm going to pass on Mexican food for a while.