Waste and Failure
Failure is subjective.
Join the DZone community and get the full member experience.Join For Free
Do you ever feel like you are failing or wasting time? There are primarily two situations in this realm that I think need an alternative point of view; a more extended investigation that has led to nothing and getting rid of past work.
In some sense, they are the same thing. It might just not look like it at first glance. Both are a failure for some, and failures are sometimes hard to handle. Next time you find yourself in a similar situation, try another point of view.
You may also like: Handling Failure in Long-Running Process
Handling the Failure
Try to list in what ways the failure is a failure. Then alongside that list, make another list of what the investigation taught you. When I do this, I very often find that my "lessons learned" list is by far longer than the list of failures. The list of failures will often even be tough to articulate. In this light, the fault is probably not such a big failure as you initially thought, even if the work has consumed considerable time.
Also, if we conclude that the work was not that big of a failure as we initially thought, it could still be seen as a waste of time. I want to argue differently; look at what you've learned! Could you have concluded faster, perhaps? No, else you would have! Someone else might have finished sooner, that doesn't matter!
It's indeed essential to fail as fast as possible to maximize the amount of time adding value; however, with that in mind, it's still crucial to make use of the scientific method. Meaning to progress in a structured and well-defined way, so the correct conclusion can be reached as fast as possible without losing any threads along the way.
Looking ahead at future work, you might be able to complete the task more efficiently. As I see it, this is based on neither a failure, nor a waste of time, but instead on experience. Experience is what ultimately makes you grow as a person in my view. If you share that knowledge with your coworkers, you get to get even more familiar with your new-found lessons making you grow even more.
Deleting Larger Chunks of Work
We've probably all been there. Working for months producing whatever you produce, pushing your project forward. Then at some point, the requirements change, or you realize that you can accomplish the same thing in another way. As a consequence, you'd probably remove some past work. What do you do, delete all that earlier work no longer needed, or not?
How would deleting past work make you feel? Many of my past colleagues refrain from it for the longest possible time.
An important consideration to take into account is if you can undo the deletion or not. Do you have some version control for the work in question? If you do, then you can make a lot more exploratory work to see what you would get.
If you don't have any version control, then you can still do this by saving away the currently 'best' version so far in a separate file. Using version control is still by far the best way to go in my opinion. You get great tools and processes to help you.
Imagine, you've experimented and found that deleting all that work would get you to a great place. You still have to decide if you are to remove the work or not. I'd say given you end up somewhere better than where you started, delete the work! "But, but, all that work!" I hear you exclaim. Yes, wipe it out and keep the better version. We just concluded that the new version is, in fact, better than what you started with, right? You also get rid of much extra baggage that no longer has to be maintained.
Getting rid of excess baggage will allow you to go even faster in the future, in my experience, as there's even less irrelevant garbage to work around and by that the value of your work goes up. Let's have a short example. If you write an article and the reader all of a sudden, find a whole section that's misplaced or even completely irrelevant.
How would that make the reader view and value that article? I, for one, would stop reading it altogether! Both the value of your work and your speed goes up by removing that baggage, who wouldn't want that?
Is all that past work wasted? Does it mean what you've been doing is worth nothing if you were the creator to even some of it? Remember you arrived at a better place through the path your past work has taken you! As I see it, neither a failure nor waste.
Why didn't you arrive at this better version in the first place? That way you might not have had any need to delete all that work, you would perhaps even be further ahead. The reasons might vary, but often I find that there are two classes. Either you've learned more about the project or problem, enabling you to see the simplification or generalization.
The other category would be new requirements, and based on those; you were able to simplify some parts of your work or project. Sometimes you think you see simplification and start wiping out past work as you try to transform your work into your target view. Then you realize that things are not working out as intended. At this point, it's fantastic that you can undo your changes. Again, you learned even more about the project or problem domain. Congratulations!
Has the future flexibility of the project or work been affected in any negative aspect by your changes? You can probably have at most one of two outcomes. Either you conclude that rectifying those shortcomings is not worth the gain or you improved your work or project even more. Either way, you learned more. Success!
Having to remove previous work happens to me as well now and then. Most of the time, it's because of changed requirements or additions to our toolbox. As we learn more about the project, synergies are discovered and can result in simplifications as well.
I've heard that my point of view in these questions is not a common one and so I thought I'd produce this piece to share my opinions. Do you have a different point of view, please do share!
What did you gain by deleting or simplifying past work?
An Investigation That Led Nowhere
Not long ago, the monitoring for my project told me that something was wrong; the amount of memory consumed kept increasing to no end. We couldn't figure out why. We investigated this for almost two months. How come it's always the last experiment/test that clarifies everything?
The assumption from the start was that some memory references got lost somehow, a traditional memory leak. This type of problem is usually solved by recording memory allocation profiles and see what kind of memory structure gets lost. Based on this, you can zero down on which components you should focus on next. It didn't matter how many such profiles I investigated; I couldn't find anything getting lost anywhere.
The conclusion had to be that we were not leaking anything in the traditional sense, so we started to look in the execution environment. To our surprise, we found that the amount of cache in the kernel kept increasing to no end.
In the end, it turned out that there was no leak at all. As soon as all memory got consumed, then the cache would get purged, and memory would once again be available. Given this, our system could very well go on forever. The only way to notice the effect of the build-up was that during the cache purging the processing rate would decrease temporarily. Once the purge completed, everything would go back to normal again. Usually, the system would crash if all memory got consumed for real, so the initial worry was understandable.
What at first seemed to be a severe issue turned out to not be an issue at all, and we put down almost two months to find nothing it seems!
Were these two months just waste or failure? Most certainly not! During the investigations, we added more tests of various sorts to complement the verification of each step of the execution. There were some tests before this investigation started, of course, but we discovered that checks were missing.
We could indeed prove that we didn't leak anything, which is always comforting. The gains improved our protection for future issues and added stability improvements to the project and it just took us two months to get there.
We gained so much, what did this cost us? Almost two months of work effort and a fair amount of frustration. Was it worth it, I'd say yes with a smile! The time spent on this is not such an important issue in my view. There are other forces at play when we work under serious time pressure, but that's for another time.
Why is this so important? Every now and again I hear these kinds of thought that I don't quite agree with. The problems with failures and waste seem to be more widespread than most based on what I hear.
When you have your team meetings where you share your progress, don't forget to tell everyone what you've learned!
What I'd like you to take away from this article is at least the following.
- Deleting larger chunks of past work is neither a bad thing nor a waste of past time.
- Failing is not wasting time.
- Never be afraid to try and simplify.
- No matter if you fail or succeed, you are learning.
- Learning is achieving.
- It doesn't matter if months of work get deemed as "not working out". Concluding is still a success.
- Try to keep your eyes on what you gain instead of what you lose.
Opinions expressed by DZone contributors are their own.