Archive

Posts Tagged ‘linkedin’

Woodstock Refugee

November 24, 2010 4 comments

I’ve taken some flak from some prim and proper people for the dorky, woodstock-refugee-like pic I’ve posted on my LinkedIn.com profile:

(In case you’re interested, that’s actually a pic of me on Bourbon Street down in Nawlins during Mardi Gras.) One of the comments that I’ve received on this totally “unprofessional” photo is:

Are you looking for companies who want to hire clowns?

LOL! Well, yeah, I am. If I do want, or have, to start looking for a new company to work for, I don’t want to draw attention from any big and stodgy institution whose HR department members think pictures are important. You see, I think those types of orgs are probably stuck in 1920’s FOSTMA mindsets and I’d rather not spend 40+ hours a week working for them. Of course, this tactic will drastically reduce the number of opportunities available to me, but so what. I’ll take my chances and change tactics if I absolutely have to.

whatIsThisFor

November 23, 2010 4 comments

Check out this C++ code fragment at the beginning of  the MessageBase class template definition:

After staring at it for a few minutes, I was able to distill the essence of the idiom(???) used in the code as:

I can’t figure out why B was designed as a class template and not just a plain ole’ class that simply inherits from A (see below). It reminds me a little of the CRTP idiom but it’s not the same. Would you happen to know what problems it is intended to solve? Is it some template meta-programming technique?

Where Elitism Is Proper?

November 22, 2010 4 comments

Ever since I stumbled upon Fred Brooks‘s meta-physical idea of “Conceptual Integrity” in his classic book, “The Mythical Man Month“, I’ve strived mightily to achieve that elusive quality in the software work that I do. Over twenty years ago, Mr. Brooks stated that the greatest conceptually integral designs were the product of one, or at most two, human minds. Fred asserts that his “one or two minds” principle still holds true today:

My fictional alter ego, Bulldozer aught aught, would’ve re-worded the beginning of the statement to “Most, if not all… “, but Fred’s message stills rings loud and true.

According to Fred, in today’s world of exponentially growing complexity and team sizes, conceptual integrity is more difficult to achieve than ever:

Why the increased difficulty? Because as a team grows larger, more minds will collide with each other to express and manifest their incompatible design ideas. Big projects can, and usually do, devolve into “design by committee” fiascos where monstrously over-complicated contraptions get created and foisted upon the world.

Ok, Ok, you say. Enough disclosure of the pervasive problem – we get it Yoda. What’s the solution, bozo? Here it is:

Even though it sounds simple to enact this policy, it’s not. The role of “Chief Designer” in a group of highly educated, independent thinking people is fraught with peril. It requires a dose of discipline imposition that can be perceived as “meanness” to external observers. Too much perceived meanness can cause a supporting team to morph into an unsupporting team and lead to the ejection and ostracism of the chief designer. Too little meanness and the possibility of achieving conceptual integrity goes right out the window – it’s Rube Goldberg city. Bummer.

Does your org explicitly recognize and implement the “Chief Designer” role – which is not the same as the softer, less technical, more politically correct, and more administrative “software lead”, “project manager”, “product manager”, and…….. “software rocket-tect” roles? If your org does formally implement the “Chief Designer” role, are your chief designers kept on a tight leash by higher ranking BUTTS, BMs, BOOGLs, SCOLs or CGHs that have no idea what “conceptual integrity” means? Worse, do your “Chief Designers” (again, if you have any) handcuff themselves in order to increase their promotability?

I’m not into corpo caste systems or stratified command-control hierarchies and I struggle endlessly to fight the instinct to play the “I’m smarter than you” game, but I agree with Mr. Brooks when he asserts that world class product design is one of those rare situations…..

How about you? Where do you stand…… or sit?

Note: The snippets in this blarticle were copied and pasted from Fred Brooks’s “The Design Of Design” pitch at the Construx Software Executive Summit. You can download and study it in its entirety from here:  Summit Materials.

Desire

November 21, 2010 Leave a comment

Since the color of the sky in my world is purple, I think that many people, including me(?) (but not you, of course), want to position themselves where they can maximize their compensation while doing as little as possible and appearing to “others” as though they are working their ass off. If, for some strange reason you believe this is true, why is that? Hell, I don’t know – that’s why I’m asking you!

Categories: miscellaneous Tags: ,

N Minus One Half

November 19, 2010 Leave a comment

Other than chief patriarch, where do you think the best position is on a stratified N + 1 layer corpo org chart? Consider the N – 1/2 position. You know, the coveted “dotted line” reporting position where, for some strange reason, the lowly paid and respected exec admin is always listed with the exalted, treasury raiding conciglieres.  Here’s why it’s my top choice for you to aspire to:

  • By definition, and probably not by your accomplishments (if any), you’re over compensated since you’re so high up on the chart.
  • You don’t have any direct reports or whining sub-hierarchies of people under you to placate.
  • You have the job security that independent, highly paid consultants (who may actually add value) at your level of so-called expertise don’t have.
  • You have unfettered access to the corpo monarch. This gives you virtually unlimited time to kiss arse.

So, are you gonna go for it? Not me. Just give me something interesting to work on with a group of competent people and a PHOR project manager who gets the RIRPRT. Oh, and of course, pay me fairly too.

Our Stack

November 18, 2010 Leave a comment

The model below shows “our stack”. It’s a layered representation of the real-time, distributed software system that two peers and I are building for our next product line. Of course, I’ve intentionally abstracted away a boatload of details so as not to give away the keys to the store.

The code that we’ve written so far (the stuff in the funky green layers) is up to 50K SLOC of C++ code and we guesstimate that the system will stabilize at around 250K SLOC. In addition to this computationally intensive back end, our system also includes a Java/PHP/HTML display front end, but I haven’t been involved in that area of development. We’ve been continuously refactoring our “App Support Libs” layer as we’ve found turds in it via testing the multi-threaded, domain-specific app components that use them.

The figure below illustrates the flexibility and scalability of our architecture. From our growing pool of application layer components, a large set of product instantiations can be created and deployed on multiple  hardware configurations. In the ideal case, to minimize end-to-end latency, all of the functionality would be allocated to a single processor node like the top instantiation in the figure. However, at customer sites where processing loads can exceed the computing capacity of a single node, voila, a multi-node configuration can be seamlessly instantiated without any source code changes – just XML file configuration parameter changes. In addition, as the bottom instantiation shows, a fault tolerant, auto-failover, dual channel version of the system can be deployed for high availability, safety-critical applications.

Are you working on something as fun as this?

We’ve All Had Those Days

November 17, 2010 Leave a comment

OMG! Last night, when I was sittin’ near the fire in my dinner jacket, sippin’ my glass of cognac, smokin’ my pipe, pettin’ my dog, and intently reading  Sutter & Alexandrescu’s classic “C++ Coding Standards: 101 Rules, Guidelines, and Best Practices“, I came across this curious passage:

Can you remember a time when you wrote code that used the standard library (for example) and got mysterious and incomprehensible compiler errors? And you kept slightly rearranging your code and recompiling, and rearranging some more and compiling some more, until the mysterious compile errors went away, and then you happily continued on—with at best a faint nagging curiosity about why the compiler didn’t like the only-ever-so-slightly different arrangement of the code you wrote at first? We’ve all had those days…

What on earth are they talking about? That’s never happened to me. What about you?

The Sparfish

November 16, 2010 3 comments

On a tip from HCL Technologies CEO Vineet Nayar, I purchased and started reading “The Starfish And The Spider“. In the book, authors Brafman and Beckstrom define seven principles of decentralized orgs of people:

  1. When attacked, a decentralized org tends to become even more open and decentralized.
  2. It’s easy to mistake decentralized orgs (starfish) for centralized orgs (spiders).
  3. A decentralized org doesn’t have central intelligence; the intelligence is spread throughout the system.
  4. A decentralized org can easily mutate.
  5. A decentralized org sneaks up on you.
  6. As industries become decentralized, overall profits decrease.
  7. Put people into a decentralized org and they’ll automatically want to contribute.

Because of numbers 3 and 6, owners and SCOLs of centralized command and control hierarchies will never embrace the “starfish” concept. The self-centered need for SCOLs to project the image that “I’m great and you’re not” (number 3) and the constant external pressure to generate increasing profits (number 6) guarantee the status quo for all but the most enlightened leaders. However, because number 7 is the holy grail for the CGHs that sit on the throne, they try their best to feign being a starfish while remaining a spider. This systemic and self-defeating behavior is recursively nested all the way down the CCH; from the upper echelon of VPs and directors down through the fatty middle management layers and ultimately down to the BMs that rule at the interface with the DICforce.

Like Mr. Nayer, I don’t buy into the Brafman/Beckstrom set of principles 100%. Their starfish/spider metaphor works well up to a point. For example, a spider is much more mobile than a starfish; which enables it to be more proactive in acquiring the resources it needs to survive. Specifically, I believe that a hybrid “sparfish” org can increase profits while simultaneously providing an environment in which all members automatically want to contribute. By distributing resources more equitably via democracy and implementing a true meritocracy, the best of both species can be merged. The trick is figuring out how to freakin’ do it, no?

Reinventing The Wheel

November 15, 2010 Leave a comment

In Federico Biancuzzi’s “Masterminds Of Programming“, UML co-creator Jim Rumbaugh states:

The computing field has a lot of people that think very well of themselves and seem to forget that there is any past to build upon. A lot of people keep reinventing things that have already been discovered. – Jim Rumbaugh

LOL! I understand what Jim’s saying, but there can be another reason for reinventing the wheel too. How many slightly different API versions of virtually similar “reusable” libraries are littered around your software development org? How many of them have you written and rewritten yourself?

If a library/module/component is poorly or “un” documented in terms of its design, external dependencies, and most importantly, usage examples, it t’aint gonna be reused. Even if  the thang IS miraculously well documented, if the info is not integrated, organized, and easily accessible, it ain’t gonna be reused either. Both of these shortcomings, which are highly likely since most programmers don’t “do documentation” and managers don’t want to pay for non-camouflage documentation, guarantee reinventing the wheel over and over again.

Assume that you truly do want to reuse someone else’s code to save time, but all you have is the source code. You’re gonna have to pour through the mess to figure out what it offers, how it works, and what other components and libraries it depends on before you can consider using it “as is“. The larger and denser the component, the deeper and wider the inheritance tree, the more external dependencies, the more frustrated you’ll become and the less likely you’ll apply your brainpower and time to the task at hand. When that happens, Ta Dah, it’s time to roll your own – yet again. Hell, if you don’t document your own stuff, you might not even be able to eat your own dog food downstream. D’oh! I hate when that happens. And yes, it happens to me.

Thought Criminal

November 13, 2010 4 comments

Because I frequently rail against obsolete and moldy FOSTMA practitioners and corpicracies, I was recently accused of committing “crimes of thought” by a highly judgmental colleague who worships at the altar of corparchy.

Uh, what the hell is a thought crime anyway? As usual, Wikipedia (which is always right) came to the rescue:

(In George Orwell’s 1984) The Thought Police use psychology surveillance to find and eliminate members of society who are capable of the mere thought of challenging ruling authority

Crap! I’ve been surveilled, detected, tracked, exposed, and unmasked. I just realized that I’m double hosed cuz I’m much more than a thought criminal. I’ve manifested these unholy abstract thoughts in the physical form of recorded (free) speech and broadcasted them out onto the web in a malicious attempt to infect others. I’ll never work in this town again! Yikes! It’s time to go out on the lam. Anyone got a safehouse for me?

So, how can a thought criminal ferret out a member of the Thought Police force armed with psychic surveillance devices? Geeze, what kind of kestion is that? It’s easy. Look for any dude wearing this:

“You’ve Been Hit By, You’ve Been Struck By, A Smooth Criminal” – Michael Jackson