When I was first learning BASIC with a friend in high school, the world of programming was brand new to us and we both taught each other new things we had learned. As time went on I noticed that we had two different styles of learning. I would learn something new, write one program using it and then move on to the next thing. She would instead learn about all the various options and dive deep into a particular thing before moving on. Over the years, I’ve seen these two styles of learning played out with many engineers as they come new to a job. Each style brings its strengths and both create solid engineers if managed and encouraged properly. She exemplified the momentum engineering style. I, the hack ‘n slash style.
Momentum engineers strive for a thorough understanding of what they are doing and why. Many I’ve met focus on a thorough understanding of the process so they can repeat it with increasing success on each iteration. They lay the ground work with solid tools that will allow them to do these tasks increasingly more effectively. When they deliver the solution, they understand all the facets that lead to it and typically it’s extremely well thought out. Think about a bulldozer – it starts off a little slowly but once it gets going it’s very effective.
This style of learning though typically takes some time before it delivers much which causes many managers consternation. If the engineer fears failure or needs to understand EVERYTHING, then they never deliver anything. I’ve hired people with incredible experience and good “talk” whom I later had to let go because they never felt comfortable delivering. At some point, there is no difference between “still working on it” and nothing.
Managers can help with this style of engineer by encouraging imperfect early-deliveries and set clear expectations. Many who have this style earned better grades than I did (my friend included) because they tend to be conscientious. As a result, knowing what’s expected can make a huge difference. Downgrading the expectations or expressing disapproval at the work being done, can discourage them early and make results come even slower and of worse quality.
Once this style of engineer has momentum though, there is no stopping them and they will typically pave a wide path for the next person needing to learn the same material. If you identify with this style, it’s important during the learning process to make sure you go out of your way to communicate your progress so that people know what you’re working on and where things are going.
Hack ‘N Slash Engineers
In contrast to momentum engineering, the hack ‘n slash engineer creates something without a very thorough understanding of the problem and hacking their way to the goal. Usually their solution comes up short and requires multiple iterations.
Take me — I try to fail quickly because I know I’m going to have to iterate — a lot. I learn by failing. Like a scout hacking their way through the jungle only to realize where they ended up is not where they wanted to go and need to backtrack. This doesn’t mean I don’t want to understand all the different pieces or that I’m okay with shoddy work but I am okay going forward even though I only have a vague idea what I’m doing. The key I’ve found is to do this quickly with small failures so that I can iterate quickly and when the deadline approaches deliver with confidence. When done well, everyone can see the progress and it delivers a good solution.
However this style also has some pitfalls. There are hack and slash engineers whose solutions are so fragile that if you look at them the wrong way they completely fall apart. This weakness usually reveals itself pretty early in the process but if this is coupled with defending a (poor) solution rather than quickly seeing it’s faults and reworking it, it can make for a very painful work environment. People who are afraid to fail may end up hiding as the other type, iterating in private in hopes that they can find perfection before anyone notices (if they deliver at all).
Managers should work with these people to make sure they have the opportunity to iterate on their work and review their solutions in more depth to look for flaws underneath the solution so that the next time around a better solution is found.
Well trained hack ‘n slash engineers can be thrown into new situations and provide clear visibility into how they are doing and can be great for quick good-enough solutions. If you are more of a hack ‘n slash, keep looking for how your solution can be improved and prepare to iterate so you can arrive at a good solution.
Both momentum engineers and hack’n slash engineers are effective but require different styles of management and different styles of work. I’ve seen each style mismanaged to very poor results. One of my friends recently contracted out a portion of his engineering work to someone he didn’t know. Using this distinction was helpful in knowing how to encourage the new contractor in a way that synchronized with his style and ensure that forward progress was made.