Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If I want to recommend a technology/plugin/library to my company for use in a project, are there any methodologies I can use that will produce more reliable results and a more convincing presentation of said results than just my own "common sense" approach?

share|improve this question
related answer at MSO: How can Stack Overflow help developers evaluate technologies? "This morning I had about 8 frameworks in front of me, trying to decide which one I'll use for a new project..." – gnat Sep 12 '12 at 8:43
up vote 3 down vote accepted

There's a book published for the PRINCE2 development methodology called "Buying Software: A Best Practice Approach" that describes a ridiculously elaborate software procurement process that might be justified for choosing software to be deployed for daily usage by tens of thousands of employees and costing millions of dollars, but it could be scaled down to your scenario:

  • Focus on a business case, i.e. a costs/benefit comparison, where costs include learning the new technology
  • Identify stakeholders, i.e. the people who will use the technology or may have some input (e.g. lawyers) and get feedback from them (the overall most important point)
  • Collect criteria for choosing the technology: this may include functional and non-functional requirements, riskiness, legal and other constraints
  • Prioritize the criteria (stakeholders should be involved here)
  • If there are multiple candidate technologies, choose the most likely by using the highest-priority, most quantifiable or most easily evaluated criteria
  • Evaluate how the candidates fulfill the criteria, by actually testing them or looking for other people's experiences. This is the most time-consuming step and its length should be proportional to the expected benefit. Use it especially to reduce uncertainties.
  • The result is a matrix of how well the candidates fulfull the criteria. This should be presented as the basis for the final choice.
  • After a while, check whether the desired results have been achieved and if not, why.
share|improve this answer

Rather vague question with a lot of possible answers. But here's my take.

First you need to be clear about why you want to bring in this new tech. So:

  • What is the problem that exists?
  • How does this tech fix it?
  • What are the benefits to the company?
  • and what are the risks?

Once you have some clear answers to these questions, you can put together your presentation. Then it simple comes down to good presentation techniques. Some that I follow:

  • Keep slides and detailed reading material separate. Slides show be simple and visual back up for you as a presenter, the details should be in the reading material people can take away to read later.

  • Remember to tell a story, people are there to see you, to find out what the problem is and how you will solve it, and even to be entertained to a degree. Keep this in mind.

  • Speak out, not to fast, and not in a m-o-n-o-t-o-n-e. Keep what you are saying simple, so don't bore people with technical details unless they are really important.

  • Most people who come to a presentation don't really care about the technical details, they want to see that you are confident, knowledgable and fluent in the problem domain. Once they see that, they will trust your assessment and probably never read the details.

share|improve this answer
When I said presentation I meant in written form, sorry for the confusion. Also I was thinking of something more objective, more methodical, and formal. I know how to write papers (for arts courses anyway :) ) and it sounds like that's the kind of format you are suggesting. However, I'm imagining more of a standardized format or method when doing this for software development- something that I can follow and be confident that the technology will work for my project and that I can off to other developers to the same effect- not unlike a scientific method for software development. – Ford Sep 12 '12 at 2:29


Dogfood the candidate technology/library/plugin(s) with plausible use cases for your application.

Plot your experience with the candidate technology/library/plugin(s) on a spreadsheet, and note performance, scalability, extensibility, cost, and anything else that your company finds useful.

Finally, schedule a half hour meeting with your manager to relay your findings. The strongest candidates should almost be self-evident.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.