BTW, if you are reading this on weblogs.asp.net – This will be my last post here - I’ll be making my home over at http://teamsystemrocks.com/blogs/chris_menegays_weblog/default.aspx
I taught a VSTS training class in Redmond a couple of months ago and was cleaning out my inbox today and stumbled across some answers I had gotten from the product team for the questions for that class. This was a large class (about 50 people) and a lot of Microsoft field people – so there were several very interesting questions. I apologize for taking so long on getting this posted – it’s no one’s fault but my own.
Q: For the whitehorse tools, can I somehow automate extracting the JPGs into smartdocs in Word?
1 DeploymentReport can be run as a macro as in :
2 There is a Copy Image command, as in: DTE.ExecuteCommand("Edit.CopyImage") that can be ran as a macro as well.
3 We cannot produce images from command line directly (i.e. without opening VS IDE), as we can’t “see” the images from the command line. One could run devenv.exe “unattended” from a command line and execute a macro that will open the solution, produce the deployment report and images, but it needs to be on the machine with VSTA present.
Q: Can you articulate the value of the System Diagram?
A: Keep configuration for multiple environments separate from the debug (VS) environment
Q: If I have a signed assembly, how does that effect code coverage and instrumentation profiling -- what about Debugging in delayed sign mode - clr team person?
A: You add a resign key in the code coverage setup window (run config)
Q: How do i customize the Manual test template - and can it be Excel? How?
A: It’s in a folder on the local HD. Excel is not supported
Q: Can I run iterations for load tests rather than duration?
A: This feature is not directly supported by the load test, but can be achieved in two ways:
- Web Tests have a data binding feature to run each row in the test data exactly once. If the database has n rows, the test will run for n iterations.
- Users can do this through code. Load Tests have an extensibility point called the load test plugin. The plugin enables the user to hook various aspects of the test. The user could write a plugin that counted the number of iterations and stopped the test when the desired number was hit.
Q: How do I setup multiple user credentials for load tests?
A: For basic auth or NTLM auth: In a Web Test, click on the web test node. The user name and password properties can
be bound to a datasource containing the user names and passwords of the users you wish to emulate. Similarly, if the app uses forms auth, the username and password can be bound to the POST parameters on the form.
Q: Are the browser types in load testing extensible.
A: XML doc on my local HD
Q: What happens if I run testing/code coverage on an assembly without the source code?
A: You can see percent coverage, and publish those back, but you can’t see the code
Q: What reporting will be available for Team Build ?
A: The data is in the warehouse, this is reflected in several existing reports
Q: If a PM deletes a project task, how will that be handled in the work item system? In beta 2 it seems to do nothing.
A: Nothing happens
Q: Can I prevent people from seeing workitems not assigned to then? Can I limit the ability to create work item queries?
A: No – BUT, you can use project structure and classify work items and place permissions on the different structure elements.
Q: Can Team Foundation Groups be copied from project to project?
A: Maybe you can share that group into a new group in the new team project
Q: What is the recommended practice for items that are normally shared in VSS (can I have a shared AssemblyInfo)?
A: There are a couple options here, depending on the needs of the organization.
- Branch those items and propagate changes between the branches as appropriate using the merge command. This is most appropriate for people who wish to be loosely coupled to the files they have shared. Frequently, these teams have pinned their shared files in VSS so that they are isolated from changes to those files and can choose when they want to accept changes. Merging is just a different way of accepting these changes.
- Move the files to a central location and use tool-level sharing mechanisms to reference these files from this location. This is most appropriate for people who are tightly coupling the work of the various teams that have shared the files.
Q: Can I backup and restore smaller units than the entire SCC database. For instance, a single file?
Q: Encryption of source code and who has access to the SQL database. How is that controlled? A: Single user account (using role based security) for access to the DB – it’s not the individual user accounts. Files are stored compressed as patches in the SQL server, so there is no encryption. We rely on SQL access control for this – only one account has access to the data tier (the account that the app tier runs as) and no other users should be able to get to the database.
Q: How do I lock SCC down to prevent network admins people from access the codebase?
A: You can do that with the access control lists (ACLs) in the repository by denying permissions to the network admins. The permission model allows you to grant permissions at any level of the repository hierarchy and control how those permissions are inherited from containing folders. It’s modeled after NTFS permissions, which most people are already familiar with.
A couple of weeks ago, we (Notion) held a public training class for VSTS. We didn’t see the demand we were expecting, but that hasn’t stopped us from scheduling another one on Aug. 8-10. The class went well, and the students seemed to enjoy it.
Anyway, for those that were in the class, here’s the Q&A:
Q: Dave was asked a question about RSS support for VSTS for notifications. That won’t be in there, and I think the question was more around partner support. There doesn’t seem to be any support from partners on this at this point. Feel free to chime in if you know of someone working on something.
Q: Will C++ support unit testing?
A: No, this was cut a few months back. What? You didn’t get the memo?
Q: Can you add a work item type to an existing project?
I’ve also gotten answers for a class I did in Redmond back in May (I’m a bit slow on that one). I’ll have those answers up shortly.
BTW, if you are reading this on weblogs.asp.net – I will only be cross-posting for awhile longer, then I’ll be making my home over at http://teamsystemrocks.com/blogs/chris_menegays_weblog/default.aspx
Cross-posting on: http://teamsystemrocks.com/blogs/chris_menegays_weblog/default.aspx
Someone pointed out Jeremy Miller’s thoughts on a VSTS talk I gave in Austin on Monday. Of course, I’ll have to comment on the “Menegay was completely off his rocker” comment – I’ll get to that in a minute ;-)
First, some background - The whole talk was about an hour and a half, so I wasn’t able to cover everything in detail, and I wish I had been able to show some more demos – as I think that would have helped with some of Jeremy’s concerns. My overview talk is generally not targeted at developers – mainly because I largely agree with Jeremy that things like unit testing, etc. don’t add a ton over what’s available today for developers. I do think that VSTS offers more than the open source tools, but that’s because I’m a buy, not build, guy. The open source products always make me think of some child’s toy with “some assembly required”. The lifecycle aspects of VSTS are the real value. If a company adopts VSTS for just the developer features, they are really missing the point, IMO.
That leads me to the “mindless zombies” comment. For those that have never seen my talk on VSTS – I try and drive one point home that is “my vision” of how things should be. MS doesn’t make you do this in VSTS, and I try to be clear that it is MY vision. That’s probably why Jeremy thinks I’m off my rocker, rather than the team at MS. So here is my vision - I think that ALL work on a development project in VSTS should be driven from work items. If you are working on a task, you are doing so because a work item tells you do so. You then figure out what doing that task means – so you’re not entirely mindless. That should not be terribly foreign to most people, as generally we bend to the will of a project manager and we do the tasks they assign. The problem is traceability. Work items allow the project manager to communicate what to do, without having to tell people in person. Work items allow traceability.
This is entirely my opinion, but I believe that many developers are an impediment to getting software delivered, because they feel somehow privileged – as if no one needs to know what they are working on, even the person paying them to do the work. Imagine a doctor that is performing heart surgery and thinks, “You know, I’ve got all the tools here, why don’t I go ahead and remove this guy’s appendix. He doesn’t need it anyway.” Obviously – the average person would throw a fit if that happened – especially after getting the larger bill for that “extra work”. But that is what programmers do all the time. And doctors are in a more specialized field that requires a higher level of training than programmers do. Yet they aren’t exempt from policy, procedures and PROCESS – but developers think they should be. So – while I don’t think developers should be mindless zombies, I do think they should do what their management tells them to do – if they don’t like it, they are free to get other jobs. If a developer is told to do task XX, they shouldn’t be doing task YY instead, or worse, some task ZZ that isn’t even a part of the current project scope. This is called unsanctioned work, it is work that hasn’t been agreed to, and might be out of scope and cause problems with other aspects of the system. I have no issue if a developer finds a problem while fixing some code and makes a quick fix – it would be nice to have them document that by creating and closing a work item for their change.
Process isn’t for programmers, it is for all the poor schmucks that pay for those programmers to have jobs. And THEY are the customer. If a developer isn’t willing to help the customer, that’s one developer that doesn’t need to be “retained”. So developer retention isn’t a real problem IMO. To use the worn-out house construction example: Would you hire a builder to build your house if he had no process? If you KNEW he was just going to hire 10 workers and say “go build a house”, would you feel confident that your money was being spent? Especially if you had to pay for the entire cost and the money was 80% spent before you got to see the house? This is pretty much how a lot developers want to work, they want to just go grab their hammer and start putting up walls, regardless if there is a process in place that says you need to get permits, lay plumbing, etc.
I actually think Jeremy’s summary was quite good, I didn’t think his “bad” was all that bad, and the “ugly” wasn’t all that ugly. The only thing in Jeremy’s posting that I really have any issue with is that VSTS is aimed at companies that want a highly laborious process. I clearly need to revise my talk a bit so that I don’t give people that impression. I would argue that people doing Agile and TDD are implementing a more laborious process than most shops use, and a more laborious process than VSTS requires. I over-emphasize task tracking in my talk because I think that’s the biggest added value. I’ve never met a project sponsor or IT/Dev manager that said “I don’t care what the developers are doing.” They would all like more visibility into what’s going on. And if the company’s internal project teams don’t offer that, I would be more than happy to have those project sponsors outsource their development work to Notion, and we will give them that visibility J
Anyway, I don’t feel I’ve offered a lot of clarity into my thinking, and there are probably even more people that think I’m off my rocker now. If anyone agrees with me and has better ideas of how to articulate the vision – I’m open to suggestions.
History: Last year, Mickey registered the domain name teamsystemrocks.com and started using the address to run his blog. I had been thinking about a VSTS community site for awhile and had the chance to talk to Mickey and we decided to collaborate on this. We also got some prodding from of the guys at MS who thought we should do it as well as some help from Joel and Dave. Omar actually did most of the heavy lifting to get the site live. I plan on moving my blog there and being a contributor to the Team System News blog. The Team System News blog is meant to have several interested people all indexing (manually) VSTS content and blogging it. I’ll still have my own blog for original content.
One of the key site features will soon be an implementation (hopefully) of the beta of File Gallery for Community Server. The idea is to allow people to upload their tools and customization to VSTS and then have discussion forums to support that. This could be MSBuild tasks, web test validation rules, custom process templates, etc. Omar’s had some struggles with the File Gallery pieces so far, but hopefully we’ll have that live soon. If you have any suggestions, go to the site and put them in the forum…
Ok, we recently brought up a Team Foundation Server at our hosting company and it’s been a bit of a chore. First, I tried to connect to the TFS without being on the same domain. The first time I connected it would prompt for a userid/password. After that initial prompt, which looked promising, it wouldn’t prompt again on future requests. So that didn’t work. So I joined my laptop to the AD domain and got that part working – which is REALLY cool. Ok…. it doesn’t look any different than running within a VPC, but the idea is still really cool that I’m hitting my TFS over the Internet. I was doing a VSTS presentation at a local company last week and was able to hop on their public WIFI connection and connect VS up to my TFS – I didn’t have the guts to try and do my demo that way, but that could be happening soon. I have a Verizon wireless broadband card, and have this “vision” of doing a demo for people where I use that card to connect to TFS and look at work items, check out code, etc. The card has really fast download speeds, but the upload is very sluggish, so I’m not sure how realistic that idea is.
Now, back on topic, to get connected to TFS, I had to install Visual Studio Team Suite (beta 2) on my local laptop. While this goes against my own advice that I give people, I did it anyway. Just remember – do as I say, not as I do! My laptop hasn’t been formatted in a over a year and half, so it’s overdue and it’s been acting real flaky lately anyway. So I figure when I’m ready to get rid of VS2005, I’ll just rebuild the whole machine. VS2005 runs much faster locally than in the VPC, but I’ve started noticing a couple of things now that I’m not in a clean environment like a VPC.
- MS anti-spyware breaks web and load tests. In order to run web and load tests, I had to turn off the spyware tool.
- VS seems to blow up on me much more often- most recently while running load tests against a server, Visual Studio just gave up and shut down.
- Interactions with TFS are slower – which you would probably expect. I’ve looked at some of the webservices traffic that flows, and it seems more chatty than I would have thought. For instance, turning on the work item checkin policy is about 7 web service calls. That seemed a bit excessive to me. There also seems to be some sort of polling going on. I get regular hits on the web server, though I don’t know if that is from VS or something on TFS itself.
Anyway, I’ll post more info as we start using it more. I hope to get Dave and Omar using the same TFS soon as well, and we’ll move our code into it shortly and start “living the dream.”
Now that I’ve been traveling more with all this Team System stuff, I find myself more and more inconvenienced by the Wright Amendment. For those that don’t live in Dallas, this is a federal law that restricts travel into and out of Love Field, which is where Southwest Airlines flies. Essentially, you can’t fly directly out of Love to any non bordering state. So if I want to fly direct to Chicago, I can’t take Southwest, because I can’t fly direct from Love Field. On top of that, if I don’t mind stopping in Tulsa, Southwest can’t even help me book connecting flights, I have to do that myself – it’s the law. Now, any reasonable person is problem saying “Huh??? That’s crazy!” The reason for all of this is supposedly to “protect” DFW International airport. This is all somehow better for D/FW and better for the area residents, but I’ve never figured out why.
Anyway, while booking a flight on Southwest to go to Houston (I can go there non-stop!) I found out that they are lobbying to kill the Wright Amendment, and included a link to their site with more info on this -> see the banner on the right. I found this interesting, and while I probably won’t take the time to “contact the media”, I figured I’d at least post a bit about this.
Rob Caron's blog has good info on why you might, or might not want it for VSTS.
My recent post about various vendors integration with Team System seems to have caught the attention of someone @ IBM/Rational. I can only assume it's a salesrep. I personally think Microsoft is going to push Rational out of the .NET tools space within a couple of years, and I might as well just outline my issues/concerns with Rational in a post. This got to be too long to just put it in the feedback part.
First, let's address the Robot issue - sure you can buy and run these tools, but they aren't integrated. Ideally, I could run my tests from Team System (VSTE/ST), and have a test type for GUI tests that launches Robot. The results of the Robot test would then be loaded back into Team System and I could publish those results to TFS and run reports on that. Sure, I could run 2-3 different tools and aggregate my results, but that's a pain in the rear. That's why I've been looking for companies that actually plan to integrate - those will be the ones that people will want to use. Automated UI testing is a feature that is sorely lacking from Team System, it sounds like Compuware and AutomatedQA are going to fill that need by actually integrating. I've never used either of their tools (Winrunner and Robot are the market leaders), but if they are decent, I think people will use them for the integration.
Second, I should probably give my thoughts on the source control tools. Team Foundation Version Control (TFVC) and ClearCase are pretty equivalent in features. One feature that Rational will try really hard to sell is the idea of "multisite". This is useful for companies that have large, spread-out organizations and want multiple ClearCase servers that all sync with each other. TFVC doesn't support this in V1. Of course, the customers I've talked to that use ClearCase have a pretty consistent opinion about multisite: 1) It's super expensive - 2) it's awfully hard to setup and administer. I've even talked to a customer that paid for it, and gave up trying to use it. This leads to the number one problem facing ClearCase that I have heard. Every large customer that I've talked to that has ClearCase also has a ClearCase administrator. I did a quick monster.com search on "clearcase administrator", and there are actually openings with that exact title. A common question I get about TFVC is: "How hard will this be to administer?" The first time I was asked this question, I didn't have a good response, because it shouldn't be much trouble at all. The people that ask this are usually using ClearCase and have 1-2 people dedicated to keeping the thing running. I could be wrong and TFVC could be an absolute nightmare to keep up and running, but I doubt it.
That being said, I think one huge barrier to adoption for Team System is ClearCase . Many companies have standardized on it, and they've spent an awful lot of money. The guy that made the decision to spend all that money is going to look awful silly dumping it and buying Team System. I've talked to some companies where the individual teams would love to move to Team System, but the corporate "mandate" is ClearCase , so it would be a political issue. The ideal solution for these companies would be to keep using ClearCase and have it work with all the cool Team System pieces, like check-in policy and work item relationships. According to Rolf Nelson (see feedback on the previous post), this really isn't an option based on the way the VSTS APIs are setup. I think that's unfortunate - maybe that comment will stir up someone on the VSTS team to validate or invalidate that claim.
Over the past few weeks, I've learned about some things in Team System that are different than what I had been thinking for some time. Some of these items are things that I was told by others many months ago, some of them are things that I think I just started assuming were true (because they should be!), but I apparently never validated. I started thinking about this a bit more after having a brief conversation with Eric Lee at TechEd. For those of you that don't know of Eric, of the people I've met at Microsoft, he probably has the most in-depth knowledge of Team System across the breadth of the product (if that makes sense). He admitted that he has things as well that he'd been assuming (some of which that were originally supposed to be in the product) that turned out not to be true. I wonder how many other people have some bad assumptions with Team System? Team System has proved particular challenging, because when Microsoft decides to add a feature - they "announce" it. But when the feature gets cut - there is no such announcement.
So, in the spirit of trying to be transparent with some bad assumptions that I had, the following is a list of items that I once thought were true, but I have found out that they are not!
1. Manual tests can be set up in process templates - nope, the manual test template is actually stored on the local hard drive and cannot be centrally managed. Who missed that?
2. Manual tests can be Excel spreadsheets - I think I heard someone say this once and have been repeating it ever since. Turns out they MUST be either text or Word docs.
3. "Clean build" check-in policy makes sure your code compiles cleanly before a check-in. - This policy seem to just check the errors window - so if you don't compile first, it doesn't complain (of course, VB's background compile will help with this).
4. Check-in policy can be set in a process template - I mentioned this in an earlier blog. I think this was a feature that was cut.
5. You could create test lists from VSTE/SD - VSTE/SD doesn't include Test Manager, just Test View, so you can't create test lists. Where this gets really weird is that you need a test list for the build process... you extrapolate the rest out. This has to change by RTM...
6. You can add a webserverendpoint to a database server in the datacenter diagram. - This may seem odd to some people, but I always figured I could create a "logical" server that had both my SQL Reporting and SQL DB on the same logical box. This can't be done, and they must be separate logical servers. This makes sense when you think about it - I just never really put much thought into it. That said, I'm not sure I like it...
Well, that's it for now, I'll post some more as I learn more and invalidate bad ideas that I might have in my head.
I just finished reading Joel's latest blog. He has a good post about the difficulty of adopting software process in a practical matter. He walks through the reasons and gets to the point of how Team System will help with that. While I haven't seen the tool Joel's team is working on, I'm hoping to soon. I like the idea of editing my work items, etc. in a currently created team project. If you are interested in process customization with VSTS, go over to his blog and let him know. Then maybe that will motivate him to "announce" a feature list or something ;-)
More Posts Next page »