Starbucks-fueled Developer

Saturday, January 28, 2006

VSTS Experience: Part 2

I'm a youngin. I'm in my mid-20s and I have not had much experience outside a Microsoft environment. It's what I grew-up in, it's what I know. However, I've learned a lot in the past 2 years alone about the importance of communication among a team and its members, as well as between the team and the customer. Facilitating this communication becomes essential to the success - or failure - of a project. And I believe that its the responsibility of every member of the team to ensure an open, communicative environment for team.

I honestly believe one of the best features of Team Foundation Server (TFS) is the incorporation of SharePoint. Before installing TFS, the most I knew about SharePoint was that I thought it was too often confused for a content management system instead of its actual purpose: a collaboration system. Sure, you can argue that there's very little difference between the two as collaboration systems will, most likely, manage various forms of content but the content is not the focus of the system's users; it's the communication.

With this in mind, it makes me wonder what kind of observation labs Microsoft - if any - held during the development of Visual Studio Team System as it is evident that they kept collaboration in the front of their mind throughout the development of the product. By incorporating TFS Version Control, Work Item Tracking, and general reporting functionality together in the Visual Studio IDE, essential information can be collected by developers while working in their "comfort zone". And the exposure and openness that SharePoint provides for the visibility of this information help to facilitate a collaborative environment for teams of all sizes.

Personally, I'm really excited to see how my team utilizes these collaboration tools on our future projects. Already, we've started using SharePoint as our central document repository instead of VSS. I'm anxious to see how we can extend the SharePoint environment to non-Team System projects to provide a similar environment for our "legacy" projects; incorporating FogBugz and other tools will help ease the adoption of the environment. All-in-all, I'm hoping that TFS and its related products will help change the way my team approaches our projects.

Monday, January 23, 2006

VSTS Experience: Part 1

My team is trying out Team Foundation Server (TFS) for our "new" development environment. I have to say that I was initially extremely psyched about getting to stand up Beta 3 Refresh on a machine, but after about 2 hours of use, the excitement left rather quickly.

The setup went smooth. Not a single hitch. My only thought on the installation process is that it would be nice if TFS came pre-packaged with Windows SharePoint Services and just installed and configured it as one of its dependencies. But I guess that's why they pay us the big bucks right? Overall, I think I had the machine up and running in about half a day, including OS installation, downloading the SQL 2k5 ISO, etc., which isn't all that bad given the complexity of the application.

After installing Visual Studio 2005 Team System for Software Developers, which was also surprisingly quick, even from a USB DVD drive, I started creating a sample project. Sadly, this failed about 75% through the process. I'm not sure where in the process the failure occured as I have a Team Project site that I can hit off the TFS server, but it's completely empty. I'm guessing the database processes failed because none of the site's webparts are returning any data. However, my second "test" project was created without a hitch.

My main disappointment came when I discovered that it does not appear that you can use TFS Version Control (TFS VC), which I was so incredibly excited for, without a Team Project existing. In essence, my hope was that my team would be able to start utilizing a better SCC system by just creating/adding our code to TFS VC. It appears, though, that only "Team Projects", that is, those created thru a Team System VS Edition with SharePoint and other SQL Server-assisted repositories, can utilize TFS VC. With that said, I'm not sure how the VSS Migration tool is going to work, though I have not embarked on that treturous journey. I'm not expecting it to be pretty, either, given the amount of junk we have in our 19GB VSS repository.

While I haven't explored MSF "Agile" yet, I have done a good bit of reading regarding the whole process and how it still seems to be overly heavy. I've been trying to promote Agile methodologies by working them in here and there on various projects and I don't believe MSF Agile or VSTS is going to be of any assistance, as it just seems to be unnecessarily "instructional". Sure, it'll be nice to have the various work items integrated and visible in the IDE, developers shouldn't have to "wait" until work items etc. are inputed and assigned for development to happen.

So, all-in-all, the features are nice, but the guidence isn't necessary.

Wednesday, January 04, 2006

"Page One"

...otherwise known as "The Breakthrough":

Scott Bellware
's recent series on a project he's working inspired me to dust off my copy of Domain Driven Design and explore learning how to write software that expressively tackles the problem which it intends to solve. Reviewing and continuing to read the book has lead to several insights and breakthroughs that have left me feeling as though I'm starting back on page one as a programmer. I see things, especially from a business-software perspective, that make me feel compelled to rethink how to solve and tackle problems.

My team doesn't work or even remotely think about these concepts, which should not be seen as a put down; the concepts are very, very difficult to grasp. I, for one, will admit that I've been praising and advocating the use of REPOSITORIES without really understanding what they are or their use for almost a year now, and I'm just now starting to grasp that concept alone. While understanding individual concepts and patterns is extremely important, having an intimate knowledge and understanding of their applications and purposes trumps everything else.

For these reasons, I'm setting up an appointment with my manager and few of our project managers to discuss holding several Brown-Bag events for team to develop a simple reference application together to help gain and share the knowledge of such an important concept. If my proposition is shot down, I'll attempt to do so on my own outside of work and make it available to the community. Either way, postings here will elaborate on the success, failures, struggles, and triumphs all along the way.

Here's to starting at "Page One"...