The Fourth Companion

September 24, 2004

Random Ramblings

Back in the university, I have friends asking me how on earth I could ace subjects like Computer Architecture, Computer Organization, and so on. My reply to them was simple: "forget reading what the books tell you, ignore your lecturer, and instead ask yourself how would you design the system if you're given the opportunity".

I guess I have a knack for looking at things as systems, a bunch of interacting processes and subprocesses exchanging messages in the process to achieve an overal objective. I see cars that way, I see the human body that way (friends from the medical faculty sure helped), I see organizations, countries, nations, companies, teams, that way.

Every good and proper system has well-defined processes that'd make the infrastructure for that system. You house has a structural system that holds it together, a plumbing system to supply water, an electrical system, a system for managing the traffic of air, temperature, and people in and out of rooms, and other more systems that are so good and reliable that you don't even see/feel their existence anymore (which reminds me of nature.. an impresive integration of systems and subsystems that are so good and reliable that you don't even notice they're there). Without well-defined processes as part of infrastructure, any system will fall apart, your house would be unlive-able, it won't even stand in place.

Every organization, country, company, institution on earth must have well-defined processes over the basic principles of their core activities. Without these processes, those organizations should have not existed at all.

When the organization in question is a software company, the processes we refer to are software engineering processes. Processes that are defined based on deep understanding of the economic principles that lie behind the business of developing, maintaining, and selling software.

When a software company does not understand the underlying economic principles of developing, maintaining and selling software, that company has no processes that "support" its activities. There are two purposes of having an infrastructure in a software company: to aggregate the intelligence/understanding of your underlying business into something that every stakeholder in the company can readily use without having to crack their brains everytime, and so that every unit of resource spent for the company can be multiplied in its returns, that is function of an infrastructure is so that when we plug in one unit of resource into the company, the company can operate systematically and produce multiples in returns of that unit of resource invested.

Without such proper processes set up as infrastructure of the company, we end up having too much resources spent on a variety of things that end up in wastage because there's no system to make best use of those spent resources. When you don't have infrastructure, it doesn't matter how many top brains you bring into your company, they'll just be wasted. It doesn't matter how charismatic (or intimidatingly scary) your CEO is, the company will never move with agility and speed simply because there is no infrastructure that enables it to move fast.

So how can any organization do it right ? be honest with yourself, what is your core business.. what it is that you truly know and understand ? if you don't know the basic economics of X, you shouldn't be in the business of X. don't venture too much outside of what you know you can learn and be good at. there's a difference between taking something up because your ego says you should be able to do it, and because you know you can be good at it.

This is all common sense isn't it ? well it's obviously not so apparent for some people (yours truly included at some point of his life).

0 Comments:

Post a Comment

<< Home