Feed: My Secret Life as a Spaghetti Coder - AggScore: 67.7


Visitor Rating: 7 (1) (Rate)
Story Clicks: 40
Lenses: (Add|?)
Comments: (Log in to add)
Log in to add feed to you bookmarks.


Many among us are fond of quoting Voltaire's observation that perfect is the enemy of good. Micromanagers are seemingly universally loathed as "bad managers [who] are too distracted by their own egos, paychecks or insecurities to recognize how self-destructive they are." Yet Fortune Magazine's CEO Of The Decade is Steve Jobs, who is something of an icon among hackers, is also a micromanager ("He'd say, 'The third word in the fourth paragraph isn't right. You might want to think about that one.'") and perfectionist. How can the disconnect be reconciled?
Comments?


Date Published: Nov 17, 2009 - 7:17 am

We observe that organizational structure metrics are significantly better predictors for identifying failure-prone binaries in terms of precision, and recall compared to models built using code churn, code complexity, code coverage, code dependencies, and pre-release defect measures.
(Link is to abstract page, quote is from the PDF linked to from there, chart below is from the paper as well) ComparisonofdifferentcodefailurepredictionmodelsshowingOrganizationalStructureisthebestpredictoramongthem Further research needs to be carried out to see if this generalizes beyond the Windows Vista team. Needless to say, it's not a license to write crapcode, as those metrics are still good predictors of software defects, but it's interesting to note just how important organization is to software quality. Thoughts? Thanks to Sean Corfield for bringing the paper to my attention.
Comments?


Date Published: Nov 12, 2009 - 8:38 am

A great development team is an asset that gains you competitive advantage in the marketplace. They churn out features quicker than other teams, with higher quality code that contains fewer defects. You give them project after project and they routinely meet or exceed the deadline. They're well known for hitting on all cylinders often enough to pull off seemingly miraculous feats of software engineering. All is right in your world. It's relieving to know you have a team you can trust, and your team members take pride in knowing that you believe so highly in their skills that you rely on them in the squirreliest of circumstances. The pitfall shows itself when, instead of enjoying the benefits of such a team, you start to rely on those benefits. You start to assume the "firing on all cylinders" is the norm, and schedule accordingly. You let yourself believe those miraculous deliveries means you can put off important decision making until a week before they need to be delivered. As long as everything goes good, you're in the clear. And it normally does. But what happens if someone gets sick or has a family emergency to attend to? What happens if your team just can't maintain that sort of intensity indefinitely? You're going to be late. What's worse is you needn't have been so if you would have remembered to plan for things like that. It's just a word of caution: don't assume perfection, even if empirical evidence suggests otherwise.
Comments?


Date Published: Nov 04, 2009 - 7:46 am
u-mp9063 serv 0.1936 seconds to generate.