Archive
Double Whammy
Five Principles
Watts Humphrey is perhaps the most decorated and credentialed member of the software engineering community. Even though his project management philosophy is a tad too rigidly disciplined for me, the dude is 83 years young and he has obtained eons of experience developing all kinds of big, scary, software-intensive systems. Thus, he’s got a lot of wisdom to share and he’s definitely worth listening to.
In “Why Can’t We Manage Large Projects?“, Watts lists the following principles as absolutely necessary for the prevention of major cost and time overruns on knowledge-intensive projects – big and small.
Since nobody’s perfect (except for me — and you?), all tidy packages of advice contain both fluff and substance. The 5 point list above is no different. Numbers 1, 4 and 5, for example, are real motherhood and apple pie yawners – no? However, numbers 2 and 3 contain some substance.
Trustworthy Teams
Number 2 is intriguing to me because it moves the screwup spotlight away from the usual suspects (BMs of course), and onto the DICforce. Watt’s (rightly) says that DIC-teams must be willing to manage themselves. Later in his article, Watts states:
To truly manage themselves, the knowledge workers… must be held responsible for producing their own plans, negotiating their own commitments, and meeting these commitments with quality products.
Now, here’s the killer double whammy:
Knowledge worker DIC-types don’t want to do management work (planning, measuring, watching, controlling, evaluating), and BMs don’t want to give it up to them. – Bulldozer00
Besides disliking the nature of the work, the members of the DICforce know they won’t be rewarded or given higher status in the hierarchy for taking on the extra workload of planning, measuring, and status taking. Adding salt to the wound, BMs won’t give up their PWCE “job” responsibilities because then it would (rightfully) look like they’re worthless to their bosses in the new scheme of things. Bummer, no?
Facts And Data
As long as orgs remain structured as stratified hierarchies (which for all practical purposes will be forever unless an act of god occurs), Watts’s noble number 3 may never take hold. Ignoring facts/data and relying on seniority/status to make decisions is baked into the design of CCHs, and it always will be.
It’s the structure, stupid! – Bulldozer00
DIC In A Box
I’ll wager $0 cents that 99% of corpo America institutes some kind of (yawn) standard DIC-in-a-box compensation system as shown in the figure below. Why? Because that’s what the Sloan, Wharton, and other “elite” B-schools say is the “optimum” motivational system, of course. Plus, it’s the safest and easiest way to reward the DICforce. What box are you in, fellow DICster? If you’re a BM, you’re unboxed at the mysterious and unrecorded level N+1, where there is no $Max, right?
Check out the two radical, but non-theoretical, compensation systems in place at these two real and deviant orgs:
According to “normal” business criteria, which are profit and revenue growth, Fog Creek Software and Semco must be considered successful companies, no?
What kind of innovative compensation system does your company use?
The Art Of Rationalization
A major defense mechanism that all human beings develop over time is the art of rationalization. A perpetrator (like me and you?) of “bad” behavior who doesn’t want to be held accountable for his/her behavior always uses the skill of rationalization to disconnect and distance him/herself from personal feelings of guilt and to convince others that the manifest behavior was “noble and just”. Street smart politicians, corpo managers, so-called leaders, and over-educated experts are extremely clever and highly skilled rationalizers. They’re at the top of Everest.
“Half of the harm that is done in this world is due to people who want to feel important. They do not mean to do harm… They are absorbed in the endless struggle to think well of themselves.” – T. S. Eliot
Hitler is perhaps the ultimate example of a supremely skilled rationalizer. He not only convinced himself that the atrocities he committed against mankind were noble and just, this dude convinced an entire nation so effectively that “his” people deified him. Ominously, in many orgs around the globe, millions of little Hitlers operate unfettered. They perpetrate their “bad” behavior on their fellow human beings while (astonishingly) being rewarded for it. Blech!
Open Loop
I’m currently working on a really exciting and fun software development project with several highly competent peers. Two of them, however, like to operate open loop and plow ahead with minimal collaboration with the more disciplined (and hence, slower) developers. These dudes not only insert complex designs and code into their components without vetting their ideas before the rest of the team, they have no boundaries. Like elephants in a china shop, they tramp all over code in everybody else’s “area of ownership”.
“He who touches the code last, owns it.” — Anonymous
Because of the team cohesion that it encourages, I’m all for shared ownership, but there has to be some nominal boundary to arrest the natural growth in entropy inherent in open loop systems and to ensure local and global conceptual integrity.
Even though these colleagues are rogues, they’re truly very smart. So, I’m learning from them, albeit slooowly since they don’t document very well (surprise!) and I have to laboriously reverse engineer the code they write to understand what the freak they did. Even though feelings aren’t allowed, I “feel” for those dudes who come on board the project and have to extend/maintain our code after we leave for the next best thing.
Three Types
One simple (simplistic?) way of looking at how orgs of people operate is by classifying them into three abstract types:
- The Malevolent Patriarchy
- The Benevolent Patriarchy
- The Meritocracy
Since it’s so uncommon and rare to find a non-patriarchically run org (which is so pervasive that the genre includes small, husband-wife-children, families like yours and mine), I struggled with concocting the name of the third type. Got a better name?
The figure below shows a highly unscientific family of maturation trajectories that an org can take after “startup”. The ubiquitous, well worn path that is tread as an org grows in size is the Meritocracy->Benevolent Patriarchy->Malevolent Patriarchy sojourn. Note that there are no reverse transitions in any of the trajectories. That’s because reverse state changes, like a Benevolent Patriarchy-to-Meritocracy transformation, are as rare as a company remaining in the Meritocracy state throughout its lifetime.
The state versus time graph below communicates the same information as the state machine family above, but from a time-centric viewpoint. Since “all models are wrong, but some are useful” (George Box), the instantaneous transition points, T1 and T2, are wrong. These insidious transitions occur so gradually and so slooowly that no one, not even the So-Called Org Leadership (SCOL), notices a state change. Bummer, no?
Push Back
Besides being volatile, unpredictable, and passionate, I “push back” against ridiculous schedules. While most fellow DICs passively accept hand-me-down schedules like good little children and then miss them by a mile, I rage against them and miss them by a mile. Duh, stupid me.
How about you? What do you do, and why?
Stewardship
In “Stewardship: Choosing Service Over Self-Interest“, Peter Block logically and unemotionally exposes the warts of patriarchical management and promotes the concept of stewardship as a much needed replacement for it. Check out these gems:
The antidote to self-interest is to commit and to find cause. To commit to something outside of ourselves. To be part of creating something we care about so we can endure the sacrifice, risk, and adventure that commitment entails. This is the deeper meaning of service.
When patriarchy asks its own organization to be more entrepreneurial and empowered, it is asking people to break the rules that patriarchy itself created and enforces.
Stewardship is the willingness to hold power, without using reward and punishment and directive authority, to get things done.
Many managers open the door to their employees, and no one walks through it. (BMs love when no one from below confronts them).
At the heart of entitlement is the belief that my needs are more important than the business and that the business exists for my own sake. (BMs always think this way).
At some point each of us has to discover that our self-interest is better served by doing good work than getting good things.
“Are you here to build a career or to build an organization?” has to be clear and without hesitation…we are here first to build the organization.
“You are teaching revolution to the ruling class.” The phrase stayed with me. There is something both unsettling and very true about it. The truth is that we are, in fact, talking about a revolution. Revolution means a turning. Changing direction. The act of revolving. It means the change required is significant, obvious even to the casual observer. Obvious, for example, even to customers. It is more comforting to talk about evolutionary change. Evolutionary change means that everything is planned, under control, and reasonably predictable.
Getting better at patriarchy is self-defeating. Having one group manage and one group execute is the death knell of the entrepreneurial spirit. (BMs ignore this).
The notion of management prerogatives disappears. There is no privileged class of people. Everyone does work that brings value to the marketplace. And everyone should do some of the core work of the organization part of the time. (BMs have no idea how to perform core work).
Measure business results and real outcomes, stop measuring people’s behavior and style in getting there.
The trick here is to be accountable without being controlling. Patriarchy has always justified control on the basis of accountability.
Overhead costs are an interesting one. We are very verbal about the costs of direct labor. There is much less information on the cost of field overhead or, especially, home office overhead charges and what they consist of. (BMs think they are worth every overhead penny that they consume).
We have been swinging between centralization and decentralization for decades, with our patriarchal method of governance remaining unscathed.
Systems are usually designed to control people, not to give those close to the customer information to make good decisions for the business.
Groups that invent, design, produce, market, sell, and deliver the product or service are the line functions. The line functions are what are referred to in this book as the core work teams or core workers. (These are the DICs).
The main limitation of a functional structure is that it does not react well to the customer’s need for quick and whole-system oriented solutions.
If you insist on having an appraisal process, let people be appraised by their customers. This means bosses will be appraised by their subordinates. (BMs think subordinates have no right to appraise them).
Everyone likes the idea of pay for performance, but most of us have rarely experienced it. We most often get paid on the basis of how our boss evaluates us. This is more accurately called “pay for compliance.”
A demand for measurement is an expression of doubt and lack of faith.
Middle managers who made a living planning, organizing, and controlling are no longer needed and, in fact, get in the way. If they cannot now answer the question of what real value they add to their unit, then perhaps they are no longer needed. (LOL!)
Victims are strong believers in patriarchy, they are just angry that they are not the patriarchs. (Victims = DICs like you and me).
We replace coercion and persuasion with invitation.
At nights and on weekends we cry out for human rights and freedom of speech, and then we go to work and become strategic and cautious about our every word for fear we will be seen as disloyal or uncommitted.
Of course, since Block’s views align closely with my own, reading the book got me all juiced up. I found myself rooting for him and constantly saying to myself: “Wow, I wish I’d thought of that!”.
Work Life Balance
Since I develop software for a living, I’m not fully on board with Richard Stallman‘s radical views regarding free software. However, in an interview with the author of the book “Making It Big In Software” (which is pathetically patronizing and patriarchical – so don’t buy it), Richard answers the question:
How do you achieve a work-life balance? How do you keep your software life from dominating everything?
with
Why would I want to do that? ….. This is not just a pastime and not just a job. It’s the most important thing I know any way to do. I’m proud of it, and when I achieve something, I am very satisfied. It should be the main focus of my life, and it is.
I’m on board with that. I go on week-long fishing, golfing, and Mardi Gras jaunts, but other than that, I love specifying, architecting, designing, writing, and testing software. I feel the same way about what I do as Richard does about his passion.
How about you? Is the line of demarcation between your work and your life blurry, or fine? Do you think it’s “bad” if someone doesn’t clearly distinguish between “work” and “life”?
Cppcheck Test Run
Since I think that a static code analyzer can help me and my company produce higher quality code, I decided to download and test Cppcheck:
Cppcheck is an analysis tool for C/C++ code. Unlike C/C++ compilers and many other analysis tools, we don’t detect syntax errors. Cppcheck only detects the types of bugs that the compilers normally fail to detect. The goal is no false positives.
After the install, I ran Cppcheck on the root directory of a code base that contains over 200K lines of C++ code. As the figure below shows, 1077 style and error violations were flagged. The figure also shows a sample of the specific types of style and error violations that Cppcheck flagged within this particular code base.
After this test run, I ran Cppcheck on the five figure code base of the current project that I’m working on. Lo and behold, it didn’t flag any suspicious activity in my pristine code. Hah, hah, the last sentence was a joke! Cppcheck did flag some style warnings in my code, but (thankfully) it didn’t spew out any dreaded error warnings. And of course, I mopped up my turds.
Because of the painless install, its simplicity of use, and its speed of execution, I’ve added Cppcheck to my nerd toolbelt. I’m gonna run Cppcheck on every substantial piece of C++ code that I write in the future.
I want to sincerely thank all the programmers who contributed their free time to the Cppcheck project for the nice product they created and unselfishly donated to the world. You guys rock.
Don’t Sign That Check!
When someone presses your buttons and tries to insult you or your strongly held beliefs, you don’t have to automatically fall into a defensive position and start your own retaliatory offensive onslaught. It’s like the perp has written out a check from your checkbook, but your signature is required for him/her to cash it in.
The trick is to realize the meteoric rise in emotional temperature before your ego, or what Eckhart Tolle calls the pain body, takes over the steering wheel. Alas, even knowing this, I have the hardest time keeping the cap on the pen.












