The Perfect System Doesn't Exist
alexkondov.com
The Perfect System Doesn't Exist
1–10 of 25 posts
Re: The Perfect System Doesn't Exist
#2Re: The Perfect System Doesn't Exist
#3Experience helps. Inventivity helps. Trying to do things better than you did before helps. Asking for input helps. Research helps.
Re: The Perfect System Doesn't Exist
#4* On the topic of systems changing. The "perfect" system is a moving target. Have you ever encountered an entire module that could be replaced by a library call? The plot twist is that library didn't exist 5 years ago when the code was written. Found an ugly hack that's completely unnecessary? that was written to overcome a system limitation that has since been removed. As time passes, how a "perfect" system looks like changes as well.
* On the topic of never the same implementation, we aren't all experts in everything. Being assigned to a project in a tech you have no knowledge whatsoever is a very humbling experience. You'll make tons of mistakes, and code will be far less than ideal, but it's only with time that you'll get to appreciate (and fix) those.
* On the point of Good > Perfect, there is the topic of diminishing returns and leverage. In the previous two points we either can't or don't know how to write better systems. Sometimes we can and know how to do it, but it's better not to. A while back I wrote a service that's central to our infrastructure. I spent a bit of time making sure code is clean and we have good test coverage. It has been in production a while and it has never caused an issue. Sometimes I look at it and see some obvious faults: interfaces could be tidier, or some code could be cleaner. However I force myself to not spend time fixing it. Why? it isn't a high leverage activity. Rather than spending time polishing a service that works well, I should spend that time fixing open bugs or improving parts of the system that don't work as well. Even if it isn't as satisfying to our ego, the return on investment will be much higher.
Re: The Perfect System Doesn't Exist
#5I wouldn't go so far to say this.
The perfect system does exist we just need to define it formally. This will take a long time and a lot of research but we can get there.
Any time you hear the words "designing systems" it refers to some aspect of reality we don't understand and we go through this "design process" where we attempt to guess and check our way to a very sub optimal solution.
Take for example the distance between two points. The answer is a straight line. We have a formal definition of this axiom. We do not need to design the shortest distance between two points. If we complicate the problem and ask the question what is the best way to travel between two points in the United States... well then the answer gets much more complicated. Do you take a car? Do you take a bus? Do you take a plane? Which one is cheaper? Which one is faster? Which one is better for the environment? All kinds of decisions make it too complicated to calculate a solution so we turn to Design. We use "design" to create systems where no closed form solution yet exists. And in the past decade we've used machine learning as one possible way of finding a solution for these types of problems.
While we have to use designs for building planes and such I do not believe that this will always be the case for programming. I truly believe in a world where it is possible to calculate our program designs. If you really squint... I sort of see a path leading to this world within functional programming and category/type theory.
Re: The Perfect System Doesn't Exist
#6Re: The Perfect System Doesn't Exist
#7>I realized that even armed with all the theory and context, the perfect system still remains a mythical creature. In other words - it doesn’t exist. I wouldn't go so far to say this. The perfect system does exist we just need to define it formally. This will take a long time and a lot of research but we can get there. Any time you hear the words "designing systems" it refers to some aspect of reality we don't unders…
Re: The Perfect System Doesn't Exist
#8Re: The Perfect System Doesn't Exist
#9For me, a perfect system is one that is stable over long periods of time. Achieving these outcomes first requires careful selection of tools, frameworks and platforms. Building anything on unstable foundations is never going to end well over time.
We have large chunks of code that haven't been modified since ~2014. How many shiny frameworks and languages have come and gone between then and now? You can be certain I have basically forgotten about this code. Not out of disdain or neglect, but because it just works 100% of the time now.
We have a lot of problems to deal with in front of us, so we find the courage to properly settle things and move on.
Re: The Perfect System Doesn't Exist
#10>I realized that even armed with all the theory and context, the perfect system still remains a mythical creature. In other words - it doesn’t exist. I wouldn't go so far to say this. The perfect system does exist we just need to define it formally. This will take a long time and a lot of research but we can get there. Any time you hear the words "designing systems" it refers to some aspect of reality we don't unders…
I do think we can and should define a self-consistent internal logic for the program designs we do write (eg. under a given set of valid inputs, the program is is memory-safe, is thread-safe, does not produce UB, has program-specific invariants upheld by each function's preconditions and postconditions, and produces correct results with eg. O(n log n) runtime, making O(n) allocations totaling O(n) bytes ever allocated), then verify that the code we write upholds this logic. Every program has an internal logic, correct programs have self-consistent logic, and any holes in the logic are exposed as bugs in the program. And easily understood code makes this logic self-evident to readers.