Editor's note: Welcome to .NETRocks Conversations, excerpts of conversations from the .NET Rocks! weekly Internet audio talk show. Hosts Richard Campbell and Carl Franklin chat with a wide variety of .NET developer experts. This month's excerpt is from show 629, with Joel Semeniuk, a Visual Studio ALM MVP and Microsoft Regional Director, founder of Imaginet Resources, and executive vice president at Telerik. Richard and Carl chat with Joel about his perspective on organizations' use of Visual Studio Team Foundation Server (TFS) in enterprise software development and the trend toward using cloud-hosted TFS.
Carl Franklin: So what are you doing these days?
Joel Semeniuk: Probably too much. As you may or may not know, I'm working with Telerik these days on the new team productivity division. At the same time [Imaginet has] been still doing so much work in the ALM community with Team Foundation Server all around North America and the world. My life is living and breathing agile, lean, and ALM in general.
Richard Campbell: So TFS, what sort of customers are using it?
JS: You know what? It's getting more diversified. We have a whole spectrum of customers. They're all using TFS, and we're also getting some of the smaller shops that are using TFS.
CF: So what kinds of projects have you been seeing out there, and have they been differing in scope or size or scale?
JS: A couple stand out. Let's say one of the cheap manufacturers out there was actually looking at using TFS to manage all of their source code across all their platforms. So we're talking Windows, Mac, UNIX, all using Team Explorer Everywhere.
JS: So the entire organization said, "You know what? This is a pretty sound source-control environment. We don't want to have diversity across different platforms anymore for source control. Can we use TFS for this?" The answer is yes. Team Explorer Everywhere does that. So we're getting a lot of those types of implementations, especially for the larger groups. We're also seeing a lot of interesting build/deploy scenarios. So from a usability perspective, customers are using primarily TFS for version control system[s], but they're also using it as an automated build management system. We've got some pretty unique customers that have automated builds [for] .NET, C++6.0, VB 6.0, Visual Fortran, [and] InstallShield all inside of a single build.
CF: What? Visual Fortran?
JS: Amen, brother.
RC: Now you're just scaring me.
JS: But I guess that just kind of gives you an idea of how flexible the underlying platform is and [how] people are using it not only for their greenfield .NET applications. They're also using it for some of their old code and leveraging the automated build.
RC: You know, at the same time that TFS has been out, Git seems to have really gotten a lot of traction.
JS: You know, Git is a wonderful platform, and I love it because it influences everybody else around it. I'm sure in all our careers we can kind of identify some of those really fundamental tipping-point type of products that made everybody else think differently. Git is one of those, and you're seeing a lot of early adopters, a lot of passionate people adopting Git and really kind of evangelizing about why this is a better type of source-control system.
RC: Nice. The other side of this is GitHub, which is where the whole idea of open source repositories, you just put your code up there.
JS: That's another big trend that I'm seeing. I predicted on my blog last year that the cloud would start taking steam. I didn't see it. There were a few customers that were dabbling in it. I didn't see a huge amount of customers move toward this direction, but now I'm seeing the small to medium-sized businesses going, "You know what? We don't want to actually have the liability of maintaining our own source code. We would love to just turn a switch and be able to check in our stuff, check it out, have things built in the cloud." TFS has a number of partners out there that are offering cloud services for TFS and...
RC: There are hosted TFS services.
JS: Yeah, but Microsoft has also demonstrated porting TFS to Azure.
CF: I never thought that companies, especially Fortune 500 companies, will go for [the cloud] just because it is offsite and it is sort of critical data. I mean, not just critical in terms of losing it, but in terms of being compromised. Your source code contains all sorts of passwords and secrets.
JS: Well, I think it's quite a variety of the ecosystems out there. I mean just like hosted email. I kind of put it in the same mindset as email is mission-critical to almost every organization I know.
JS: But there are a growing number of people who just don't want to deal with the email and their own repository.
CF: Well, and also the fact that it's mined. I mean, you don't think Gmail mines your email?
JS: Of course not.
CF: So you have that sort of lack of privacy when you're using public tools.
JS: Yeah. But I mean essentially I think that's going to be a growing trend. I mean people, and again this might not be for Fortune 500 companies yet, most of them have infrastructure that's ready to take on your services, then they have methods and processes and data centers that are already built out and there's a heavy amount of investment in there for that. What I'm seeing is small to medium-sized companies either starting off in that boat or moving there.
JS: You know, I'm working with a very innovative company out in Calgary right now who has been using VSS for the last number of years and finding that it's flaky and not scalable for their needs.
CF: It's Visual SourceSafe.
JS: Yeah, Visual SourceSafe. The biggest question is, so where do I migrate this stuff to?
JS: And can I stick this in the cloud? I don't want to rip about what my building brings down because we don't have the data center and secondary support safe is ready to manage all my data. You know, my ability to trust my own infrastructure is way less than worrying about who's looking at my code.
RC: I guess the interesting point is if you don't already own a data center, these days there are very few compelling reasons to own. Everything you need is out there now. You can pay for it by the byte and by the CPU cycle.
RC: I was just poking around at some of the folks that are providing hosted TFS, and it's around $100 per developer per month.
CF: Yeah, that is cheap.
RC: If you think about the infrastructure necessary to run TFS, it's very cheap.
JS: Right, and especially if you want to scale that out. So TFS is really, it can scale quite dramatically, and one of the ways that you can get additional scale is by separating your boxes. So you separate your app tier from your data tier, you might want to separate obviously your SharePoint services on separate computers, and of course your analytic computers on another services. So now when we're scaling to that point, we've quadrupled the number of either virtual servers we have or physical servers that we have to kind of maintain this level of scale. Whereas, this is all abstract and kind of transparent to the people who are doing this for services in the cloud, which already might be set up to build to scale in that way.
RC: Yeah, it's pretty compelling.
CF: It is compelling.
RC: Yeah. We used to just keep our source code on a hard drive or a floppy disk, you know, way back when.
CF: Do any of these hosted TFS solutions use added encryption or security?
JS: You know what? That's a good point. I have not had that level of experience with a lot of them. That would be something, criteria that if I was a consumer I would be looking for, first of all making sure that my connections were encrypted so no one is going to be sniffing my data as it's going back and forth. But second of all, making sure that the storage itself is secure. And Team Foundation Server has the infrastructure. It has the ability to provide that because it allows you to have different collections for different projects, and each different collection is literally its own database. So from a physical segmentation perspective, there's no reason to actually have one company's projects on the same database as another company's projects. You can have physical segmentation as well as specific security around that.
RC: Yeah. I imagine I mean you've been in TFS so long, you're around long before it was hosted, you've got your infrastructure in place.
JS: Yeah, yeah. And you know what? We've worked with so many companies that have adopted it early and have invested in the infrastructure, so it's refreshing to see customers move in that direction. And it's interesting how our involvement doesn't necessarily go away because we're still kind of helping them think about how to structure their source control, how to capture the requirements and the processes that kind of exist within it. I mean, there are always a couple of sides to the equation, you know, setting it up, and getting it running, and making it scale. But how do you use this thing?
And you know what? We're still seeing some adoption blockers primarily. I mean, remember what TFS does? It does everything. It makes coffee, it wakes you developers up in the morning, all that good stuff. But people are mostly using it for source control and automated builds. Until recently, I would say the majority of the customers, the bigger customers, haven't really been using it to record stuff like their bugs and tasks and requirements and stuff. But as of recently, a lot of the analytics have improved with the tool, giving people access to data, that raw form of data in Excel way more easily, so they can pop up in Excel and see all these magical numbers. Well, all of a sudden people are going wait a second, there's nothing in that graph. Why isn't there anything in that graph? Well, because you're not tracking it. Ooh, we need to track that. And so that is driving a lot of the behavior for people adopting incrementally some of the tracking features of Team Foundation Server as well.
RC: So yeah, I feel like there are so many different pieces in here, in some ways it is intimidating. A lot of folks are just like hey, my process is fine, I just want a place to put my source code.
JS: Yup. And you know what? It is intimidating. I've had to specialize quite a bit over the years. So as an ALM MVP, I still participate on all the great discussions that we have with Microsoft, but it goes down to some rat holes and deep inside the bowl of some feature of TFS that I just have decided that I'm not going to become an expert on because the surface of the product gives me so much more opportunities to focus on other things.
JS: There are still some areas of the product in 2010 that don't scale well to usability. I mean, really it doesn't provide a good way of capturing requirements.
RC: It's just not about having a place to put your data that's going to survive your office burning down, but also how well does it function if the Internet is besieged for one reason or another.
There's much more! You can find the full interview at www.dotnetrocks.com/default.aspx?showNum=629.
Richard Campbell and Carl Franklin (both Microsoft Regional Directors) are the voices and brains behind .NET Rocks! They interview experts to bring you insights into .NET technology and the state of software development. They’re more than dry technical interviewers—they have fun!