Le Nguyen The Dat bio photo

Le Nguyen The Dat

~ Data Science & Engineering

Twitter Facebook LinkedIn Github

What is “moving fast”?

Speed is relative. It is hard to measure, especially when there is hardly anything similar to compare with.

In engineering, it does not equal to the speed in which new features got shipped, or the lines of code people put into their codebase. Instead, the best way to know whether you are “moving fast” enough is to measure efficiency. Are the engineers motivated enough to put their full effort on the tasks and goals given? More importantly, how often do their works get delivered, or they were forgotten and thrown away?

Why is the need to move fast?

The technology world is chaos. Changing is inevitable. Moving fast is essential to win, move slowly simply means lagging behind and becoming irrelevant:

facebook vs myspace


It is more fun when moving fast:

Spaceballs (1987)

How to move fast?

  • Build a good foundation. A good foundation does not need to be perfect but it needs to be flexible and to be continually improved along the way as the business evolve. Processes and conventions need to be well-defined, agreed on, and properly followed since start. Without a foundation, whatever the engineers built won’t be sustainable.

A typical case where foundation was built, but wasn’t getting improved along the way

  • Stop premature optimization. Be practical, be realistic, especially when timing is critical, get small things done first, then make them faster or more accurate later. A simple rule-base engine, or a brute-force approach that can solve a problem right now is much more valuable than something perfect a year later.


  • Finish what was started, or might as well, not started at all. Be committed to what the engineers have spent time working on. Make decision, and don’t look back.

Christine Collins, Changeling (2008)

  • Be transparent. Write down the details along the steps, write down what happened, and do communicate clearly why the decision was made as such. This helps the engineer understand more about the business, and the business has more trust on engineering side.

  • More autonomy, more responsibility, less bureaucracy within the engineering team. Put more trust into the more junior engineers, give them more responsibility, let them learn, let them grow, and let them shine.

  • Just… move fast and break things. Stop being afraid. The more you break early on, the more you learn, the more you can get comfortable to move faster and better. There is nothing to learn if you never fall.

Conclusion

At the end of the day, what matters most is what you delivered and when you delivered it. The technology world is changing constantly, a software without bug nor any change is as boring as minesweeper. No one build minesweeper anymore.