Principles for software work

Here is a list of principles I need to train myself into following:

  1. Prioritization of problem solving: focus on the most value-added problems. Inevitably new problems pop up along the way, decide if I should set them aside and follow up later or add the new problem to my problem-solving stack.
    This principle aims at ensuring utmost clarity of mind and preventing me from being overwhelmed.
    Stay intentional.
  2. Interpretation of new information: develop my OWN interpretation of new information presented to me ON THE FLY. Ask questions if I am unclear if I am achieving that. Or acknowledge I am not succeeding at it if the situation is okay with it.
    This is the only way I can make sure I truly understand what is being presented or conveyed to me.
    Build understanding.
  3. Pruning: choose what NOT to work on proactively. There is always work to do. One way to obtain exponential results with finite time is to prune the problem space, like binary search, to offload or abandon work that isn’t the most valuable.
    Use leverage.
  4. Seeking challenges: don’t waste time on trivia and supports. How did Oppenheimer layer challenges? Gave a lecture on quantum mechanics in Dutch. Read Capital in German.
  5. Optimization: understand and practice the improvement of development experience and operations through good architectural design and processes.

Note: train mental athleticism. Explore.

Leave a comment