Don't Skip Steps

We all have written pieces of software with very similar capabilities, very similar internal functionality, for very different clients yet somehow there were always things that went south. That happens in part because no one can digest the entire system in their head and be aware of all the pitfall all the time.

But also because with each successful deployment our expertise grows, and so does our confidence, and we become a little bit more cocky next time and we start skipping steps in the process like requirements clarifications with the client, making system diagrams, building a list of use cases which will be used as test scenarios later.

To avoid that, we should look at expertise as something that allows us to see further down the road therefore enabling us to clarify more requirements at the beginning stage of the project which leads us to build the right solutions for our clients. 

It is our responsibility to ask questions, poke the thinking process of our clients, look for inconsistencies - otherwise our clients are better of with a generic of the shelf solution.