Discussion about this post

User's avatar
Doctor Hammer's avatar

I think you pretty much nail it, although I don't think that having your business even be highly software dependent is critical. I think programming teaches you to think hard about exactly what is happening at each step, exactly what inputs are needed, exactly what outputs are produced, etc. That's as opposed to almost every field involving humans where hand waving and vagueness can often be interpreted by others who know better and can make it work. Most people just can't think seriously about processes and interdependencies, even when their job depends on it. (I see this all the time, working in supply chain ERP system implementation. "Technical" people often get just as handwavy as business, but often because the business side lets them get away with it.)

My guess is that is why folks from the hard sciences tend to do well as business managers too. You can't mumble your way into building a functional bridge, or rely on "then a miracle happens" for step six in mixing up chemicals. Anything where "do it right, in the right order, or it doesn't work" is a good training.

Expand full comment
Handle's avatar

At a high level of abstraction and 'architecture' coding really is the same skill as coordinating human efforts in organizations.

One has to manage complexity at scale in accomplishing a giant, multifaceted mission by divide-and-conquer and division-of-'labor' approaches, arranging hierarchies of compartmentalized, special-purpose functions, outlining paths of communication, and authority, allocating scarce resources intelligently, and constant testing, detection and elimination of 'bugs', with iterative-decision-making and refinement of processes and procedures ('instructions') for quality, reliability, and efficiency.

The basic outline of a modern efficient world-class organization is kind of like a general purpose CPU (they all tend to share similar basic design) with the founders / CEO programming and improving the human-coordination software to make it produce the intended outputs.

With hardware and software, the individual components and routines are both amazing because specialized to do one particular task extremely well, and dumb, because they can't do other tasks efficiently and often only get to work with a tiny piece of the puzzle. The art of managing and arranging the big picture, and to make sure that functions are able to run in parallel on different cores (or brains), and still deliver intermediate outputs just in time for other subsequent functions takes extremely high levels of talent.

Expand full comment
24 more comments...

No posts