views:

121

answers:

2

In software companies I have seen it's really hard to work on very large products where everything depends on everything else.

For instance Microsoft works on C#, F#, .NET, WPF, Visual Studio where these things are interconnected. I don't know how many people are involved, but if it's in 100s, how do they keep in sync with everything, so they design and implement features without conflicting with other dependencies and future plans of other products?

I am wondering that if MS is able to do this, they must have a very good system.

Any guidelines or secrets for MS or non-MS very large software product delivering?

+3  A: 

Well, mostly this is not a tool issue, but one of organization - in the core.

Tools: Look at TFS - it has integrated automatisms for source control, work item tracking and quality control in 2010. It has integrated reporting.

You talk of many solutions with many projects - all organized in large trees possibly multiple projects under project management (different applications in a company, or stuff like Internet Explorer being on it's own development path).

The rest really is organization. Architecture teams etc. - making sure it does not run down into one overloaded guy that stalls everything.

MS does have a huge system - I hear the test farm for Visual studio (i.e. servers for running unit tests) is about 1000 machines or so. Many developers hit it constantly with validations ;) I also heard once that a full windows build took about a day ;) So, this really also runs down on enough machines - source control is nice ,but if you have thousand developers hitting you, a lonely file server is NOT enough.

TomTom
+1  A: 

They work with a Source-Managing tool like Subversion or CVS and a Bugtracking tool where bugs / Feature-wishes can be 'suggested' by developers, partners, alpha/beta-testers etc and then be assigned to specific persons by a projectmanager.

This is pretty much the trick of holding a great project running.

When it comes to development there needs to be a plan of course... google up V-Modell where everything is split up in milestones and activities.

Steav