I had the great privilege of working as a developer for 20 years of my career (actually thinking about it, in consulting I was cranking out code late at night too, so add another 5 years), but who's counting? Please do let me know if you are counting. Let's chat :). During that time, creating a new project was not always an option. Actually it was a luxury. In fact lot of the time I spent extending or implementing new features to existing systems. The challenges for me were, often I was exposed to new code bases with which I was not familiar. Today, code has become increasingly more complex. If we're spending most of our time trying to understand the code before we apply simple changes, that's a huge time waster. Worst still is the notion that we might break the system, which is not always a good career move, if done on a consistent basis.

Back in the day, my way of getting familiar with the code was the good old debugger. Often, I would type notes on paper as I went along because the debugger was a move forward only experience.  IntelliTrace fixes that problem, because now we can rewind back in code to see how we got there in the first place. Thinking about it, I spent more time trying to understand the existing code, than writing new code in these scenarios. That's where IntelliTrace is your greatest friend.

Now onto the Architecture Tools. It was hard for me to get a mental picture of the relationships between assemblies, classes and where methods were being called from, for example. Back then Find or the Debugger/Breakpoints were my friends. Today, we have visualizers in Visual Studio Architecture tools and we can depict all or parts of a solution rapidly. Particularly, if we want to understand where our focus should be as we develop.

Having whet your appetites, I'll be covering these features in more details, however, in the meantime, there are many articles and videos out there that focus on these two really cool features in Visual Studio.