I found this interesting and can see many different benefits and advantages to using visual organization techniques and spatial representation for development activities.
This is a very important concept and I really hope it goes much further than this in the coming years.
We need more creative ideas like this to take place. The concept of being able to see visually represented relationships in code is so key when dealing with how large our development platforms, languages, and services have become.
The entire development experience is still rapidly changing. At the heart of it is our growth and change as a society. Businesses are becoming smaller and more specialized. This allows the business to be extremely focused and deliver more than a larger more broad based competitor (in that particular specialization). More and more we see trends of people becoming experts and specialists in specific niches, and this also maps out to how development is evolving.
For each small style or section of development we create specializations. We have so many different development languages; all with their own patterns and skill sets. Yet at the same time the reason many people choose a development language is a direct result of the tool set, services, community, and overall development experience of that language.
Consider all the different technologies we interact with regularly. Now imagine how many ways those technologies can be broken down. How complex each of those technologies actually is and how hard it is to wrap your head around the layers and relationships each element of that technology might possess.
Think about how complicated the development experience, processes and specializations can be on the front end. There is a lot more there than many people realize. And even as developers we sometimes forget how many skill sets we actually learned in order to develop that SharePoint brand so effectively.
Then the back end get’s even more specialized. Think of all the different pieces of the SharePoint pie. We have workflow specialists who understand the many nuances of workflow development. We have search specialists who need to understand how language is interpreted and how the most relevant content can be found. Think of how web content or web publishing experts like Andrew Connell understand the many nuances of web publishing. Then there’s the entire BI layer which might go beyond KPI’s, Excel Services, and the such right into SQL Reporting Services, or Performance Point Services. Or how about the BDC or integration specializations?
Now think about that for another second, and you realize that there is normally an IT Administration or IT Pro side to each of these for configuration, implementation and management, as well as a development side.
Now think of one of those pie pieces I mentioned like workflow development and think of how we normally have people who build forms, and business logic, another group who might do data access layer work, another group who might build utilities for both groups etc etc. It’s extremely complicated and the deeper you get the more and more you realize how much is really there under the surface.
Now imagine how all of this impacts communication, how it impacts learning, or staying up to date or fully understanding a product or particular technology.
As a direct result of all of this specialization the entire field of development and technology is rapidly evolving in how we train, learn, and interact. More certifications come out every day, new programs and courses from education groups. More training companies pop up. At the same time we have a wealth of new development tools. Teams and companies that just build better tools to make the development, or learning experience easier.
Tools to build the communities around these groups or help them communicate are generated and tested every day. Or tools to help us achieve a better understanding of the different things we develop, build, or utilize.
We need to continue to grow, innovate and build our development support framework otherwise it will become exceedingly difficult to keep up with the complexities of our technology, and the demands of our users.
This project from Microsoft Research is a great step to helping us better understand just how large and complex our code, services, and development experience has become.
Hope this helps,