views:

464

answers:

11

If you were to self-fund a software project which tools, frameworks, components would you employ to ensure maximum productivity for the dev team and that the "real" problem is being worked on.

What I'm looking for are low friction tools which get the job done with a minimum of fuss. Tools I'd characterize as such are SVN/TortioseSVN, ReSharper, VS itself. I'm looking for frameworks which solve the problems inherient in all software projects like ORM, logging, UI frameworks/components. An example on the UI side would be ASP.NET MVC vs WebForms vs MonoRail.

+19  A: 
  • Versioning. Subversion is the popular choice. If you can afford it, Team Foundation Server offers some benefits. If you want to be super-modern, consider a distributed versioning system, such as git, bazaar or Mercurial. Whatever you do, don't use SourceSafe or other lock-based tools, but rather merge-baseed ones. Consider installing both a Windows Explorer client (such as TortoiseSVN) as well as a Visual Studio add-in (such as AnkhSVN or VisualSVN).
  • Issue tracking. Given that Joel Spolsky is on this site's staff, FogBugz deserves a mention. Trac, Mantis and BugZilla are widespread open-source choices.
  • Continuous integration. CruiseControl.NET is a popular and open-source choice. There's also Draco.NET.
  • Unit testing. NUnit is the popular open-source choice. Does the job. Consider installing the TestDriven.NET Visual Studio add-in.

That said, you want to look at the answers to Essential Programming Tools and What is your best list of ‘must have’ development tools?; while not .NET-specific, they should apply anyway.

Sören Kuklau
..also don't forget to add a coverage tool like NCover or Clover.net.A code similarity analyzer such as simian. A code analyzer like FXCop. and An architecture analyzer such as NDepend. You don't need all these tools, but take a look at them and see if they fit your needs.I use a tool called Gallio to automate tools on my projects. NAnt, of course is good for wrapping these things together too.
KevinDeus
+5  A: 

Great tools and frameworks are essential, but the other essential is great project leadership.

Ed Guiness
Yes good one. And above average developers as well.
Tall Jeff
Absolutely. So much of today's software development methodoology is an attempt to write good software with bad developers.
Eric Z Beard
I can only agree.
Ed Guiness
A: 

I'd definitely recommend Coderush+Refactor or Resharper (Coderush being my personal favourite), these tools dramatically reduce the time to go from code in your head to code on the page.

For quick development the UI component sets from the likes of Telerik/DevExpress/Infragistics can be good, but in my experience can cause pain further out in the project when you want to refine things more precisely.

Regarding frameworks etc I think you'd need to be a bit more specific about the project itself to get any meaningful suggestions.

Whisk
+3  A: 

I would add Resharper to the list and Ndepend. Most likely Rhino mocks too.

chrissie1
A: 

Good source control should probably be your number 1 priority. I've mentioed them before, but CVSDude are an excellent managed source control provider. I'm using a SVN package and it's brilliant. Saves a lot of hassle setting up your own server etc.

IainMH
+1  A: 

I would add one more to what edg says up there. You need people with at last some talent as well.

As David Wheeler, author of the Flawfinder source code checker says:

A fool with a tool is still a fool

Rob Wells
+1  A: 

I'd recommend a Safari Books Online subscription as well.

Oh, and gallons of coffee.

Martin
A: 

Microsoft's Enterprise Library can be also helpful.

This release of Enterprise Library includes application blocks for Caching, Cryptography, Data Access, Exception Handling, Logging, Policy Injection, Security and Validation.

macbirdie
A: 

My list

Ngu Soon Hui
+2  A: 

I'll add Moq to the list for mocking to the list. Much less syntax than most other mocking frameworks.

Kilhoffer
A: 

This is what we use for our team:

Issue Tracking: Redmine - This is an awesome, free, Issue/Project management tool. It is a ruby on rails app however, so you'll need a proper environment to get it up and running.

Source Control: Subversion with tortoiseSVN - subversion is an awesome source control solution and tortoise integrates with the explorer very nicely, no need for command line stuff. It also supports user side hook scripts, which has come in handy a number of times for my team.

And that's about it really. We don't use a main framework, instead we just roll our own libraries that fit what we need to do with a given project. We do use jquery for a JavaScript library however.

Some other random things would be free coffee, and the best equipment money can buy.

Ethan Gunderson