Man, I Love This Guy
I’m not gay (not that there’s anything wrong with that), but I love Scott Berkun. I’ve spoken about him before, and it’s time to speak about him again. Scott’s got a new book out titled “Confessions Of A Public Speaker“. Like all of his other work, it’s a funny and insightful page turner.
It’s incredibly hard to be original, but everyone has the innate capability to be authentic. Scott is authentic. Check out this quote from the new book:
“In the interest of transparency and satisfying your curiosity, I average 25–30 lectures a year. Sometimes I’m paid as much as $8,000, depending on the situation. Maybe one-third are paid only in travel expenses or small fees, since they’re selfpromotional or for causes I’d like to help. Roughly 40% of my income is from book royalties and the rest from speaking and workshop fees. So far, I average around $100,000 a year, less than I made at Microsoft. However, I work fewer hours, am free from the 9 to 5 life, and have complete independence, which is worth infinitely more. I limit travel to once or twice a month, which means I turn away many gigs; I’d prefer to have more time than money, since you can never earn more time.”
Do you think many people have the cajones to expose that amount of detail about how much money they make? I don’t. Maybe I don’t because I feel guilty that I’m an overpaid and underperforming slacker. Scott follows up that trench coat opener with:
“I also think it would be good if salaries were made public, which is why I offered my fees and income. If more people did this, the overpaid and underpaid would be visible and more likely to be corrected. Or, total anarchy would ensue and civilization would end. Either way, it would be fun to watch.”
LOL! I love that idea and I would sign up to it any day. Then I, and everyone else, especially the corpocrats that run the show, would have a reference point of relativity for determining whether or not they’re overpaid.
There’s at least one company that I know of that operates this way – Semco. I know this because CEO Ricardo Semler said so in his book “Maverick“. How about you and your company? Would you try it out? Why not? If the result turned out to be FUBAR, you could always revert back to the same-old same-old and do what everybody else in the moo-herd does.

Few people are capable of expressing with equanimity opinions which differ from the prejudices of their social environment. Most people are even incapable of forming such opinions. – Albert Einstein
Linear Culture, Iterative Culture
A Linear Think Technical Culture (LTTC) equates error with sin. Thus, iteration to remove errors and mistakes is “not allowed” and schedules don’t provide for slack time in between sprints to regroup, reflect and improve quality . In really bad LTTCs, errors and mistakes are covered up so that the “perpetrators” don’t get punished for being less than perfect. An Iterative Think Technical Culture (ITTC) embraces the reality that people make mistakes and encourages continuous error removal, especially on intellectually demanding tasks.
The figure below shows the first phase of a hypothetical two phase project and the relative schedule performance of the two contrasting cultures. Because of the lack of “Fix Errors” periods, the LTTC reaches the phase I handoff transition point earlier .

The next figure shows the schedule performance of phase II in our hypothetical project. The LTTC team gets a head start out of the gate but soon gets bogged down correcting fubars made during phase I. The ITTC team, having caught and fixed most of their turds much closer to the point in time at which they were made, finishes phase II before the LTTC team hands off their work to the phase III team (or the customer if phase II is that last activity in the project).

It appears that project teams with an ITTC always trump LTTC teams. However, if the project complexity, which is usually intimately tied to its size, is low enough, an LTTC team can outperform an ITTC team. The figure below illustrates a most-likely-immeasurable “critical project size” metric at which ITTC teams start outperforming LTTC teams.

The mysterious critical-project-size metric can be highly variable between companies, and even between groups within a company. With highly trained, competent, and experienced people, an LTTC team can outperform an ITTC team at larger and larger critical project sizes. What kind of culture are you immersed in?
What The Hell’s A Unit?
- CSCI = Computer Software Configuration Item
- CSC = Computer Software Component
- CSU = Computer Software Unit
In my industry (aerospace and defense), we use the abstract programming-language-independent terms CSCI, CSC, and CSU as a means for organizing and conversing about software architectures and designs. The terms go way back, and I think (but am not sure) that someone in the Department Of Defense originally conjured them up.
The SysML diagram below models the semantic relationships between these “formal” terms. An application “contains” one or more CSCIs, each of which which contains one or more CSCs, each of which contains one or more CSUs. If we wanted to go one level higher, we could say that a “system” contains one or more Applications.

In my experience, the CSCI-CSC-CSU tree is almost never defined and recorded for downstream reference at project start. The lack of explicit definition of the CSCs and, especially the CSUs, has often been a continuous source of ambiguity, confusion and mis-communication within and between product development teams. A consequence of not classifying an application down to the CSU level is the classic “what the hell’s a unit?” problem. If your system is defined as just a collection of CSCIs comprised of hundreds of thousands of lines of source code and the identification of CSCs and CSUs is left to chance, then a whole CSCI can be considered a “unit” and you only have one unit test per CSCI to run (lol!)
“The biggest problem in communication is the illusion that it has taken place.” – George Bernard Shaw.
In preparation for an idea that follows, check out the language-specific taxonomies that I made up (I like to make stuff up so people can rip it to shreds) for complex C++ and Java applications below. If your app is comprised of a single, simple process without any threads or tasks (like they teach in school and intro programming books) , mentally remove the process and thread levels from the diagram. Then just plop the Application level right on top of the C++ namespace and/or the Java package levels.

To solve, or at least ameliorate the “what the hell’s a unit?” problem, I gently propose the consideration of the following concrete-to-abstract mappings for programs written in C++ and Java . I think that adopting a map such as this to use as a standard communication tool would lead to fewer mis-communications between and among development team members, and more importantly, between developer orgs and customer orgs that require design artifacts to employ the CSCI/CSC/CSU terminology.


Th proposal above states that a C++ namespace or a java package should map into the lowest level element of abstract organization, the CSU. If that level of granularity is too coarse, then a class or class member function (method in Java) can be designated as a CSU, as shown below. The point, is that each company’s software development organization should pick one definition and use it consistently on all their projects. Then everyone would have a chance of speaking a common language, and no one would be asking, “what the hell’s a unit?“.

Standard CCH Blueprint
The figure below is a “bent” UML (Unified Modeling Language) class diagram of a standard corpo CCH (Command and Control Hierarchy). Association connectors were left off because the diagram would be a mess and the only really important relationships are the adjacent step-by-step vertical connections. Each box represents a “classifier”, which is a blueprint for stamping out objects that behave according to the classifier blueprint. The top compartment contains the classifier name, the second compartment contains its attributes, and the third compartment houses the classifier’s behaviors. Except for the DIC Product Development Team, the attributes of all other classifiers were elided away because the intent was to focus on the standard cookie-cutter behaviors of each object in the “system”. Of course, the org you work for is not an instantiation of this system, right?

What Would It be Like?
In this TED video, Sir Ken Robinson asks: “What would the world be like if all knowledge was instantaneously accessible to everyone at any time?” My less ambitious question is “What would the workplace culture be like if every manager, from the pinnacle of power all the way down the chain, made it his/her top (but obviously not only) priority to ensure that every one of his/her direct reports has continuous access to the tools, training, and information to get their jobs done?

Malcontents
Everyone’s heard of the stereotypical, disgruntled, malcontented, long time employee (SDMLTE) who “can’t wait to retire”. Why is this Dilbertonian image a stereotype? Because it’s so ubiquitous that it’s unquestioningly accepted by the vast majority of people as “that’s the way it is everywhere”. Well, is it? Do you really think that every organization on this earth has a surplus of SDMLTEs? Call me idealistic, but I assert “no”.
I opine that there are few (very, very, very, very, few) companies whose old warhorses, graybeards and bluehairs are uncommon, happy, content, long time employees (UHCLTE). Compared to the moo-herd of corpocracies that litter the land, these scarce diamonds in the rough have a huge UHCLTE to SDMLTE ratio. I’ll also profer that as a company gets larger, its UHCLTE to SDMLTE ratio decreases. That’s because as a company grows in size, bad management increases while great leadership decreases within the citadel walls – regardless of what the corpo stewards repeatedly espouse. Bummer.

Useless Cases
Despite the blasphemous title of this blarticle, I think that “use cases” are a terrific tool for capturing a system’s functional requirements out of the ether; for the right class of applications. Nevertheless, I agree with requirements “expert” Karl Wiegers, who states the following in “More About Software Requirements: Thorny Issues And Practical Advice“:
However, use cases are less valuable for projects involving data warehouses, batch processes, hardware products with embedded control software, and computationally intensive applications. In these sorts of systems, the deep complexity doesn’t lie in the user-system interactions. It might be worthwhile to identify use cases for such a product, but use case analysis will fall short as a technique for defining all the system’s behavior.
I help to define, specify, design, code, and test embedded (but relatively “big”) software-intensive sensor systems for the people-transportation industry. The figure below shows a generic, pseudo-UML diagram of one of these systems. Every component in the string is software-intensive. In this class of systems, like Karl says, “the deep complexity doesn’t lie in the user-system interactions”. As you can see, there’s a lot of special and magical “stuff” going on behind the GUI that the user doesn’t know about, and doesn’t care to know about. He/she just cares that the objects he/she wants to monitor show up on the screen and that the surveillance picture dutifully provided by the system is an accurate representation of what’s going on in the real world outside.

A list of typical functions for a product in this class may look like this:
- Display targets
- Configure system
- Monitor system operation
- Tag target
- Control system operation
- Perform RF signal filtering
- Perform signal demodulation
- Perform signal detection
- Perform false signal (e.g. noise) rejection
- Perform bit detection, extraction, and message generation
- Perform signal attribute (e.g. position, velocity) estimation
- Perform attribute tracking
Notice that only the top five functions involve direct user interaction with the product. Thus, I think that employing use cases to capture the functions required to provide those capabilities is a good idea. All the dirty and nasty”perform” stuff requires vertical, deep mathematical expertise and specification by sensor domain experts (some of whom, being “expert specialists”, think they are Gods). Thus, I think that the classical “old and unglamorous” Software Requirements Specification (SRS) method of defining the inputs/processing/output sequences (via UML activity diagrams and state machine diagrams) blows written use case descriptions out of the water in terms of Return On Investment (ROI) and value transferred to software developers.
Clueless Bozo Managers (BMs) and senior wannabe-a-BM developers who jump on the “use cases for everything” bandwagon (but may have never written a single use case description themselves) waste company time and money trying to bully “others” into ramming a square peg into a round hole. But they look hip, on the ball, and up to date doing it. And of course, they call it leadership.
Doing And Being
Echkart Tolle has stated that every human being has an inner purpose and an outer purpose. According to Mr. Tolle, our inner purpose is “being” and our outer purpose is “doing”. Along similar lines, Mother Theresa once said something to the effect that “the west is materially rich (from doing) but spiritually poor (from not being)”. I’m on-board with these related insights because I’ve realized them through personal experience. How about you?
A problem that I see with western cultures is that most people have their self worth totally fused with “doing”, while “being” is often disdained, looked down upon, and interpreted as sloth/laziness. There is no balance, and I’m one of those unabalanced (lol!) people. Do I have “factual evidence” to back this up? Of course not. I’m not a world renowned expert and I only speak from personal experience. Plus, I like to make stuff up.

Different Views
In all triangular CCHs (Command and Control Hierarchies), the DICs (Dweebs In the Cellar) directly create the value added outputs that sustain the enterprise. It’s management’s job (I think?) to ensure that the quality of those outputs is high enough for customers to want to buy the CCH’s products and services over competing CCHs. Of course, there are many ways to accomplish this. One is to inspect the outputs, a second is to get customer feedback, a third is to directly sample intermediate points in the value stream, and a trio of closely coupled others is to; personally descend to the cellar, observe what the DICs see, listen to what the DICs have to say regarding the issues/obstacles they face, and act “aggressively” (corpo-speak for “effectively”) to resolve those issues/obstacles. Note that the verbs, which require “hard work”, are emphasized.
The simple, dorky figure below tries to convey the difference in viewpoint between the DICs and the apex dwellers. Unlike the hierarchs, who operate freely and do whatever they want whenever they want, the DICs operate within a fragmented web of constraining “support” processes and “direction” from former DICs-turned-mini-hierarchs (picture mini-me in the Austin Powers movie franchise). Over time, since the hierarchs (and more importantly, the mini-hierarchs in training) stay away from the dirty and musty cellar and don’t do anything of substance to improve the environment, the stratification increases, the latency from raw input to value-added output increases, and the quality of output decreases. Bummer.

In CCHs with stay-at-home corpocrats, the deterioration in responsiveness and quality often gets detected at that point in time in which the real issues that are wreaking havoc are virtually unsolvable. Even then, the so-called leadership team stays away from the boiler room, speculating from afar at the causes of the performance deterioration. Out of all the methods for continuously monitoring and improving DIC performance, I assert (with no backing scientific evidence, of course) that frequent, periodic trips to the cellar to rub elbow grease with the DICs is the only true way of improving performance. Even if it’s impractical for the supreme hierarchs to do this, it’s not impractical for the mini-hierarchs, dontcha think?

My Company
After reviewing most of the “made up” BS entries that I’ve hoisted on this blog, I’ve noticed (like you, no doubt) that just about every other post either starts out as, or progresses towards, a rant against standard Command and Control Hierarchical (CCH) corpocracies and horrendous managers who delude themselves into thinking they are “leaders”. It’s funny how all freakin’ roads lead to Rome, no?
To set the record straight, I honestly don’t think that all hierarchically structured organizations are soulless and spirit crushing CCHs. One of those companies happens to be the company that I work for; the Sensis Corporation.
![]()
I’ve been at Sensis for a long time, and despite what you may have concluded from reading this blog (all 2 of you), I really do like working there. For the most part, I’m given more freedom than most to do what I do best and the list of pluses far outnumbers the list of minuses. Besides matching the standard benefits package that most other companies give their workforce, here are some of the uncommon plusses:
- A CEO that genuinely cares about the people who work for him
- Subsidized in-house cafeteria
- Subsidized, in-house gym facility
- No special executive parking spaces
- Special, named parking places for individual handicapped people
- Company-wide profit sharing when yearly sales & profit numbers are met
- Occasional company-wide barbeques
- Quarterly disclosure of the numbers to the troops
- In-house happy hours for significant achievements
- Free lunches at all-hands meetings
- Vacation rollover
- Free coffee
- Summer Hours (Friday afternoons off)
The two biggest pluses for me are:
- No layoffs in the entire 24 year history of the company’s existence and a policy that explicitly states that “no layoffs” is a top goal.
- I haven’t been fired (whoo hoo!) despite multiple exhibitions over the years of truly disrespectful behavior toward a handful of targeted “others”.
The minuses of working at Sensis are typical of any company in our industry (military and aerospace); they’re just not practiced as badly as our bigger and more stodgy peers.