Commercial programming was shocking to me!Since Paul was a longtime customer of mine, of course, I want to help him. Sure Paul, if I don’t build it extendable and skip automated testing it can be done both cheap and fast. But it will be a risk if it needs to expand in the future. Pauls agrees to the risk so I start coding. Fast forward a few months, Paul wants to expand the search feature: Hi Frederik, the search widget is a huge success! I need you to also integrate this new product category. But we don’t know how many more sales it will generate so again I must ask for you to implement it as cheaply as possible.
Bugs in production will keep you up at night!After a heated discussion with Paul about the risks he accepted initially I ended up correcting the error and only charging half the price it actually cost to fix it to preserve the good relationship. After all it was me that caused the error. Fast forward a few months and Paul wants the feature to be expanded again, this time with many additional categories: Hi Frederik, We are selling more than ever because of the search widget and I need you to expand it with ten additional product categories! I know from last time that the state of the code is bad. I also know that a change of this size is going to introduce even more bugs than last time, so I don’t really want to go that way. The only option I see is to make a complete rewrite of the code, but that is going to be expensive and time-consuming. And Paul will not be happy with either. For me as a programmer it is a lose-lose situation, the customer trusted me to be professional and create a system that would support and grow with his business, and I failed. I have seen similar stories happen more often than I would like to. And it sucks, every time
I want to teach developers how to gain confidence crafting codeI want to teach developers how to gain confidence crafting code that they can be proud of and can grow as the requirements change. My mission is to help with creating quality code that is maintainable in the long run.
Legal Stuff