Monday, April 25, 2011

Evaluating Application Lifecycle Management Products

By application lifecycle management (ALM) I mean all the technical/business processes that go into managing software applications end-to-end and all the interactions along the way with other applications, infrastructures, business processes, customers, partners, and vendors. This includes infrastructure management, portfolio management, project management, resource management, demands/finances, processes, builds & automated testing, testing management, deployment management, configuration & version control.

It’s always good to ask the proponents & evaluators of ALM products/solutions the list of questions below in order to see whether they have a viable alternative to Microsoft Team Foundation Server (TFS). Question 21 in particular is vital because it shows the hidden costs (which are less than the costs of all integration being manual) on picking ALM solutions and how this process is primarily an exercise is looking for tight data integration between the ALM processes being built-in. It's a reminder to all of us that the whole term "Application Integration" is a misnomer. It's really "Data Integration" and its where most organizations seem to spend most of their IT dollars and more than they should because most people fail to understand this misnomer.

Questions 20/21 are the #1 reason why I'm a big fan of TFS. The foundation for all of that is all built-in. If you look at the power of Network Isolation in Visual Studio Lab Management and how it tightly integrates with all the other processes/data in TFS, you'll see what I mean. You'll never look at the millions annually that many IT organizations spend making up for theses integration difficulties the same ever again. And frankly I refuse to accept that TFS is any sort of holy grail. If a more effective alternative (or collection of alternatives) comes along with better ROI then I'm all ears.

Here's the questions:

1. How does the product/solution do project planning (including work breakdown, areas & iterations)?

2. How does the product/solution do applications' portfolio management?

3. How does the product/solution do Human Resources Planning for projects/teams? This could include (or at least be integrated easily) information on managing demand/priorities and the financials for the projects/teams.

4. How does the product/solution do infrastructure/machines planning/management?

5. How does the product/solution do requirements analysis?

6. How does the product/solution do testing management?

7. How does the product/solution do automated testing?

8. How does the product/solution do software architecture (i.e. UML, diagrams, etc.)?

9. How does the product/solution do design (i.e. wireframes, mockups, etc.)?

10. How does the product/solution do development/compiling software?

11. How does the product/solution do documentation management?

12. How does the product/solution do version control on project artifacts (i.e. code, documentation, etc.)?

13. How does the product/solution do bug tracking?

14. How does the product/solution do risk management?

15. How does the product/solution do task management?

16. How does the product/solution do environments provisioning/decommissioning?

17. How does the product/solution do environments' templates management?

18. How does the product/solution do auditing/compliance from end-to-end?

19. This is a 18-part question (i.e. on each of the 18 capabilities) - how do you customize the capability in case of a business need (i.e. changing vision, changing processes, reorganizations, mergers, acquisitions, etc.) and the need to integrate with processes not covered in the 17 capabilities listed?

20. This is a 153-part question (i.e. half of 17*18 on each of the first 18 questions) - how do each of these capabilities integrate with each other?

21. This is also a 153-part question - how can each of these integrations be customized if needed in case of a business need?

22. This is a 6+ part question - How does the product/solution integrate with the organization’s current key users' tools - i.e. Office Excel, Office Project, Clipboard, Outlook, Visual Studio, Eclipse, etc.?

23. This is a 5+ part question - How does the product/solution integrate with the organization’s current key server/infrastructure tools - i.e. VMWare, Hyper-V, Active Directory, SQL Server, SharePoint, etc.?

24. How does the product/solution integrate with other product/solutions that the organization is using, thinking of using, partnering with other organizations where they need to integrate, or unplanned future integration needs? For example, DOORS, Rational, Google Apps, etc. or other types of systems (i.e. Oracle (PeopleSoft, Sun, Siebel), SAP, SalesForce.com, etc.), and cloud solutions like Service-Now & Concur?

25. What is the backup/recovery process for the product/solution?

26. What does the potential migration path away from this product/solution to a future ALM product/solution look like?

Wednesday, March 30, 2011

Integrating with Microsoft Test Manager

A big reason why Microsoft is winning the war for minds in the IT industry is because of all the capabilities for integrating their tools with your world your way. Here's a list of 10 useful links to help you get going on integrating your organization's ALM processes with Microsoft Test Manager.

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.testmanagement.client.aspx

The Microsoft.TeamFoundation.TestManagement.Client namespace opens up all the key MTM functionality.

 


http://msdn.microsoft.com/en-us/library/dd465178.aspx

API Reference for Testing Tools for Visual Studio ALM


 

http://msdn.microsoft.com/en-us/library/dd470570.aspx

Extending Visual Studio Application Lifecycle Management


 

http://msdn.microsoft.com/en-us/magazine/cc507647.aspx

Team Foundation Server Event Services

 

http://msdn.microsoft.com/en-us/library/bb130306.aspx
Finding Bugs, Tasks, and Other Work Items by Using the Work Item Query Language and the Client Object Model for Team Foundation


 

http://msdn.microsoft.com/en-US/library/bb130146(v=VS.100).aspx

Extending Team Foundation 2010 using API & Object Model

 

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.workitemtracking.client(v=VS.100).aspx
Microsoft.TeamFoundation.WorkItemTracking.Client Namespace

 

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.testimpact.buildintegration.buildactivities.testlist_methods.aspx
Microsoft.TeamFoundation.TestImpact.BuildIntegration.BuildActivities.TestList Methods

 

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.testimpact.client.aspx
Microsoft.TeamFoundation.TestImpact.Client Namespace

 

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.client.tswaclienthyperlinkservice.aspx

A utility class to generate Team Web Access hyperlinks

Thursday, March 17, 2011

Application Lifecycle Management 2010 Resources

http://msdn.microsoft.com/en-us/library/bb385832.aspx
What's New for ALM in Visual Studio 2010

http://msdn.microsoft.com/en-us/library/dd409436.aspx
UML Diagrams - Activities, Components, Class, Sequence, Use Case

http://msdn.microsoft.com/en-us/library/ff657795.aspx
Generating Code from UML Class Diagrams

http://msdn.microsoft.com/en-us/library/dd286726.aspx
Automated/Coded UI Tests - Manual->Automated, Record User Actions, UI Controls & Validation,
Data-Driven Testing, Link Test Cases & Requirements, Running, Best Practices

http://msdn.microsoft.com/en-us/library/dd264915.aspx

IntelliTrace - faster debugging, non-repros, support scenarios, collection levels, navigating events/calls/etc.

Wednesday, February 23, 2011

Life for IT Directors

Here's a fictional scenario of a meeting between a TFS Consultant and a IT Director.

TFS Consultant: Hi I'm Alex and I'm the TFS Consultant you hired to work for a brief engagement in your company.
IT Director: Hi please call me George. Oh yes you're the guy putting in the new version control system to replace SourceSafe.
TFS Consultant: Yes that's the plan George. And while I implement the new Version Control would you like to look at implementing any of the other TFS functionality.
IT Director: No thanks. Our processes work very well here. We'll just be using TFS for Version Control.
(Knock on the door)
Accounting Manager Tom: George, I need to get the expenditure numbers by project for year to date.
IT Director: Excuse me Alex. I'd like to get this for you Tom but so far I've only gotten responses from 2 of the 8 project managers and even both of those are mostly inaccurate because the developers aren't responding to the emails to go back to their timesheets and email in the numbers.
Accounting Manager Tom: Well we have to get this by Friday.
IT Director: OK I'll tell the managers to stay late tonight and tomorrow so we can get this done. But please understand Tom that I lost my best PM last week who took a new job and left with the complaint that she had to stay too late too often and had problems with daycare.
Accounting Manager Tom: I see but the CFO insists on this so we must get it done.
IT Director: OK (Tom leave). Umm Alex where were we.
TFS Consultant: We were discussing how I'm going to migrate the version control from SourceSafe to TFS so all your developers & everyone else can have full insight into all the version control for builds & reporting in the future.
IT Director: That's correct. But I'm wondering what you mean by "full insight"?
TFS Consultant: It means that TFS has more capabilites for reporting than SourceSafe ever had and that you can integrate Version Control tighter in with your IT processes such as resource planning, work tracking, timesheets, builds, environments configurations, testing, and process improvement.
IT Director: That's all very interesting but lets make sure we stay focused on the version control migration.
TFS Consultant: OK I will do this. Now once the configuration and migration are complete I can do some testing for you with the reports that'll take a few hours to make sure the Version Control is running smoothly. In the past I prepared a special Sarbanes-Oxley Compliance report that one IT organization found very useful for their auditors.
IT Director: No that won't be necessary. Our processes are fine and we can't afford to do more than configuration and migration.
(Knock at the Door)
Project Manager Patty: Hi George I'm sorry to interrupt but I have something urgent.
IT Director: Yes Patty. What's up?
Project Manager Patty: The internal auditors just called me up yelling that we haven't gotten them the compliance report on our Transactions v2.4 change requests #122, 133, 141, 148 and 162. The problem is that I have no idea how I'm going to get all this information together. I've been working on this for 3 days but can't seem to get all the details pulled together.
IT Director: Have you talked to the Build group to get the information on the days/servers used for the builds?
Project Manager Patty: I talked to their manager Fred a week ago but he's out on vacation this week. The analyst who did it is Jeff but he's tied up doing some paperwork related to the IT resource planning system bug fixes for HR. And the other two analysts William and Susan don't know anything about this so I have to wait til Fred gets back next week.
IT Director: How about talking to Kyle? He's our most experienced project manager. He might know some way to get behind the scenes to find out where the build paperwork is.
Project Manager Patty: I tried getting some of Kyle's time. But he's tied up trying to get the new dev environment setup for the new IT timetracking project. Unfortunately as you know it takes months to get new environments configured around here.
IT Director: That's true. Well why not talk to Mary?
Project Manager Patty: I thought of that too. Unfortunately she's chasing down release paperwork for a few of her change requests that are going in. And I can't even get hold of Bob in the timetracking group so I can get access to the timesheets in order to get them and the SourceSafe history reports to the developers so they can stop their development work for a couple days and go through them to cross-reference their changes with what days & timesheet line items they used for doing the work.
IT Director: Well keep pushing on them because we need to get this done for auditing. And make sure to check with Rhonda to get the requirements and design documents out plus the Requirements Traceability Matrix so the developers do that cross-referencing documentation too. The external auditors yelled at me last time because the internal auditors didn't provide all the data that's necessary for SOX compliance.
Project Manager Patty: Oh I forgot about that. I'll do that too. (She leaves).
IT Director: Whew .... now where were we Alex?
TFS Consultant: I was explaining how I'm going to implement TFS for Version Control and do your SourceSafe migration.
IT Director: That's right.
(Knock on Door)
Project Manager Tim: Hi George, do you have a minute?
IT Director: Sure but make it quick please.
Project Manager Tim: I'm having a real problem with the 2 new Sr. developers we just hired. They don't want to use our timesheet system, maintain the RTM, contact the bug tracking team or requirements team to get userids for their systems, and they keep complaining about our lack of integrated processes in Visual Studio.
IT Director: This isn't good. In filling the last 3 senior slots we looked at hundreds of resumes, interviewed almost 50 people, made 15 offers, 5 never showed, 7 turned us down, 1 starts next week, and these 2 aren't fitting in.
Project Manager Tim: Yes George this is a problem. What do you suggest we do?
IT Director: We should probably put out a new job opening advertisement and call some of the staffing companies. I need you Tim to stay late tonight and I want you to go tell Patty to come see me so we can put the auditors on hold for a week and get ready for another long round of interviewing. Next time we need to make sure we filter out up front to get good cultural fits here with people who will follow our processes.
Project Manager Tim: OK George. And another thing I forgot to tell you is that Nancy my tester has turned in her notice. She's complained that she doesn't have any testing tools that work in our environment.
IT Director: Oh yes she's the one who wanted Microsoft Test Manager. Yeah I heard something about it being used for managing manual and automated tests. She seemed bright. We paid 20K to a headhunter 3 months ago to get her. But another manager also told me she's complained about our buggy test mangement website and the fact that it doesn't integrate with our builds or anything else. But you and I both know Tim that its been useful for us. We've also invested over 500K into this thing so we're not going to replace it ever. And we're not going to spend hundreds of thousands more to integrate it in with everything else. Next time be sure we hire a tester who is fine with our disintegrated processes.
Project Manager Tim: OK George. I'll get on these things right now. (Tim departs)
IT Director: Sorry again Alex. But I'm glad you're still here because I wanted to know something about this TFS. Will it work with Visual Studio 2010 as well as SourceSafe does in Visual Studio 2008?
TFS Consultant: Yes it will George. In Visual Studio you can manage all your TFS work items, builds, versioned items, lab builds, and link in to the portal & reports & other TFS data shared with the testers, managers, auditors, and users who access the data through Microsoft Project, Microsoft Excel, Outlook, or other products. For developers the version control works much the same as it does for SourceSafe. Of course you can establish policies for checkins to make sure that any code changes get correlated with requirements, bugs, tasks, user stories or other work items when being checked in so you can get end-to-end traceability on everything.
IT Director: OK this is good to know. At least I won't have my developers quitting on me if Visual Studio 2010 doesn't connect with Version Control. Sometimes its so hard to get the developers to communicate with the rest of the world. They won't tell their managers when they checkin source code or make changes. The build team has a terrible time getting all the correct artifacts and its an endless loop of circles getting them all to communicate. And the disconnect between the developers and the business analysts and the release management people is really getting bad.
(Knock on Door)
Infrastructure Manager Marcus: Hi George, we have a problem. Got a minute?
IT Director: OK Marcus please make it quick.
Infrastructure Manager Marcus: The team leads for the timetracking system and the new AP system are having an argument. Both of them claim that I had agreed to give them each 3 new servers this week. But we only have 3 servers total and won't have another 3 for 2 more weeks. I need your help refereeing this issue.
IT Director: OK Marcus please send them over at 10am so we can resolve this. (Marcus leaves)
IT Director: I'm curious Alex. How did you guys do servers assignments on your last gig?
TFS Consultant: We used Visual Studio Lab Management in conjunction with System Center Virtual Machine Manager to manage the Hyper-V and VMWare hosts. Each TFS Project Collection would be assigned a group of hosts & SAN libraries for provisioning & managing virtual servers.
IT Director: What does TFS do servers management?
TFS Consultant: Yes in conjunction with the Lab capabilities of Microsoft Test Manager you can use System Center virtual machine templates and machines to create environment templates and then provision environments as you need. When an environment isn't being used you can shut it down in order to conserve memory on your VMWares and Hyper-Vs. And the best part of it all is that you can integrate it in with all your IT processes.
IT Director: OK now you must be fooling me. There is no way to integrate server management in like that.
TFS Consultant: In the past that's correct. TFS 2008 and all the other ALM products out there have no such capability.
IT Director: So I assume you're going to tell me that TFS 2010 can do this. Maybe you'll tell me it can even do timesheets for everyone?
TFS Consultant: On my last gig we actually did this. In TFS is a capability called Work Item Tracking. We used the Agile out of the box work item types of Task, Bug, Risk, User Story, and Test Case quite extensively. We built 2 new work item types called Time Period and Task Period for timesheets. The developers did all their time tracking in Visual Studio. Whenever they checked in code they'd have to associate their checkins with the tasks they were working on. And their timesheets would autopopulate with the system's best guess on how they spent their days according to their versioned items checkins and then they'd make adjustments each time period to submit a timesheet. For some groups they did time tracking by week, others did it semimonthly, others did it biweekly, and others on a monthly basis. All of their needs were fulfilled.
IT Director: Hmmm this is interesting. But can TFS do resource planning?
TFS Consultant: Sure. As new projects are prioritized your PM(s) can quickly access historical data in many types of reports and make estimates on when & how much they'll need of the different resource types. In addition they can organize this by area/iteration.
IT Director: But how does it do build management and release management?
TFS Consultant: These capabilities are integral to TFS and you get full end-to-end traceability through the types of work items and the relations between work items with versioned items, builds, environments, and other links/artifacts.
IT Director: Testing and Requirements too?
TFS Consultant: Yes these capabilities are integral too.
IT Director: How about providing all the full end-to-end traceability reports for the auditors, accounting and other groups throughout the company?
TFS Consultant: With TFS you can do all this out of the box.
IT Director: Wow this is amazing. But how do you handle situations where managers have different workflows and metrics they need to track?
TFS Consultant: We can customize their process templates, work item types, workflows, and handle all those scenarios.
IT Director: What if a manager doesn't want to use TFS? Most of our managers like to use Microsoft Project.
TFS Consultant: Microsoft Project is an integral TFS tool.
IT Director: What about Excel?
TFS Consultant: Same.
IT Director: What about our Java developers? They use Subversion and Maven for version control and builds.
TFS Consultant: They could continue to do this. However a lot of Java developers have really found they prefer Team Explorer Everwhere as it allows all the .NET and Java developers to use the same platform for all their versioned items, work items, builds, and lab environments under the same foundation system.
IT Director: This is fascinating. I'm going to talk to my managers this afternoon and setup a meeting for you to answer some questions my managers and I have on our processes and how TFS works. I'll take you right now to meet our SourceSafe administrator who you will be training to administer the new TFS once you've set it up.
TFS Consultant: OK this sounds good.
IT Director: Do you often find that other places look at TFS as just SourceSafe replacement?
TFS Consultant: Yes I do. Most of them have very mature processes that have worked well in the past. However they've discovered that the pace of change and agility in the business world and its impact on IT is really causing lots of chaos.
IT Director: Sure I can relate. Our processes have worked really well for us in the past. However we're seeing them disintegrate. Our new IT employees are hard to retain. And many of our best are going elsewhere. I can imagine that anyone coming in suggesting TFS Work Item Tracking is going to face some resistance because it requires a major cultural change.
TFS Consultant: Sure I've seen this. They typically behave like blacksmiths getting introduced to jet aircraft who say "how are we supposed to put this big bulky aircraft on the horse's hoof". Then they do the equivalent of explaining to me the merits of horseshoes over jets for use on horses. They're absolutely correct IF they think they're in the equestrian industry. But they're dead if they don't catch on to the paradigm shift that's transforming the IT industry fast right now. It certainly isn't my job to sell you on TFS. But the honest truth George is that I haven't found any one platform that does all the end-to-end IT processes like TFS.

Friday, February 11, 2011

DOORS-TFS Integration Tool

A lot of IT shops with very detailed/specific requirements use DOORS. Now that it integrates with TFS you'll see alot more TFS adoption in the future.

http://www.aitgmbh.de/doors-rif-synchronisation.0.html?&L=1

Saturday, November 6, 2010

CMAP Presentations

Today I gave presentations at the CMAP Code Camp in Columbia, Maryland. See http://www.cmap-online.org/CodeCamp/Sessions.aspx for details on the camp.

See http://www.degaston.com/de1106.zip for source code.

1. Do Application Lifecycle Management Your Way Using Visual Studio Team System and Custom .NET Code

See http://www.degaston.com/tfs1106.ppt for presentation.

IT developers face never ending productivity and progress interruptions due to the need to do status reporting, documentation, and a whole assortment of tasks. Likewise their managers face great challenges due to the disintegration of the project management, work item tracking, development, deployment/implementation, operations/maintenance, reporting and documentation processes. In order for teams to greatly reduce these interruptions, disintegration issues and truly integrate all key development and application lifecycle management (ALM) processes, Microsoft introduced Team Foundation Server (TFS) 2005 and its subsequent improved TFS 2008 and TFS 2010 versions. It’s what runs Codeplex.com, all of Microsoft’s key internal ALM processes for their flagship products, and it’s an integral part of Visual Studio and all MSDN developer subscriptions going forward. This session will focus on how developers/managers can extend TFS through configuration settings, process templates customization and building custom .NET solutions in order to adapt TFS to your organization/team internal processes.

2. Create a SharePoint Web Part Wrapper for ASP.Net User Controls

See http://www.degaston.com/sp1106.ppt for presentation.

SharePoint is presently one of the most popular web application development platforms in the world and ASP.Net is central to its success. In the past SharePoint developers would build many custom web parts. Recently the trend has been towards using a container for ASP.Net user controls in order to simplify deployment, make the development/customization process easier, and quickly enable .NET developers to be effective SharePoint developers.