Towards a New Software Architecture
Thoughts from the shower.
When I said that apps should be simple and that one should be able to decorate them according to one’s own preferences, that’s an architectural expression. It expresses a vision for others to follow.
Software is “built” by one or more people. Software needs some guiding principle. Structure matters. But not because “good” structure has any value in itself: it matters only as long as the software is evolved.
I start with a small piece of code. Then add a little. As I add, I find common things. I extract and push code into base classes. Generations later, the software has grown. One guiding principle was Once and Only Once or Don’t Repeat Yourself. Such principles are architectural expressions.
Someone builds something that impresses people and comes to serve as an example for others. Flickr, Basecamp, etc. They guide others.
Genre theory. Someone writes something. Others are inspired. Genres emerge. The style, structure, attitude, whatever, is the guiding principle.
Regardless of whether there’s one developer or many, we need guiding principles, examples, architectural expressions. When there are many, more is needed to align. Teams build cultures and successive projects with the same team need less to align.
We need a global culture. Or, a global culture would reduce the work to align.
Some define standards, write documents, invent methods, etc., all with the purpose of aligning, or helping others align. They are tools for alignment.
Got to eat.