Managing projects?

Started by
6 comments, last by frob 18 years, 1 month ago
Hey everyone! I was wondering if someone could give me some tips on books that cover the topics of managing large scale software developement. More specifically, I'm intrested how to manage a software project, how to manage a project where the programmers are split across continents. How to create feasable schedules, and assign tasks to different programmers etc... I would also appreciate if you have any tips on what tools should be used, like cvn and NetWeaver? I would especially be intrested in some tool that handles versioning and lets you switch between different versions to work on. Lets you give each programmer different tasks/folders where their current task can be placed and versioned. Prefferably then automatically create a final version of the sources. And it would be really great if I don't need to download files from a server, just rather connect to the repository and work directly with it. Some project info: 3 programmers, all live in different places approximated time is about 6 months
Advertisement
Quote:Original post by FxMazter
I was wondering if someone could give me some tips on books that cover the topics of managing large scale software developement.

Mantras: There is no substitute for experience. Remember that skilled management has very little to do with skilled programmers.

Large scale software involves 50+ people working together. You said 3 people at the bottom. Three people don't need management, they need to pick one person as a leader and decision maker. You shouldn't really need management until you get over 5 people. The role of a manager is to let the programmers work without having to do all the company busywork -- programmers should program. Lead programmers should rely on a project manager to do all the legwork.
Quote:Original post by FxMazter
More specifically, I'm intrested how to manage a software project, how to manage a project where the programmers are split across continents.

With only three developers, this is not an issue. Large projects will have managers on each continents over each group of people. Three people can just use IM.
Quote:Original post by FxMazter
How to create feasable schedules, and assign tasks to different programmers etc...

There have been many good books and articles written about this. A recent book I'd recommend is 'how to cheat at software management', but it doesn't fit your described needs. You should look at software estimation and project planning generally in Communications of the ACM. Your local University library should have access to that, and a friendly librarian to help you find it. Those articles reference conference proceedings that your library should also have.

Simply put, accurate software schedules are very difficult even when you have all relavent information. And normally you don't have all relavent information. The best ones I've read (it's been a while, so there might be better) stemmed from an article about measuring the mountain rather than the boulders. The idea was that rather than measuring each of the tasks (boulders) and adding them together, you take measurements of the few things you know, and compare it against similar projects that you have already measured. It requires you to know the facts about old projects, and you probably don't have that available.

Quote:Original post by FxMazter
I would also appreciate if you have any tips on what tools should be used, like cvn and NetWeaver?

cvn? You mean version control tools like subversion or cvs? The only think I can find about NetWeaver is that it works with SAP to access and synchronize customer relationship databases over the web. I have no idea what that has to do with project management, but I also don't want to spend the time researching their product. I'm just lazy, I guess. [oh]

Tools you should use run the gambit. Absolutely essential is version control, which could be cvs, subversion, perforce, or something else. Other things you will need to decide on are compilers, art tools and formats, custom tool chains, and all the middleware and libraries you intend to use.
Quote:Original post by FxMazter
I would especially be intrested in some tool that handles versioning and lets you switch between different versions to work on. Lets you give each programmer different tasks/folders where their current task can be placed and versioned. Prefferably then automatically create a final version of the sources. And it would be really great if I don't need to download files from a server, just rather connect to the repository and work directly with it.

Some project info:
3 programmers, all live in different places
approximated time is about 6 months

You just described some of the core functionality of version control. Use [google] to search for cvs, rcs, and subversion. These are all free and have nice interfaces on all operating system. There are visual studio plugins for each. There are web interfaces for each. You want to learn about the branch/merge functionality.
Thanks a lot! Rating up ;)

Yeh, well... I didn't actually "mean" large scale developement, more or less I figured that I might as well read some literature on that since those ideas should work on small projects as well :)

Yeh, I meant cvs. I will check it out.

Thank you a bunch!
Quote:
Yeh, I meant cvs. I will check it out.


CVS is pretty obsolete at this point. Please check out subversion instead.

Quote:Original post by Anonymous Poster
Quote:
Yeh, I meant cvs. I will check it out.


CVS is pretty obsolete at this point. Please check out subversion instead.


CVS is relatively long, stable history. It's been functional since 1986 and was started from the RCS sources. CVS doesn't change because it is widespread and essentially feature complete. There are countless tools that integrate with CVS. You can find plugins for virtually every editor and every OS. CVS bugs make big news, and are fixed very quickly.

The only drawbacks (which are very minor) to CVS are renaming, Unicode file name support, and atomic batch transactions. There are free tools out there that overcome these limitations, but are really not necessary in practice.

Subversion is VERY new (official release was less than two years ago) and has not been around long enough to become stable. It has relatively few good tools that integrate with it.

They WANT subversion to be a replacement for CVS, and I'm sure that eventually they will meet their goal; there is not enough history behind it to make it a compelling replacement. Early versions were plagued with data corruption. They still have almost 400 known bugs to solve.

Being new, subversion does have some nice compelling features, but certainly doesn't make CVS obsolete.
We switched from CVS to SVN half a year ago.
Renaming some folders realy fucked up the CVS repository and made it unusable.
And we tried it the "clean" way by deleting the old folder and creating a new.
Another clueless programming venture. 3 programmers in 6 months = 1 programmer in 3 months unless you are a lazy bum.
Quote:Original post by Anonymous Poster
We switched from CVS to SVN half a year ago.
Renaming some folders realy fucked up the CVS repository and made it unusable.
And we tried it the "clean" way by deleting the old folder and creating a new.


You should not change names in CVS. This has been known forever, and is one of the big reasons that the CVS developers jumped ship to write subversion.

This topic is closed to new replies.

Advertisement