Live data from Hacker News

Why don’t software development methodologies work?

typicalprogrammer.com

101–110 of 201 posts

Re: Why don’t software development methodologies work?

#101

I'm a fan of repeatability and process. Here's my take on why they don't work: 1) You can't get around that things don't work as planned, and too many methodologies assume that things will. 2) It is better to have a PM with A level content and B level process, than the other way around. Professional PMs don't have the intuition to solve the daily project problems, but they're the ones selling the methodologies. 3) To…

#1 and #3 sound like they're right out of http://agilemanifesto.org/

Re: Why don’t software development methodologies work?

#102

Earlier quoted context omitted.

>anti-intellectualism that is so pervasive in the software development scene Errrr....

How else do you characterize an industry that seems content to re-learn lessons of the past over and over?

1) Industries don't learn; people do. We have a lot of turnover and growth in this industry, so a lot of new people. 2) Although there are high points of genius we may never reach again (Turing, etc), we are making progress. Software today can do things hardly imagined a few decades ago. 3) Part of how we make progress is to try "unlearning" things; throw out conventional wisdom and try something "crazy". Maybe it will fail the same way as before, or maybe this time it will work. Maybe the constraints that produced the conventional wisdom have changed. 4) People problems will always be hard, in every industry. Productivity is a people problem.

Re: Why don’t software development methodologies work?

#103
post #78
post #31

An important realization I made a while back was that design methodologies do little to address program correctness, which is almost always the wildcard on deliverables; buggy software means missed deadlines and budget. Some, such as TDD, work to address the rapid building of tools to a particular spec, but often fail to promote static guarantees, especially in languages and environments where such provability is lar…

" I find it no surprise that the larger companies have made foundational maths, such as category theory and abstract algebra, the underlying abstraction for their general frameworks. " I would like to learn more; do you have a specific example? Having worked with real "engineer" engineers, I've found that they have, and value, a considerable amount of mathematical education, but that education is all in continuous ma…

I considered editing my other comment but decided instead to break it out.

There are a couple of complexities that your comment illustrates well:

First, continuous math _is_ available and immediately applicable today. The problem is that we often reason in and program to the implementation, not the abstraction - a subtle difference, but an important one. Not only that, but by reasoning in a flawed representation, we often miss important derivations that result in dramatic simplifications and reductions in the problem domain. I would also argue that we already do use continuous math regularly - for example, linear algebra, combinatorics, and set theor: most of us only know them as arrays, random, and SQL.

Secondly, not enough effort is made in formal education for applying 'pure' math to computer science. Some branches, such as linear algebra, have obvious implementations and analogies already available but others are quite a bit less clear - I fault this more on curriculum silos than an engineer's innate abilities. It's a learned skill that just isn't often taught.

Re: Why don’t software development methodologies work?

#104
post #12

"I know the feeling working on a team where everyone clicks and things just get done. What I don’t understand is why I had that feeling a lot more in the bad old days of BDUF and business analysts than I do now." I suspect it's the author that has changed, not everyone else. It's probably a combination of a nostalgic bias combined with the author's increasing age making it harder to get on with a typical team of youn…

I'm strongly against what he wants to revert back to, but I think he has a point. Many engineers are completely lacking in leadership and strategic capability, and fall prey to a cargo-cult, new-must-be-better, buzzword-chasing careerism no different from what we accuse managers of. He's probably seen a few teams ruined by young megalomaniacs who want to put terms like Scrum and Kanban all over their resumes because…

I agree, unfortunately (or fortunately), having stuff like that on your resume can translate to more dollars and happier wife; happier life. As I get older I wonder if Social Security will be there. In my lifetime pensions have gone away so it wouldn't surprise me to see SS go away. So I'd say load 'er up! Get all the terms and buzzwords you can on there.

Re: Why don’t software development methodologies work?

#105
post #97
post #22

In my experience, these methodologies are best described as cultish. The form of religion but not the power. Here's my methodology. * Figure out what the software does, what the business cares about, and what the users care about. * Figure out what it kinda sorta needs to be under the covers * Write prototypes of the technically gnarly bits. * Flesh out the prototype and start writing integration/functional tests for…

If web based project: Involve your operations team as early as possible. Carry on.

Deployment plans & team should be part of initial technical planning. They are the linchpin to ensuring happy customers. No?

Re: Why don’t software development methodologies work?

#106

> rigorous studies of software development methodologies haven’t been done A simple search proves this is false. Paired with author's other unsupported and stupendous claims I have to doubt the validity and worth of anything else author says.

I did do a "simple search," and quite a few that weren't so simple. I've also read books on software development methodologies since the 1970s. I did link to the Cockburn paper, which surveys some studies and comes to the same conclusions I have. In the interest of brevity I didn't get into the well-known (anecdotal) studies from Weinberg, DeMarco, Yourdon, et al.

I know it's part of the fun to toss a firecracker over the wall, but if you are going to say that there ARE rigorous controlled studies please link to them, or at least post your "simple" search terms. If you want to point out which of my "unsupported" and "stupendous" claims are invalid and worthless I'm happy to learn from your experience. I tried to make it very clear that I am relating my own experience and drawing my own conclusions.

Re: Why don’t software development methodologies work?

#107
I have a buddy who went through six-sigma and Toyota Production System training in his work as a Process Engineer in a large manufacturing company. When we talked about the application of methodology to an organization, he made a keen observation on human nature: "people don't like to be told what to do." To me, this goes a long way toward explaining why "conceptual integrity" matters more than a methodology, and why it is difficult to apply a methodology to a new team or company unless they discover it for themselves organically.

Re: Why don’t software development methodologies work?

#108

+1 for old-timer perspective and the reference to fred brooks' conceptual integrity. And to think, the MMM said most projects suffered from too weak of management _back then_. -1 for being too short of an article; I wanted to hear better specific examples, and was sad when I saw the comment section starting :-)

Thanks for the kind words! I have a pile of notes that I decided to work into several articles, so stay tuned.

Re: Why don’t software development methodologies work?

#109
This is a fantastic post and I agree with it fully.

I get why process exists, I know management sees it as a way to make software development less lumpy; to bring below average teams up to average productivity, but it isn't a one way lift. Extensive process might raise the below average toward the average, but it can also lower the above average toward the average.

Twice I've seen situations where a team of better than average developers had no really well-defined process (though not surprisingly a sort of home grown process evolved to suit everyone's needs -- agile, as opposed to Agile, if you will) that was highly productive suddenly have process dropped on them from on-high in an undeniably productivity-killing way.

One time it was because higher-ups at the company randomly decided they needed to standardize on the Rational tools (ClearCase, Rose, etc... still have nightmares about that stuff) and out of that insane decision we ended up with some stupidly strictly defined RUP-based process to tie everything together.

The other was when a team was transitioned from one company to another and the other was one of those stupidly-strict "Agile" shops that fully drank the ritual kool-aid and adopted basically every suggested "Agile" strategy they could slap together without giving much thought to the actual original ideals of why "Agile" came about.

I guess the takeaway is be really selective about introducing new process. It might entirely make sense if your project is building some mostly throwaway CRUD app for an internal company department and all of your developers are, well, the kind of developers you can find who will work on such things and the project is off-track. Or even if your developers are all good, but the project is failing for other reasons like lack of cohesive vision. A little bit of process introduced sparingly might help.

But if you have a highly productive team already, don't fool yourself into thinking that because process "improves" software development that adding more of it will make your highly productive team even more productive. Because it very likely will do the opposite.

Re: Why don’t software development methodologies work?

#110
post #87

Earlier quoted context omitted.

Having read "the mythical man-month" I came to conclusion that majority of the problems we have today were discovered an described by the 1970-ies.

Great book. He anticipates a lot of the problems, and "Adding idiots at the end" rarely fixes things. (Look at the Obamaacare website) It's been a while since I've read it, but I don't think he captured the benefits from agility.

I would not be surprised to find that someday we understand why some projects work from agile, and see that it basically comes back to the "vision" observation in Mythical Man Month.

Of course, this really just betrays that I want that to happen. So... take it for what its worth.

Post reply on HN