As a programmer, I want to believe I'm a writer, a poet, a sculptor.
But the truth is programmers are dancers, mimes, ventriloquists. We're performance artists, and the systems we program really only have meaning as long as we keep programming them (or, if we're really lucky, someone else takes up the dance when we grow tired of it). Once we take our final bows, the programs will fade away and die and all that will be left is a memory of the performance.
Nah, it doesn't have to be that way, although it often is.
We're like artists or architects, but most of what we build isn't lasting because there's little demand for that, just as many architects will never get paid to work on anything that might last. The Sistene Chapel lasted; the slums of Rome from almost any era haven't. For every artist whose work makes it into a museum, there are thousands hawking cheap prints on the streets of Paris.
Programmers can build software that will last for a long time. I know people whose programs are still running, untouched, after 30 years. We can solve problems and keep them solved. It doesn't have to be just code; papers and new algorithms can advance the state of the field. Since we're a progressive sort who really believe in the ability of our "magic power" to blow away drudgery, we love when we're able to do that: to solve a problem and keep it solved. If this is applied to code, you can get exponential growth in codebase or library or ecosystem value for a long time.
Here's the problem, though: no one is willing to pay for code that lasts. Just as most architects are building clapboard houses in the suburbs, most of us get stuck writing throwaway code because The Business won't pay for good code by giving us the autonomy and timeframes that'd enable it to exist. Of course, bad code and failed software projeects are far more costly in the long term, but executives are not a tribe known for thinking long term; most corporate climbers have the political skill to get promoted away from their externalized costs before anything can be linked to them.
You're tying quality with being long-lasting, but is that really true? I know code that's running for over 30 years, and it's terrible. It's running because it's terrible, because nobody dare approach it and risk it breaking, because it's a flimsy column supporting the roof, and you fear it might collapse.
In your opinion what does an organization which does pay for Sistine Chapels of code look like? It's an interesting thought experiment since presumably we're looking for the Holy Roman Empire of a company (Google? Google in 20 years? Google if they last another 20 years? Or 200?)
In your opinion what does an organization which does pay for Sistine Chapels of code look like?
That's a hard question. Until recently, people relied on institutions to set visions, take on big projects, and think to the future. Whatever you think of governments, churches, and universities, they had long-term plans and that prevented them from being too greedy or focused on the short term.
These days, individuals have more long-term vision than the corporations that they work for. Programmers can expect a fight if they want 30-40 year careers. It can be done, but you have to "steal time" at most companies to keep abreast of changes, contribute to open source, etc.
Companies are now in next-quarter mode, because it's a way to hide the fact that most companies are being looted by their executives. If you create a sense of short-term desperation and mandatory immediate focus, then people are distracted from the hands in the corporate coffers. You basically don't see people thinking further ahead than three months in most companies.
So now we rely on individuals to set the long-term course, but individuals are (coincidence of words not intended) individually effective but rarely as coherent as a well-run institution. We rely on individuals for long-term orientation because organizations no longer make themselves adequate.
> We rely on individuals for long-term orientation because organizations no longer make themselves adequate.
The flip side of that coin is that organizations are only as good as their leadership. Being able to select good leadership generation after generation has been something that has eluded mankind since the inception of civilization. There hasn't been an organization invented that doesn't eventually fall to corruption.
So, how do we create institutions that will last? It's a problem that appeals to the ego. The solution would have a much larger impact than just on tech.
But the truth is programmers are dancers, mimes, ventriloquists. We're performance artists, and the systems we program really only have meaning as long as we keep programming them (or, if we're really lucky, someone else takes up the dance when we grow tired of it). Once we take our final bows, the programs will fade away and die and all that will be left is a memory of the performance.
Nah, it doesn't have to be that way, although it often is.
We're like artists or architects, but most of what we build isn't lasting because there's little demand for that, just as many architects will never get paid to work on anything that might last. The Sistene Chapel lasted; the slums of Rome from almost any era haven't. For every artist whose work makes it into a museum, there are thousands hawking cheap prints on the streets of Paris.
Programmers can build software that will last for a long time. I know people whose programs are still running, untouched, after 30 years. We can solve problems and keep them solved. It doesn't have to be just code; papers and new algorithms can advance the state of the field. Since we're a progressive sort who really believe in the ability of our "magic power" to blow away drudgery, we love when we're able to do that: to solve a problem and keep it solved. If this is applied to code, you can get exponential growth in codebase or library or ecosystem value for a long time.
Here's the problem, though: no one is willing to pay for code that lasts. Just as most architects are building clapboard houses in the suburbs, most of us get stuck writing throwaway code because The Business won't pay for good code by giving us the autonomy and timeframes that'd enable it to exist. Of course, bad code and failed software projeects are far more costly in the long term, but executives are not a tribe known for thinking long term; most corporate climbers have the political skill to get promoted away from their externalized costs before anything can be linked to them.