It's been a while since read the book. IIRC, you are correct.
Your extra details are good, but we still can take a simpler approach: More people means more communications, of all kinds! So, the whole thing can go bureaucratic with endless lists of requirements, considerations, ....
E.g., my solo, sole founder project code has 24,000 programming language statements in 100,000 lines of typing, and large organizations, even using the parallelism you mentioned, might have taken more person-hours and maybe more elapsed time to do that than I did!
I had one of those situations: About a dozen of us. In the afternoon I heard the horror stories about the weeks of work they had to do to program the rule subroutines. Gads, their implementation would have made a mess out of the feature.
Some of the problem was a run time routine for some RETE logic. The programmers were planning to return from all the subroutines, run the RETE code, then somehow call all the subroutines again -- at best, a disaster. By dawn I had sent e-mail with a clean solution: Carry along an entry variable pointer to the RETE routine, keep it active on the stack of dynamic descendancy, and then invoke it where as needed. I got some sleep and when I got back the production code was nearly done!
How that happen? We had some bright guys, but one guy working alone overnight did better than the results of all the meetings and plannings.
Your extra details are good, but we still can take a simpler approach: More people means more communications, of all kinds! So, the whole thing can go bureaucratic with endless lists of requirements, considerations, ....
E.g., my solo, sole founder project code has 24,000 programming language statements in 100,000 lines of typing, and large organizations, even using the parallelism you mentioned, might have taken more person-hours and maybe more elapsed time to do that than I did!
I had one of those situations: About a dozen of us. In the afternoon I heard the horror stories about the weeks of work they had to do to program the rule subroutines. Gads, their implementation would have made a mess out of the feature.
Some of the problem was a run time routine for some RETE logic. The programmers were planning to return from all the subroutines, run the RETE code, then somehow call all the subroutines again -- at best, a disaster. By dawn I had sent e-mail with a clean solution: Carry along an entry variable pointer to the RETE routine, keep it active on the stack of dynamic descendancy, and then invoke it where as needed. I got some sleep and when I got back the production code was nearly done!
How that happen? We had some bright guys, but one guy working alone overnight did better than the results of all the meetings and plannings.