Having read my articles on vSphere APIs and software designs, you may feel a bit bored. Today I will write something different and generic: how to simplify things.
By nature, the world is complicated as it should be, and will remain so or even more forever. Simplification does not change that fact, but your perception about the world. Unless you are writing research papers, you want to simplify things you work on.
Lost VMs or Containers? Too Many Consoles? Too Slow GUI? Time to learn how to "Google" and manage your VMware and clouds in a fast and secure HTML5 App.
Simplification helps you to understand things better, thus perform better. It normally leads to a limited yet useful view or perspective of the target. The important thing is to understand what matters and only abstract out these important elements.
Effective simplification starts with good understanding of your target. Equally important is good understanding of the objective, which decides what’s to abstract in and out.
I know it’s a bit abstract. Let’s get concrete. Here are some common guidelines and techniques to simplify, regardless your domains (I am sure you can use all of them in software development). You may however see some are used more than others from domain to domain.
- Deleting. Just remove whatever is no longer in use. This is really low hanging fruits, but highly effective for you to get away from unnecessary distractions.
- Categorizing. This is mainly for the concepts which are divided based on certain criteria/rules, so that you can easily find association and differences of them.
- Grouping. Entities are grouped together based on criteria. Once you groups, you may apply operations on all entities in a group in a batch.
- Tagging. Tags are effective ways to identify key properties of a concept or entity. They help better categorize or group things. Tagging is more flexible than grouping in that you can have as many tags as you like.
- Abstraction. Abstract out anything that is not contributing to your objectives, so that you have a limited view or perspective that better illustrates the system.
- Consolidation. You can combine multiple entities or instances together to reduce the effort to manage or maintain them individually.
- Automation. This is opposite to manual process which takes more time and not easily repeatable. It also hides the details of getting things done.
- Integration. It combines different components into one system therefore reduce the effort to work with them. Just image a single pane of glass. Note that it’s different from grouping in that grouping is for same types of elements but integration is for different types of elements.
- Visualization. Visualizing data in a chart or diagram helps highlight things that matter the most, and makes it easier for the readers to find patterns.