- Why Fasting is Good
- It is just too easy to become mediocre
- We already die
- Today is my birthday
- Refactor Code & Cleaning Up Toilet
- Lessons Learned from Midtrans Hackathon 2018
- Code Review: My Own Experience
- Learning Forward and Sustainability
- Software is an Organization
- Explicit is better than implicit
- All posts ...
Software is an Organization
Apr 23, 2018
It is 12:40 in the middle of my lunch break time. And because I just arrived from previously working from home in the first half of the day, some random idea just popped-out from my mind.
You know people love to call them self as an engineer especially in tech field. However, software engineer is something so different than any conventional engineers. Conventional engineer like civil engineer, mechanical engineer, electrical engineer, etc solves problem using physical law exists in physical system. However there is not much law exist in software system and often times we made up our self using conventions, so called “best-practices”, and some heuristics.
When I sit in the comfort of Ojek (motorcycle taxi) I search something in my mind if there is any analogous system that similar with software system. And something naturally popped-out from my mind, “It is like an organization”. In organization, we made rule our self, whether it is in company or nation, or any kind of organization. There is no physical law constructing the system and we create our self.
Another thins that popped out in my mind is it is related to Conway’w Law.
A product’s architecture tends to mirror the structure of the organization within which it is developed. New organizational arrangements can have a distinct impact on the nature of the resulting design, and hence may affect product performance in unintended ways.
Put it in simple term, “Dysfunctional organizations tend to create dysfunctional applications.” 1 And more importantly, I have a heuristics that I often use when dealing with system that have a mature analogous, we can learn from that other similar, but mature system and learn a lot from their advanced technique and apply it in the system of interest.
Thus, I guess it is important to look at organization theory and “steal” some of the advancement there to the software world.
My lunch break time is overe.