Just Because We Can…
I was recently in a meeting where we were discussing my current project, when the topic came to things that the client wished to add to the project. In that discussion, something became very apparent to me that was highlighted in a recent post by Jef Claes—the idea that just because we can build anything doesn’t mean that we should.
There is this misconception that because we now have computers, they should solve all our problems, even all the edge cases. Edge cases – by definition – only happen at extreme conditions, and are regularly hard to take care of in a satisfactory manner, without a considerable investment. By making edge cases explicit, we allow a human to intervene, and decide on the best solution for the problem. This way we can go to market more quickly, with less code, and we might ironically even end up with happier customers. By collecting statistics on how often these edge cases occur, we can make a better informed decision on whether it’s worth the investment.
The whole article is worth a read, but he’s right in more than just the edge cases. The fact is that programmers can build anything in software, it’s just a function of time and money. However, it’s often the case that there’s a deadline that has to be met, and because of that, we need to make sure that we balance the needs of the client with the time that it will take to implement the feature that’s requested.