top of page
  • Writer's pictureBumsoo Kim

Managing complexity


Software engineering is all about managing complexity - a well-known verse.


The most difficult issue that software engineers experience when working at hardware companies is that their hardware colleagues don't understand what the software is. If your company decided to hire software people, it means that your problem already reached a tremendously high level of complexity.


I'm not just talking about technical issues, but also a management practice of the company.


Many hardware companies are just plugging software people into their organizations and praying for smooth working. They are usually organized and operated in a hard-wired manner. Long long time ago, time and space density was extremely low and worshiping existing order had a great value and gave peace of mind to everybody. We are now living in a matrix of complicated networks among people. Everything changes dramatically fast since even a tiny change propagates to the whole network instantaneously and reshapes the network.


So, what to do with all these blazingly fast changes and exponentially growing complexity?


My two cents for modern hardware companies who sell their products bundled with heavy software loads: Assign a software executive to the top of your business division and empower that person to organize the whole team.


Caveats: That software executive should not be a jerk who believes that software doesn't have a physical weight unlike hardware. That person should also understand one of the key DevOps concepts - changing without halting.


bottom of page