IT professionals, whether in-the-trenches developers or CIO/CTOs, are often called on to quickly grasp new technologies. We are expected to get up to speed rapidly, analyze requirements, and pick a solution that best solves the business need we are facing.
- Define your business problem. What problem are you hoping to solve using this technology? Clarifying this will help focus your efforts and keep you on task as you go. Knowledge for knowledge’s sake is fine and all, but when you are getting paid to do this, you have to keep your eye on the ball.
- Create a list of questions that you would like answered and fill in the answers as you learn more. This can be a living document that becomes part of your presentation when you need to report back on your findings.
- Read an overview of your topic area. Often, a good source for this is Wikipedia. See, for example, the entry for REST. It is not too long, and provides some good guiding principles to keep in mind as you dig deeper in the next steps below.
- Identify and define common terms. Once you know these, you can do much more targeted web searches
- Ask your co-workers what they know about this technology. An in-person explanation can often be the quickest way to getting an introductory and broad understanding. They’ll usually be quick to tell you the things they like and dislike, and the most common pitfalls. You should be starting to fill in some of your answers for questions from #2 now.
- What are the seminal texts in this area? Identify the research papers, books, articles or websites that everyone mentions for newbies trying to get a grasp of things. If it is feasible, read all of them. Knowing the creator’s original intent will provide helpful context for the further research you will do below. At this point you are half way through the twelve step program, and you should be able to discuss this technology intelligently now. You probably still have some questions from #2 that you need answered though.
- Get a sense of the playing field of implementations of this technology, what are the various flavours available? Compare open source vs. shrink wrap options, too.
- What are the big players doing? Likely they have thought through the business issues you are facing (identified in step #1), and come up with a multitude of creative solutions. E.g., need to stream video? Take a look at Youtube, Netflix and Vimeo. Chances are you’ll want to emulate their choice of compression protocols or video players.
- Start to get critical. For each flavour of the technology you are evaluating
- What are its advantages/disadvantages?
- Who uses it?
- What is the cost differential?
- How easy is integration?
- Mine social media. Using the common terms you identified in #4, as well as specific product names where relevant, mine social media to learn:
- What are the big issues?
- What are the popular products?
- Who are the new kids on the block?
- What kind of online presence is there in terms of both community and support?
- Look for problems. Mine discussion forums, support sites, and technical Q&A sites like stackoverflow.com to determine the most common issues people face when using this technology, and whether there are any showstoppers for you.
- Get your hands dirty. At this point you should be narrowing your choices—time to take it for a test drive yourself. If it is a big heavy enterprisy-type app, look for any available virtual disk images that will let you boot up a running instance in a virtual machine. If it is a new coding technique, build out some samples and see how it works where the rubber meets the road. You’ll learn things doing it yourself that are really hard to learn elsewhere, e.g., how long will it really take to get going with this? Is this something I can do? Are there special pre-requisites I did not consider?
There are additional strategies I have not mentioned above, as I want to focus on things you can largely do on your own with few time/cost constraints. Conferences, vendor demos and training courses can teach you a lot, too, but you’ll find that you’ll get more out of them having done your own investigation first.
I’d to hear what approach you use to master new tech. Whatever you do, don’t stop learning!