Tuesday, December 4, 2007 9:53 AM
You completed the forms. You did the interviews. You provided references. You even demonstrated the pros (and maybe the cons) using someone's copy. So now you wait patiently to hear word from the adoption agency that your requested new addition is ready. Then it arrives...in a shiny holographic-background DVD...with official logos.
Wait what? Did you think I was referring to human adoption? Sorry...let me back up...
Visual Studio 2008 was release from Microsoft recently (in 2007 no less). I know companies who are still using Visual Basic 6 for production applications. So this prompted to revisit an old discussion related to technology adoption.
The Technology Adoption Conundrum
I love technology (and I hate it), often just for the sake of technology. However, we are hobbyists sometimes, and professionals sometimes and, well, we need to do things that make sense for the business. So the problem is...
- How do I know whether or not to adopt a new technology?
- If I choose to adopt a new technology, how do I adopt it?
Adopt or Not to Adopt
The decision is choosing to adopt or not. In some cases this is a moot point. If, for example, you use SQL Server 97 and you don't adopt SQL Server 2000, then you will likely adopt SQL Server 2005 (or another database platform). Driving the adoption decision is almost NEVER a question of technology. Instead, it is the business and the people that drive adoption. So here is a short list of aspects to considering when pondering adoption (in no particular order):
- Features - Okay, even though I said technology is almost never a driver it does have an effect. For example, the latest release of Visual Studio includes LINQ, CardSpace, WCF, WPF, and WF support. The latter three are available for Visual Studio 2005 so you have to ask yourself...is this something I need right now? Even if it is NOT something you need immediately, can it benefit development efforts (or business units or whatever) in the future?
- There is a related argument about upgrading different editions of a product. For example, perhaps your shop can benefit from Visual Studio Team System. But how do you know?
- Projects - You should have a list of existing applications (the application portfolio) and to-be applications (the future projects list). Even without hard requirements you can often anticipate some of the architectural aspects of a project. Given this, you can ask yourself if some features in the new release will benefit you.
- Business Need - Are you using SQL Server Express edition and wondering why your data warehouse is slow? Upgrading to an edition of SQL Server that supports OLAP and data cubes is needed. There are a bunch of reasons to upgrade a product based on the business. You need to know the business plan, of course. You also need to understand the business. Ask your Business Analyst Team about this.
- Skillsets - Is everybody using the new edition? If so, you're going to be hiring people that already know how to use it. Consider what people in your group know and want to do. Also consider what other businesses in your area are using. Also consider that someone who maintains a current skillset will NOT want to downgrade their skills for older technologies. That means you might have a human resources challenge when recruiting.
- Resources - Are you having trouble finding resources for the older (or outdated) technologies? You want to make sure that you can find books/articles/seminars/user groups meetings, etc. that pertain to your needs. You also want to make sure that you can find human resources with the appropriate skills. If everyone around you is learning new technologies, you'll be hard pressed to find people that can support the old technologies.
- Cost - Don't ignore these geeks! It is important. You're not at work to be a hobbyist. You're there to make money. So you must consider the cost-benefit analysis.
- Training - Who is going to get my current team up-to-speed? Who is going to keep them there? Can I mix in-house, self training and off-site classroom training? What is the learning curve?
Welcoming Your New Baby
Now you have a new addition to the family. How do you welcome it? Here are some ideas to help you with your new adoption.
- Projects - Start working with it before you need it. That's right. If you adopted because of some new feature that may help with some future project, great! But don't wait for that project. Start now. Yes, you won't see a big difference if you are using the same features. However, this is more to using a new environment than just new features. You need to learn how the existing features have changed (if at all). You need to be comfortable with the new environment.
- Training - Plan your training. Make a personal training plan for you. Work with your boss to establish a training plan for the team. And don't forget refresher training. You may need to revisit product training perodically. Consider, for example, upgrading your offices from Microsoft Office 2003 to Microsoft Office 2007. Well one training session at the beginning of the year may simply not be enough! You may need to have training every six months or so.
- Expect Setbacks - Don't expect to know it right out of the gate. I have been using PowerPoint 2007 for almost a year now and I still forget where things are. Give yourself, your team, and your organization some breathing room. Let other teams in the company know that you are adopting a new technology (to better serve them).
- Ask Around - Get involved with a user group in your area. Attend a conference. There is more to these events than the information presented. You have the opportunity to network and discuss adoption struggles with others.
- NOTE: There are MANY events that provide completely FREE and fully functional products. For example, I attended a "Ready to Launch" event in Greensboro, NC in February 2007 and obtained free, fully functional licenses of several 2007 products.
- Don't Be Afraid - You should definitely plan your adoption. But consider the words of Dwight Eisenhower: "I have found in battle that planning is indispensible but plans are useless." Don't be quite that extreme with it. Make a plan and march to it but adapt if you need to.
- Supplemental Aspects - There are a lot of things that change in releases that aren't directly noticeable. For example, you may experience problems with:
- Device Drivers
- Fidelity of Data - Fonts, Styles, Formats, etc.
- Disk Space and Machine Capacity
One Last Word
Take the time to perform a gap analysis. Use an Excel spreadsheet (or a piece of notebook paper). Make columns for the products you are considering and rows for the features (functional and supplemental). Make some additional rows for the business aspects (total cost of ownership, upgrade costs, training costs, etc.). Then provide a numeric value for each aspect with respect to each product. In the case of an upgrade, use two columns with one for the current product and one for the adoption-under-consideration.
Adopting new technologies should not be a "gut" decision. Instead, take your instincts and quantify them. Make a valid business case and a plan. Consider the total cost of the upgrade.
P.S. As for Visual Studio 2008, I am upgrading. ;)