I’ve been brainstorming about ways to solve the N-dimensional code organization problem, and am thinking about developing a Smalltalk-like code-browsing experience. Even after I left my Smalltalk job and moved to Java, I configured Eclipse to give me the same IDE experience: an object browser that let me focus on Classes and Methods, which was the level of abstraction I was working at. (And not files.)
How I see the problem:
When developers ask “Where does this file go? What do I call it?”, they’re really asking:
“How do I map this multi-dimensional concept onto a single hierarchical path?”
Example: A customer email notification worker
- Domain: Customers
- Technology: Worker
- Integration: Email
- Access: Internal
I think that the unit of thought should be:
- Modules (not files)
- Functions (not line numbers)
- Concepts (not directories)
- Relationships (not imports)
This is probably the most promising direction for truly solving the n-dimensional organization problem.