After writing my previous post "Software Architect: It's all about spaces!" lot's of people talked about it with me. For me, it's so amazing that people liked the idea of Space concept. The interesting point is, not only the developers and software engineers came into discussion, but also I had some great talks with real architects (building ones!).
Having all those nice talks, especially with building architects, made my vision about spaces more clear.
Have you ever thought about the difference between a civil engineer and an architect?
If you look at a civil engineer while working, you find him building walls, doors, floors, ceilings and ... When they're constructing a wall, they're focusing on the wall and its technical details, which is good.
Civil engineers think about walls and create them. Architects think about and create the spaces between the walls.
Imagine when a house is built. How do you use it? Do use its walls? No! You use the spaces between the walls. But the walls are the only stuff that are really constructed.
Although the walls are constructed explicitly, people use the spaces between the walls, which are created implicitly.
That's the reason you hear "Wow, such a great room" more than "Wow, such a great combination of walls"!!!
In the software industry, when you are writing code, you are creating walls.
Writing Code= Creating Wall
Now you can imagine how it would be like when you're writing code without architecting the software. It's just like creating walls, very good walls, very strong walls, but not considering how these walls will create some space.
People use spaces, not walls!
Whenever you are writing a code, you should be aware of how this wall is helping to create a useful space. If it is not going to shape a useful space, you're wasting your time.