This is a list of books currently on my To Read shelf... literally. I do not suggest or anti-suggest any of them at this time as I haven't read them yet.
Current Efforts:
Blue Parabola, LLC
HubAustin
web2Project
PHP'ers:
Cal Evans
Eli White
Elizabeth Naramore
Joe LeBlanc
Matthew Turland
Matthew Weier O'Phinney
Planet PHP
Tony Bibbs
Business/mISV:
Bob Walsh
Eric Sink
Joel Spolsky
Micah Baldwin
Paul Graham
Past Projects:
CodeSnipers
HOBY
Judicial Watch
mobile FoxNews.com
NRTW
Great Tools I use:
Drupal
GitHub
NetBeans for PHP
phpUnit
Subversion
Zend Framework
This is not the home of dotProject or web2project. It is the home of CaseySoftware, LLC. Any dotProject support questions should be referred to their support forums.
In my regular wanderings of the web, I came across an interesting article titled "Why Software Developers Refuse to Improve". While the author talks about metrics including developer effectiveness and team vs team effectiveness and company-wide effectiveness, he cited another data point that I thought was interesting:
"He offers some suggestions as to ways that organizations could improve, such as establishing the feasibility of a large development task beforehand, citing figures that 65% of 1 Million+ LOC systems are canceled before completion, as are 50% of 500KLOC systems, and 25% of 100KLOC systems."
While the obvious implication of the article is that organizations are not properly equipped/trained/prepared to tackle these large software development projects and therefore eventually fail. Especially early in my career, I tried to tackle problems and ideas that simply weren't reasonable or were considered ridiculously complex and far beyond my skills. This is a common problem on software development teams with little real-world experience or hubris in their own skills or both...
All of this seems logical... but what about an alternative explanation?
While I don't put much stock in LOC (Lines of Code) as a metric for developer/team productivity*, it can often be an indicator of other things. For example:
So what if these are the real reasons for the failure of large projects?
At some point, some magical threshold is crossed. No one on the team can understand all of it. As team members come and go, the average understanding of the code goes down. Issues that might have been trivial for the original team now become difficult and obtuse. New developers believe "there must be an easier way" and duplication goes from "likely" to "probable".
* For example, web2project at v1.0 was about 133KLOC. At present, just a few weeks away from the v1.1 release, we've grown by about 5%, much of which is due to Unit Tests. If you remove Unit Tests, we've actually shrunk by about 1% while closing dozens of bugs and implementing quite a bit new functionality.
I would suggest that these
I would suggest that these indicators stem from the practice of not properly maintaining a large codebase. In most organizations, the focus is on deploying code within a narrow time frame. That is, ship it now. The first items to be cut from the budget/schedule, if they were ever in there to begin with, are testing, documentation, and any perceived "slack". The temptation to get something done right now often wins out over getting it done right.
I think, and granted this is anecdotal, that successful software projects are ones that pay attention to building the codebase right and maintaining it as well, doing things like:
I don't think this is an exhaustive list, just observations from my own experience in inheriting 2 relatively smallish product code bases.
Spell Check
When you can't be bothered with spell check, your credibility is severely reduced especially when using _words_ like "noone".
My apologies
I am sincerely sorry that I had a typo and that it obviously caused you so much stress. I hope my career can recover from it.
I will work every day in a feeble attempt to make things better... knowing that - quite possibly - if I make one more, then my career will be over.
Don't be sorry
it's a common mistake...you don't have to be sorry! I think that person is just a little to anal! Look at my airsoft sniper rifle blog... I have a lot of typo...you don't see my reader complaining about it! LOL
-Matt
That's interesting that
That's interesting that while the obvious implication of the article is that organizations are not properly equipped trained prepared to tackle these large software development projects and therefore eventually fail. Nice blog.
Post new comment