I hope you enjoyed this series as much as I loved the journey of writing it.
Let’s talk about Binaries. Neither the zero and ones our mind instantly thinks of, nor the files we’ve compiled some time ago. We’re about to talk about perspectives and views. How they affect our behavior, our engineering and our engineering culture. We'll be trying to make something beneficial out of our binary thinking minds.
In several eastern philosophies exists the practice of giving in to “truths” and practicing to be encouraged to action by doing so. To live in between giving up to despair and to being in denial of them. Which is the continuation of where we left off in the previous chapter, on what constitutes non-beneficial actions. Using the practice and methodology of giving in, we’d try to define, extend and systemize The Beneficial Way Framework.
At the end of the previous chapter we spoke of erosion, a process that would cause a demise or decay when left unattended or incorrectly attended. Lack of awareness of these processes leads to unrealistic expectations or unattainable values. We argued that awareness of these processes would lead us to avoid non-beneficial actions, in advance. Which is exactly the goal of The Beneficial Way Framework. If we could define similar erosive processes to software engineering and application development, we’d have a rule of thumb on how to identify non-beneficial actions. Luckily, we already did so.
After a long journey we managed to define what Eventualism is in the previous chapter. I find that thinking in terms of “it will eventually happen” is also beneficial while designing. Saying it pushes us away from the non-beneficial action of doing nothing, causes us to stop disregarding the situation at hand and give it a serious thought. The outcome would be a process of discovery which can lead to better and more robust designs. It would help us better grasp what we should actually do now, what should be done later and what should not be done because a good enough reason does not yet exist.
Applications outlive their developers. Let’s talk about this fact, on how personal issues and personnel should affect our decision making and designs. As people are a delicate matter and should not be either disregarded or blamed, let’s try to see it through Eventualism.
A few months ago I was sitting at Cafelix, my favorite coffee shop. One of the regulars there is an actual philosopher, unlike me who just plays with it. I told him about “The Monk who Sold his Server”, specifically about The Inevitable series. He knew nothing of software so I simplified the work to “I’m trying to explain eastern philosophy through a more western perspective and then apply it to software architecture and culture”. He was looking at me like I was crazy. I might be, because it is something extremely hard to do.
In this series we are going to give in to it and find a beneficial way to handle Change. Stopping Change is impossible and doing nothing about it is non-beneficial. It sounds like we are giving up to this Cause-Change cycle, which is a trait of our binary thinking minds. Instead, we’re going to focus on these Cause-Change cycles, and how they affect our applications. Through it, we will come up with methods to better design our applications, which will slow down some of the evolutionary processes.
In this chapter, we’re going to further explore the correlation between the Changes Stream and the application's design. As the Change Stream is supposedly beyond our control, we are only left with designing our applications to fit it better.
In this chapter, as another step into the Change Stream, we’re going to talk about Intentions and the people who carry them through.