With all the buzz going on about ALM Assessment and why it is required, this post aims to demystify ALM. I will try to lay this as simple as possible.
1. What is ALM?
ALM stands for Application Lifecycle Management. It is management & co-ordination of all software development lifecycle activities like requirements gathering, requirements modeling, code development, build process, testing activities and implementation events.
2. What areas does ALM cover?
- Program & Project Management & Planning
- Software Architecture & Design
- Requirements Gathering & End-user experience
- Software Development
- Testing & QA
- Deployment, Operations Management, Compliance & Governance
- SCM (Software Configuration Management)
3. Is ALM Assessment required for my company?
Does your team have the “just develop it” attitude towards software development?
Does your development team encounter application development pain points (lack of proper requirements gathering, software delays, missing code quality, lack of co-ordination between disparate teams, business objectives not met) ?
Answering these 2 questions will you give you some insight into areas of improvement and need for ALM assessment.
4. What are the benefits of ALM Assessment?
- Identify failure points
- Identify areas of process improvement
- Understand how to address traceability & visibility of lifecycle activities.
5. Truly, will I get something useful after an ALM Assessment?
I would have to answer that with my experience so far. I do see a big value in doing an ALM assessment. Do with the right company. Tap into your local Microsoft regional center and find out the qualified Microsoft partner who can get it done right. Microsoft has an elaborate ALM Assessment program, but that is not the end of the story. You need a subject matter expert to come and meet with your team and go over your team lifecycle activities. He/She will suggest the next steps and how to effectively introduce ALM to your team. Be open with the ALM expert and lay out all the pain points your team is experiencing. Remember, they are there to help you streamline your process. The more useful information you can give, the better for the expert to suggest practical steps to take.
6. What are the tools required by my team to start using Microsoft ALM processes?
1. VSTS (Visual Studio Team System)
2. TFS (Team Foundation Server)
7. Is there a particular version number for your tools?
If you are starting out new, go with VSTS 2008 and TFS 2008. If you have an existing 2005 code base and don’t have plans to upgrade any time soon, you can use the 2005 version.
8. We have Visual Basic code base, can we still use ALM tools?
Yes. Microsoft does provide a MSSCCI Provider for TFS 2008/2005. You can configure MSSCCI provider and be able to integrate VB 6.0 with TFS server.
9. I am done with ALM assessment, what is our next step?
Once the ALM assessment is done and you have given the practical steps to take, the next thing is figuring out the tools purchase. Do you have the VSTS (or) TFS? You can use TFS with any VS 2008 Professional edition with Team explorer, but I would strongly suggest using the VSTS edition. Why take the ALM initiative without the proper tools in place?
10. Can ALM implementation deliver benefits for my team?
Yes. If you have implemented it right, you can see improvements in
- Code Quality (just as an example — traceability will be high and everyone in your team will strive to code better as they don’t want to be singled out during a build failure process)
- High accountability (Check in Policies – I don’t want to outline all features of TFS here, but you can enforce some strict check-in policies that can ensure checked in code quality is good and the developer is accountable to make that happen)
- Project management improvements (tie this into Project server and you will reap more benefits)
- Compliance will become big. Yes with that the governance initiatives will start making progress.
11. What are the different ALM Roles?
Note: These roles can be shared between individuals. But, you need to keep a tab on not letting it overwhelm your team members.
- Software Architect
- Software Developer
- Creative Designer
- DBA & Operations Management
- QA Tester
- Project Manager & Business Analyst
Of course, every project will have a stake holder. That role will always be handled by a separate member of the company.
12. Any final field notes?
There are plenty. But I will confine it to basic steps
“Do not push all the ALM features of TFS 2008 to your team. That will surely overwhelm them and they will be spending time to cope up with the tool rather than concentrating on their current projects. I can’t emphasize this enough “take baby steps in ALM implementation”. That is the only way you will garner support from your team members. Your team members will become more accountable and you need to handle reactions that you get. Introduce features one at a time (For example: Basic check in policy, code quality metrics and code traceability) and let them get comfortable with using each feature before jumping to the next one.”