March 13th, 2006, 5:37 pm
QuoteOriginally posted by: DCFCIt's known that programming ability is exponential, so f(3) can be > f(20)But not always.I think the time savings are exponential. Managing a team of 20 programmers takes a lot of time. The programmers themselves have to spend time keeping the manager up to date. And then they need to correct their manager's misconceptions. When you have fewer, but more productive programmers, you also save all the "management expense". Right now, at work, I need to come up with a plan for what I have to do to complete a certain project. This involves stepping through the code of a similar project, and try to guess which pieces I will have to implement, how long it will take, and what possible obstacles could be. Whereas I normally would just start coding and implement the pieces as the come up.QuoteOne very experienced developer on my team likes to bring up the example of Unix (or maybe it was something else, but definitely something that is in world-wide use) that was written by 3 people in a very short amount of time. Yes, but it didn't do anything. I used early Unixes. Amongstg the things they did not do at allNo networkikng, graphics or email. First gen Unixes had no file locking, they referred to it as "neither necessary or sufficient", no threading, no "full screen" editors. I'm not sure I can adequtely express how fiddly this was, except by saying that "grep" is named after the things you used to have to type. (Hint: no cursors)You can develop useful systems with 3 people, but only because they make heavy use of pre-canned libraries etc. But that only works when the libs do what you want, once you have write your own, body count soars.Also the "3 programmer myth" only works at all when they have the right skills. You may be a good programmer, but do you know XLLs, and threads, and XML, and SQL and FIX ...You get the drift. Take the "simple" task of sucking some data out of Bloomberg, constructing a yield curve, persisting it into a database, and presenting the results in an Excel graph that updates as points change. How many people have all those ? Can you afford them ? Well, a project I am working on at home (because work isn't exactly challenging) has to do with equity options. I wrote an app that downloads option chains from a website every 20 minutes, parses the HTML using regular expressions, and loads these into a SQL Server database (which also handles the job scheduling). I am also writing some analytics because I want to back test some trading strategies. I have a front end that allows you to visualize the data (found a very nice component for it, ZedGraph, highly recommend it). I plan to write an add-in for Excel to expose those analytics. This is all done in C#. All in all, I'd say I spent 3 weeks of coding time on it, since I didn't know regex, was not too familiar with the DB interfacing, and setting up the SQL Server itself. I did leverage a lot of code I had written previously in C++, and of course all the built in libraries of C# 2005.The point I am trying to make is, I am sure I am not the only one who can do this. There have to be good programmers out there, better than what I encountered at work (both colleagues and candidates). When you have three competent people, you can divide up the responsibilities, and everything goes even faster.Quote Throw in all the regulations demanded by the SEC, and you have hundreds of programmers and managers where under 50 would probably have been sufficient.You need to think harder about the complexity and diversity of modern s/w projects.I admit, I've never been involved in large scale projects from inception. But it still seems to me you should minimize the number of programmers for a given salary budget.