by JazCE on 11/20/23, 8:54 AM with 89 comments
by misja111 on 11/20/23, 9:51 AM
> In one of their studies, Sackman, Erikson, and Grant were measuring performances of a group of experienced programmers. Within just this group the ratios between best and worst performances averaged about 10:1 on productivity measurements and an amazing 5:1 on program speed and space measurements! In short the $20,000/year programmer may well be 10 times as productive as the $10,000/year one.
Brooks did mention some other really useful concepts that are still very valid today: 'No silver bullet' and 'The second-system effect'. These should have been mentioned as well.
by paddy_m on 11/20/23, 5:41 PM
I can see shaving 1-3 people off of Brook's ideal team (we don't need a secretary to type anymore, PM's that organize projects at the behest of a technical leader are effective).
What I have seen over and over is, whoever writes the most code tends to get the most power in an org. Whoever is delivering features quickly gets power. This kind of works, but these coders frequently leave poorly thought out architecture that is hard to extend.
by sizzzzlerz on 11/20/23, 3:21 PM
by danielovichdk on 11/20/23, 7:40 PM
I would argue that it should be the bible for every manager that are managing engineers. They should study it thoroughly and all the literature it touches and mentions.
The best book I have read on software development by far.
by lordnacho on 11/20/23, 9:45 AM
Reminds me of Adam Smith's writings about the nascent factory economy, and perhaps ancient philosophers as well.
by AdamH12113 on 11/20/23, 7:19 PM
by jcmeyrignac on 11/20/23, 11:08 AM
A group of 8 persons provides the same amount of work as 4 individuals.
by ewst on 11/20/23, 1:26 PM
Doesn't it increase by n^2? as per the picture with the graphs?
by rco8786 on 11/20/23, 1:14 PM
In reality, there is very often opportunity to take 1 project with ~3 engineers, and break it into 2 smaller projects each with ~3 engineers and run them mostly in parallel. Do your best to isolate those projects, but have a point of contact (EM, PM, tech lead) between the two teams to coordinate whatever dependencies are unavoidable, etc.
You'll notice, that this is just a smaller microcosm of how every company is actually structured anyway. There's still diminishing returns, but most people on the team never need to communicate directly with people outside of their project.
by fassssst on 11/20/23, 5:36 PM
by bernardlunn on 11/20/23, 10:30 AM
by monoscient on 11/20/23, 9:02 PM
by gjadi on 11/20/23, 1:46 PM
Brooks says there can be some gains, but no silver bullet :)
- As a Testing Agent that learns how the system behave and how to test it as the developers interact with the agent.
- As a tutor, junior can learn from the knowledge of experts by interacting with the AI.
- For "automatic" programming when the problem is characterized by few parameters, when there are many known solutions and good knowledge to select the correct solution.
So far I've read about tutoring and automatic programming, but I haven't read about how to use AI to learn about the system and generate tests.
by pie314isi on 11/20/23, 10:37 AM