July 2005 - Posts
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…