views:

862

answers:

9

We are trying to get Resharper introduced to our company but it would have to be for all developers. Management want us to justify the cost with a business case.

I am unsure how to go about getting proof that Resharper will benefit the business. What kind of statistics can you get from it?

Any help with this would be appreciated.

+6  A: 

No statistics, but here's a very good blog article arguing the case for Resharper. Some coworkers and I used some of these justifications to get it bought for us.

James Kolpack
+1. Enforcing coding standards combined with the safety and time savings of automated refactorings makes R# an easy choice.
TrueWill
FWIW, the article seems to have disappeared.
torial
+9  A: 

I know business managers loves them some numbers, but the best business case is anecdotal:

It makes developers happy.

True, it does increase productivity, but that's hard to prove. Making developers happy should be enough, since happy developers are more productive. You might want to point out that the static code analysis is built in to it, therefore nudging developers toward writing better code, gently training them to code cleanly.

Michael Meadows
+1 for making developers happy. Job satisfaction is important to productivity and keeping good developers from leaving for greener pastures.
Tim
Most developers who have been exposed to ReSharper, if they find that their idiot Management won't pay for it, will start looking for better companies to work for.
John Saunders
+23  A: 

Resharper does not track itself in any way that would provide useful statistics. Also, I'm pretty sure no college/company/consultants have any sort of meaningful hard data. This is just too complex. I suppose you could measure the time savings from (A.) code insertion, (B.) refactoring quickly, and (C.) getting it right the first time because Resharper didn't make the mistakes a human would. Just these savings pays for Resharper soon enough. For a $300 liscense, all Resharper has to do it save you 5-6 hours per developer. That's hours.

But the real benefits of Resharper are impossible to measure:

  • Since good structure is now as easy to make as bad structure, you do it right!
  • Your designs are better, because you spend you time thinking about design rather than coding cruft.
  • Whatever your level, you learn from Resharper. The refactorings available are those demanded by top-level developers. By using them you learn these good practices.
  • Mistakes are more forgiving. If you structure your code poorly, it's easy to fix. I find myself more daring and willing to try new things, because there is less risk. This has resulted in some great code.

I'm afraid your powers-that-be will need to trust you, or trust the testamonials on the web-site, or trust a consultant, or experience Resharper for themselves. If your managers are not themselves quality developers, you're going to have an uphill battle. I wish you luck.

I bought Reharper with my own money a few months ago, because I knew the best developers used it (or coderush). And best means they create more maintainable solutions for less time/money. It has surpassed my expectations. Getting code out there quicker and being able to refactor quicker is what I expected. All well and good. What I did not expect was how this would increase the time I had to make the right development decisions and do the right things at the most efficient time. Before there was just not enough time to do things right; now there is.

So it's impossible to tell management whether Resharper pays for itself 20 times over, or 100, or 500, but I think 20 should be enough.

Patrick Karcher
+1. A personal license is actually cheaper than a corporate license - how cool is that? Buy it for yourself if the PHB is too cheap. http://www.jetbrains.com/resharper/buy/index.jsp
TrueWill
@TrueWill Absolutely correct. And if you own it, you can have it at home and take it with you if you move on or go independent. Not only that, but the C#-only is $150 and the VB-only (my situation) is . . . $50! It's insane. If you're in a VB-only shop, there's no excuse.
Patrick Karcher
+4  A: 

The best business case for ReSharper has to do more with the ability for it, when coupled with StyleCop Add-In (free), to allow a small team of developers to quickly create consistent, coherent, standards-based, maintainable code. Until it was introduced in our organization we had nothing but numerous stylistic approaches, not to mention the defects, bugs and other problems ReSharper helped us identify and correct. It is quite simply the best VS Add-In I've ever encountered.

As an aside, you should pick up GhostDoc (free VS Add-In) as well. It makes documenting your code much easier as well. These two tools together are invaluable.

Nissan Fan
StyleCop is great, but I like FxCopy (also free) too. Both are great.
Tim
+3  A: 

While I cannot, even from my own organization provide direct metrics, the tool provides a wealth of assistance and hints for developers.

It will also, when properly used, help an organization have more consistent code following the organizations code standards.

It will also highlight new features in newer.net frameworks and gently show developers how they can be applied to their code.

The tool is fantastic in getting rid of some code smells.

Aside from that aspect, once developers become more proficient in its use, it has a great number navigational features that allow them to quickly zip through code.

Development 4.0
+3  A: 

An issue you may run into is that Management may not so much be looking for a justification for ReSharper, but justification for those things that ReSharper does: refactoring, code cleanup, increased ability to navigate code, unit test support.

If you've got Management that needs to justify something like ReSharper, then they may not yet have "justified" modern software development practices, either.

John Saunders
+3  A: 

Basically it's a tool to reduce development time:

  • Visualize more problems immediately
    • Improved coding speed by showing warnings (from info up to error) and allowing developers to fix them by a simple Ctrl + Space
  • Enforce naming conventions (customizable)
  • Way better refactoring: Not only leading to less bugs, but also allowing more operations; refactoring improves the velocity (no refactoring leads to slower and slower development speed)
  • Way faster code navigation (meaning opening a desired file location):
    • camelCase find file/class/symbol, by Ctrl+[Shift]+T
    • Find where a piece is used in all the source code
  • Developers can learn something: The auto-correction suggestions are usually taking in account some refactoring tricks and the latest .NET features. It's not only like a MS Word spell corrector, it's even going to tell you how you could say the same better.

Note: Technically, it can be installed on a single machine. If installed on the machine of the lead dev or project manager, (s)he can review code much faster. Refactoring and integration are some important tasks of a lead dev.

On a down side, I don't believe in the advertised gain. That gain is based of a bad development process with idealistic gain. What I can tell you is that it made my life better as a developer.

Wernight
+21  A: 

I am unsure how to go about getting proof that Resharper will benefit the business.

If they asked for a business case, they're not asking for proof, just some kind of fact-based estimate of the likely return on their investment.

So, for example: A license costs (say) $250 per developer, a developer costs (say) $50,000 per year. A developer with Resharper costs 0.5% more than a developer without Resharper.

That gives you a basic financial model - if you get more than a 0.5% productivity gain, then it's worth it, if you get less, it isn't. Some corporates apply a minimum return on investment (ROI) factor - so if the factor is 1.2, then you would have to show a 0.7% benefit to get approval. The factor is very unlikely to be more than 3.

You could tweak that model - depreciate the license over 3 years, include the procurement costs, changing cost of capital, etc., but a simple, conservative model is likely to have the broadest appeal.

Then all you need is some evidence that you get more than a 0.5% productivity improvement. You could run a benchmark, or a pilot with a small number of developers for this. Pick some typical tasks and time them with and without Resharper. There is a 30 day trial version available so you could run a pilot before you have to purchase.

The PDF on the Resharper home page claims a 35% productivity increase - you can take that with a pinch of salt, but unless that's exaggerated by a factor of 70, it's still a worthwhile investment. The number of recommendations on the web, and developers claiming to buy it with their own money suggest that it isn't a wild exaggeration.

When you present the business case, you might like to illustrate that percentage as a dollar value too.

Developers only spend part of their day in their IDE, so you should probably adjust the expected returns downwards because of that. The real number is probably between 20% and 80%, but the lower end of the range might not be a politically acceptable number to present. You're interested in what proportion of the output is affected by the investment.

I don't have any connection with Jetbrains - and I'm answering a question about how to make a business case, not selling licenses! The anecdotal evidence from where I work is that the developers who have used Resharper have only good things to say about it. In some very specific cases it has saved weeks or months by automating mechanical tasks that have to be applied over a lot of files. The rest of the time it's hard to measure, but since the developers use it all of the time, they must be getting some real value out of it.

There's a quality argument too - you could measure this as a productivity increase, or a cost saving, or just an additional argument - depending on how quality issues are perceived at management level in your company.

Good luck with your business case.

richj
Nice answer thanks...
Burt
@richj: it's a nice answer, but it's total BS. It's made-up numbers meant to satisfy people who live and die on numbers and must have them - even if the numbers are patent inventions like the 35% productivity improvement. Still, people who require you to lie to them will be lied to, and I suppose they deserve it. I personally avoid having them make a liar out of me.
John Saunders
@John: It's just one way of looking at the problem and it has a specific purpose - to demonstrate in terms that the audience understands that a particular investment should result in a positive return, everything else being equal. If you can't get a number greater than zero out of a model that has been designed to be conservative, then either you need a more accurate model, or the model is accurately telling you that it's a bad investment. That's a simple exercise in logic, no lies in sight.
richj
As I said about the 35%, it has to be exaggerated by a factor of 70 (in my example) to change the result. It certainly is a number that deserves critical evaluation. That's partly what the pilot is about. Whether it's a truthful number or not, the number that matters is the productivity improvement in the deployment environment - not some idealized benchmark environment.
richj
@richj: I object to the idea that it's possible to derive a number from every aspect of human creative endeavor. It's at best self-delusion, and at worst, and outright lie. It makes it necessary to measure things that cannot be measured, then depends on the result of the measurement.
John Saunders
@John Sanders, while I agree with your philosophy, isn't also BS that someone has to justify $150.00 for productivity? Especially if you are a shop that sells a product? Sometimes fighting big BS with a little BS smooths things over in a battle so you do not have to wage a war.
David Robbins
@David: Coming from the position of a non-manager, I agree. I'd just spend my company's money on ReSharper, after a reasonable review by a couple of people I trust. If the company didn't like it, I'd likely spend my own money on my own copy (which happens to be exactly what I did).
John Saunders
@John: the question is about a simple investment decision in a large organization. The managers have to decide whether this proposal to spend the owners' money is worthwhile amongst many other competing proposals, without understanding the technical merits of each case. In this context, a business case is a simple and fair method of discriminating between competing proposals that allows for both the legitimate aspirations of extrinsically motivated owners and intrinsically motivated employees to be reconciled.
richj
@richj: Here's where we're disagreeing. You think that a decision like this can be fairly and intelligently made. I say it can only be made by assigning values to things which cannot have values assigned to them; only by assuming you know things you cannot know. Now, I'll admit that if I ever became a manager, I wouldn't last long, because I won't pretend to know things simply because I'm required to know them (as opposed to knowing things because they are knowable).
John Saunders
While this little thread of conflicting opinions was entertaining to read, I think everyone is still missing the point. Buying ReSharper for *one* developer is a trivial cost, and even management can realize that. The problem is buying a LOT of licenses for LOTS of developers...which suddenly makes a $300 drop in the bucket become a budget-busting thousands or even tens of thousands of dollars. We had a similar problem with TypeMock about a year ago, and when you factored in a volume discount for 100+ developers, it was still a $50,000 *ADDITONAL cost* that couldn't fit in the budget...
jrista
...despite the fact that there were **tangible** and internally verified benefits to TypeMock. They just weren't quite enough to sway management to try and find the money to budget fifty grand. Realize that there is also a cost to investigating a (probably useful) product, verifying its value, moving money around to cover its purchase, working a deal, etc...and that cost has to be added to the overall cost of the product itself.
jrista
@John: I do think a decision can be fairly and intelligently made. I don't think it is possible to know the future, only to forecast it. I accept that it is possible to make a decision that turns out to be wrong despite the best efforts of everyone involved. I'm not trying to prove absolute truths about the future. I am trying to help someone to engage with his management to get a fair and intelligent investment decision. I don't disagree with you on anything fundamental - I'm just looking at the problem in a different way.
richj
@jrista: Great comment! I've been talking about return on investment which turns up in the profit and loss account and you've introduced budgets which are about cash flow. Cash flow mostly affects the timing of investments, although timing can change a good investment into a bad one. You've also introduced the idea that management time and effort is limited and has a value that could be factored in to the business case. You're also right about the size of the investment requiring that the decision is made by the management hierarchy using a formal process.
richj
@richj: if it's too expensive for the company to buy for all developers, then the company should make it available to 10 or 20 developers, then allow the others to buy it for themselves, preferably at the same volume discount rate. That will reduce your number of developers by showing them what kind of company they're working for - one that would prefer not to be wrong.
John Saunders
+1  A: 

See the ReSharper Benefits For You and Your Business document for a small ROI analysis. Unfortunately it is not backed by any hard data and boils down to the assumption that developer productivity increases by 35 percent when using ReSharper, but it sums up all the arguments for using a productivity solution like ReSharper.

Christian