Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^2: Common Software Development Mistakes

by eyepopslikeamosquito (Canon)
on Aug 14, 2011 at 06:03 UTC ( #920201=note: print w/ replies, xml ) Need Help??


in reply to Re: Common Software Development Mistakes
in thread Common Software Development Mistakes

I think the fallacy here is to assume that anyone working on the project needs to be an as top-notch programmer as you are. Usually, that's not the case. Many projects only need "expert" knowledge for a fraction of the project, but the rest is just "grunt" work.
Good point. For fun, let's analyze a specific scenario. Let's assume that the "Perl 6 project" is "late" and that we have some (below average) developers available to throw at it with the goal of "finishing" it sooner. For this hypothetical scenario, let's loosely define "finished" as all Synopses complete and all implemented in at least one Perl 6 implementation with similar performance and stability to perl 5.14. I don't want to get distracted with nit-picking the "definition of done" here. The point of this little exercise is to gain insight into Brooks' Law: where does it hold, where should it be repealed? To simulate what I typically see in commercial projects, let's further assume that these new developers have little prior knowledge or experience in Perl.

Now, adding new "below average" developers to perform highly skilled work, such as finishing the Synopses or improving the Perl 6 parser seems counter-productive to me, a classic case where Brooks' Law holds. In which of the following areas would adding more people help finish the project sooner?

  • Writing the Perl 6 specification
  • Perl 6 development of parsing, compiling, ...
  • Perl 6 runtime development (run machine, garbage collector, introspection, foreign code, parrot, ...)
  • Perl 6 library development
  • Writing Perl 6 documentation
  • Development of installers
  • Development of tools (e.g p5 to p6 translator, pod2html, ...)
  • Development of Perl 6 CPAN
  • Writing test suites
  • Using Perl 6 and reporting bugs and issues found
  • Maintaining the bug database, issue tracking, ...
  • System administration
  • Licensing
  • Marketing, maintaining Perl 6 web sites, wikis, ...
  • Release engineering
  • Project management
I may have missed some key areas above or broken things down wrongly. Please feel free to suggest improvements.

I suspect that most open source projects (such as Perl 6) are well ahead of most commercial ones in terms of documentation and in partitioning the system into independent components. Accordingly, I feel Brooks' Law is less applicable to open source projects than to commercial ones.


Comment on Re^2: Common Software Development Mistakes

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://920201]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (7)
As of 2014-08-22 05:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (147 votes), past polls