At work right now, we are in the process of creating a new web application that will encompass some of our existing utilities as well as adding to them. When creating software there are many different development methodologies and patterns to choose from, but I have been thinking more about the fundamental approach to it. In software there are different platforms and languages in which software can be produced, and often these will each cater to a specific use, hence, in many cases, the reason for their creation. Many companies decide on a platform for developing all of their software and stick to it. They base the architecture of their system on the tools that their chosen platform provide. This is just one approach. Another approach to architecting software, the preferred one in my opinion, is to design the system you need and then figure out how to get your chosen platform to conform to your design.
This system architecting has gotten me thinking again about life. It has given me another metaphor on how I think life should be lived. I think too often we (as humans) see patterns for life laid out before us and try to figure out how to fit our own lives and desires into those patterns. Like in software, this produces a lifetime of constant hacking and re-configuring to maintain a fit as life and culture evolve. Granted this makes for a smoother collective civilization, but it also makes for a bunch of only semi-satisfied people.
The alternative is to figure out what you want in life, and then try to shape the available variables of life to fit your own definition of this life goodness. Like in software, sometimes it is necessary to scrap the system altogether and find another system that fits better. (An example of this is religious/moral systems.) Sometimes if it just necessary to limit the amount of outside system that effects you. (An example may be working for yourself in some sort of free-lance capacity.) Settling for the generally accepted pattern will often lead to a (seemingly) easier or less-complicated life, but how full is that life? What are you sacrificing for that life? Without exploring other patterns, how can you know that the grass isn't truly greener?
In software, you have to eventually make concessions and just build your system and sell it, but that doesn't mean there isn't potential for eventual improvement to grow the the software, the business, etc. In most business, and especially in software, to become stagnant is to start to lose ground and to eventually become obsolete. In life, concessions have to be made, too, but stagnation also happens far too often. It leads to the loss of dreams and the loss of that desire for things to improve. It leads to modifying one's life to fit a mold and staying in that mold. It means living for a system and a pattern instead of living for yourself and for your life. (If your "system" says living for yourself and your life is wrong, you need to challenge that system about that belief - sounds like a conflict of interest to me.)
Shaping life to live is pursuing life for its own sake and not because of a system around you. Sometimes drastic steps must be taken to even be able to see the captive patterns, but if you can see them then you can start to break free and allow your mind and life to live outside of its confines. Living one's own life is truly the only way to find real satisfaction. It won't always look and feel like how society or your relatives or your friends define satisfaction (and they will likely never completely be aligned), but you will be closer to real peace and contentment in life than any other shape could ever offer.