Thursday, October 30, 2008

Stackoverflow

Joel Spolsky talks about stackoverflow.com in this Inc.com article and what he would have done to screw it up if he had been more involved. Real interesting read.

Wednesday, October 29, 2008

Page redirect in python

from: http://mail.python.org/pipermail/python-list/2001-March/075911.html

how to do a web page redirect in python:

print "Location: http://your.safe.url\n\n"


Tuesday, October 07, 2008

Is the Hourly Model Broken? with an answer.

I answer sogrady's question "Is the Hourly Model Broken?" thus:

I look at things this way:

All money (the whole of all the cash available today worldwide) is the future value of monetizeable labor (ml). This in turn is the product of human effort (he), skills (s), and tools (t). For this nifty equation:

ml = he (times) s (time) t

Note that there is no "time" element. It is assumed in the "human effort part". Also, skill includes knowledge.

(skill is a multiplier, so unskilled but not impaired: skill = 1)
(tools is a multiplier, so untooled but not impaired: tools = 1)

Note that tools include material (such as ore, wheat, flour, paper, whatever) and actual tools (computers, hammers, image-editors, trucks and airplanes, etc)

Note that skills include physical and mental abilities, as well as knowledge.

Now, tools are bought my monetized labor, so this creates a recursive equation:

tools = ml = he (times) s (times) t

and eventually leads to

tools = ml = he (times) s

So ultimately tools can be reduced out of the equation.

Which means money is human effort multiplied by skill.

Now, human effort is the activity that performs an output.

Skill is something that applied to human labor allows the reduction of the amount of time used to complete the activity, and/or increase the quality of the output, or even allow the output to be created.

For example, someone with poor English composition skills would take a very long time to write a analysis paper on Virtualization in 2008, regardless of the amount of effort expended. Someone with great English composition skills would be produce that output in much less time. Someone with no knowledge of computers, regardless of English composition skills, might never be able to produce the output.


The hourly model assumes a fixed skill level, and measures output in amount of effort over time.

This model is flawed for information technology because skill varies widely and a very skilled person could produce with very little effort (time) what an average person might take weeks to do.

So you need to stop thinking of "hours" worked, but rather of units of output. Since in the information age, you cannot readily standardize on what a unit is (A quip? A paper? A blog comment? A remark in a call? A reference to your company in the WSJ? Attending a conference?) you end up having to lump these things into "What Analysts Do" (conveniently initialized as "WAD") and applying an arbitrary measure such as hours for billing purposes.

I say create a new billing term such as Work Unit (WU). In your contract, instead of "number of hours included" put " number of Analyst Work Units included" and use those up as you go in the month, then summarize:

Work Units expended from 9/1/2008 to 10/1/2008

Blogging presence: 400
Conference Calls : 1600
Report Preparation: 2800
Report Delivery: 900
Direct converstations with Company empplyees: 800
Twitter: 700
Facebook: 600
Friendster: 500
Digg: 250
Press Releases: 2500
etc: 900
etc: 400
etc: 40

Then, you review that with the client. If they want you to do more or less of each type of category, discuss strategy, tactics, and adjust.

Try to expend all "available work units per month", or roll them over (to accumulate for big projects). Adjust monthly billing to client to reflect their usage.

Finally, don't go crazy on the minute tracking. Ballpark it. The analyst needs to be fair, but who cares if 8 blog comments are worth 320 work units? Are then individual blog comments each worth 40 points? Not really. One might be long and insightful and worth 250, the other 7 might be simple me-toos.

Makes sense?

Monday, October 06, 2008

jEdit MetalColor plugin thank you.

A big thank-you to Jocelyn Turcotte for making the MetalColor plugin for jEdit. Works great!

On the Super Geeks and Management

A response to Simon Stapleton's question:


@Chris - how much of the problem is caused by management challenge (ie. how do we manage geeks), and how much of is social (ie. how do geeks fit into society)?

@Simon:

This is a very heavy subject. The management challenge is that the geeks are in many ways much smarter than management, much more logical, much more rigorous in their thinking. The geeks operate in the Real World much more than management. Technical geeks are very good at knowing what can and what can’t be done in the physical world. They are closer to the metals, so to speak.

Management is more into what can and can’t be done in the social world, the human interaction, human motivation arena.

In the world of programming and hardware, the laws of physics absolutely dictate. There is no getting around them. For programmers specifically, the ones and zeros are immutable. They are subatomic particles. There is no getting around them. The trick is to take these ones and zeros, and make smart applications out of them. This requires rigorous thinking.

As Brian Kernighan wrote: “Controlling complexity is the essence of computer programming” (from http://www.faqs.org/docs/artu/ch01s06.html).

There is a black-and-whiteness to geekdom that’s hard to avoid. It either works or doesn’t. It either compiles or doesn’t. It either conducts current or doesn’t. There’s not a lot of gray area. In management, however, it’s all grey areas; nuances upon nuances. It’s a balance of power, where neither side is either right or wrong, where people measure effectiveness by the ability to influence by the gentlest of prodding. Geeks aren’t about that. The world of geeks is cut and dry.

Now, society needs geeks. Someone invented fire, the wheel, the boat, the sword, the bow, the nuclear reactor. These are all geeks. Look at Einstein: He was downright weird. Right, but weird. Deep down, society respects the geek, because it needs it. The geek is the guy who tinkers and comes up with what makes life easier. Management may have the idea of coinage, but the guy who figured out how to make the actual coins, he’s the geek. But geeks are not especially social company.

The problem with managing geeks is that geeks explore. Exploration is a faith-based process. Faith in the ability of the human mind to come up with concept and apply them to the real world. Now how do you quantify that in dollars? It’s really hard to put in a projection, a simulation, a project plan. What the geek really says when he says “I’ll look into it” is that he is going to rely on the unexplainable abilities of his brain to generate good ideas to solve the problem. He will rely on his past experience, his know-how, shall we say, to solve the problem. Can he write a manual of how that process works step by step? No.

When unshackled from the chains of management process, and keeping to his own rigorous thinking and mental rational triage, he will much more effectively identify optimal real-world solutions that address real-world problems.

The process that management would place on the geek is but a pale shadow of the geek’s own logical thinking capabilities.

And since the geeks are already some of the smartest people on the planet, how can business school graduates possibly come up with something better?

This is why they are generally disregarded by real geeks as incompetent and meddlesome.

Now, why do business people insist on fostering processes on the geeks? Because it works in manufacturing and fast-food. Process-lovers think that written-down, formal procedures are the ultimate in “management”. Geeks don’t. Geeks rely on the power of the trained human brain. And when the disagreement is framed this way, most can readily agree that the geeks just might be right.

Essentially, geeks self-manage. Placing management on them only frustrates everyone involved, and leads to sub-optimal performance.

SO this is my answer: Geeks self-manage. Traditional management doesn’t work on geeks.

Friday, October 03, 2008

Comment in the AIG forum at yahoo.

Same here. 800B USD is too much money to spend on something that has a marginal chance of working. Fanny Mae, Freddy Mac, Bears Stears, AIG, WAMU, and Wachovia action hasn't stopped the slide, what makes you think eight hundred measly billion dollars if going to reverse the trend? Better for the US Government (the People) not to waste all that money (a substantial portion of which would go to foreign investment houses, and the rest will be used most inefficiently) but keep it to fund work projects like in the New Deal, and to fund education projects and state services. You realize how many billions a year it will take to service that debt? $50B a year just in interest! The Bush economy has been based on borrowing from the future to pay for the present. Eventually, though, the interest on the debt overtake you and you have to file for bankruptcy. You want the US govt to go bankrupt? It will if there is a depression and it carries 2 trillion in debt. It will either be: service the debt, or pay soldiers payroll. Not a good choice.

Assume there's going to be a severe recession. Property prices are still about 50% overpriced. Keeping them artificially high through a bailout will mean less mobility and flexibility long term for the US workforce (too high mortgages, not enough money to save and spend; can't sell the house, can't move to take a better job).

Let the house of cards fall, but keep the cash to rebuild something else after that. If you burn the cash now, it will be a much bigger disaster, much longer in recovering. (My wife is Japanese. It happened to their country 1989-2006. It wasn't pretty for the common salaryman. You wonder why they work until 10 pm every single night? They had to to meet expenses.)

Thursday, October 02, 2008

Barbara Boxer and Diane Feinstein are not listening to me.

They voted yes to the $700B, no, make that $800B bailout in the Senate, despite the fact that the American public is vociferously opposed to their spending our money that way. This only means that they are not listening to us, that they are not listening to me.

So, this is my personal guarantee that come next elections, I will not vote for either of them.

My House rep Brad Sherman is earning brownie points big time with his opposition to the bailout. He can expect my support in future elections.

Check who your reps are at this handy locator.