Re: Is there a "Large Scale Python Software Design" ?

From: Dave Brueck (dave_at_pythonapocrypha.com)
Date: 10/19/04


Date: Tue, 19 Oct 2004 12:38:06 -0600
To: python-list@python.org

Josiah Carlson wrote:
>>Heh. "Large" depends on a lot of things, particularly connectedness,
>>but I really can't picture 10k being large under any circumstances.
>
>
> Ok, so what is large? How many orders of magnitude larger than 10k
> lines does it take for a piece of software to be large? And why should
> you be the judge?

I think the only way to compare projects is from a user's or customer's
perspective - what functionality the application provides & its scope. Any
comparison involving lines of code or number of developers won't be reliable
unless other factors (especially implementation language & libraries) are held
semi-constant. For example, at one company I think the total was 1.1 or 1.2
million lines of code (all C++ & about 60-70 developers), and yet I have trouble
imagining how, if I could go back and do it again in Python, it'd take even 200k
lines of code (and the riskier side of me feels it'd come in at under 100k - it
just didn't _do_ a lot despite all that code!)

In that sense, a 10k Python app can be fairly large in terms of end-user
functionality. For example, our main product where I work consists of *many*
different custom servers, a full web-based administrative interface, an end-user
web interface, a client application that does all sorts of interaction with the
servers, and lots of database interaction. Add to this many internal tools,
integration tools we provide to our customers, etc., and I would rate it overall
as on the upper end of medium-sized projects, functionality-wise - not the
largest I've worked on but well beyond any definition of small, and our plans
for the next few quarters will definitely push it into the range of what I'd
normally consider a large system. IIRC we're only in the 10k-20k for lines of
Python code, plus a few modules here and there being C++.

Having said all that, I've found that competitors in our same space tend to have
20-30 developers on the low end to over 100 on the high-end, while we have but a
handful. We don't have quite the same breadth of functionality - at least not
yet - but we generally make up for it by accounting for it architecturally but
not adding it until a customer actually needs it (a sort of JIT approach to
development). As such we've been able to compete head-to-head with others in the
same sector. On more than one occasion I've wondered aloud how so many
developers working for Competitor X can stay busy, and I can only imagine how
many lines of code they're churning out - and yet, from a functionality
perspective we're keeping pace. I also wonder how many hours a day they spend in
meetings trying to coordinate everything. Ugh.

Back to the point at hand: a project using a higher-level language gets out of
hand more slowly; if there were no other advantage it'd still be a "win" IMO
because you encounter "big project" problems a lot later - and that's a huge
benefit in and of itself.



Relevant Pages

  • Re: jQuery vs. My Library
    ... Web developers are copying bad ideas and practices and doing what they're told by managers who do not have any business to do the telling. ... most sites nowadays don't require javascript, but are authored in such a way that if the user has javascript turned off, then the site does function. ... No matter what project, if the project involves writing rich functionality in the browser, then there is going to be a need to write javascript functionality and that functionality will be best organized into abstractions. ...
    (comp.lang.javascript)
  • Re: Itanic is a dead end : IBM
    ... The fitness of the application functionality to "changing business and ... but the functional enhancements themselves rarely if ever ... planning application on OpenVMS with an SAP module in April. ... the customer has now returned to the custom built OpenVMS ...
    (comp.os.vms)
  • Re: Lennart Poettering: BSD Isnt Relevant Anymore
    ... see accessing standards for SCSI ... products implementing them, prohibit developers using them, ... Giving that functionality to the ... FreeBSD users. ...
    (freebsd-questions)
  • Re: MS Access and Filemaker
    ... Does Access have similar functionality? ... Events based programmiing which Filemaker does not have. ... Outlook, C++, Visual basic, even custom REALBssic applications. ...
    (comp.databases.filemaker)
  • Re: XP, a Criticism
    ... >> incrementally and use refactoring to expand the necessary functionality, ... > XP relies very heavily on customer participation and unless a customer ... > requirements to both the developers and the QA people. ...
    (comp.object)