Live data from Hacker News

Why don’t software development methodologies work?

typicalprogrammer.com

181–190 of 201 posts

Re: Why don’t software development methodologies work?

#181

Earlier quoted context omitted.

This remind me that business is pure gamble, and business people is bad gambler. They want to play but do not want to lose and if they lose they want to blame somebody. Managing ego and heart is harder than managing a project i think.

The Second Law of Consulting: No matter how it looks at first, it's always a people problem. Gerald Weinberg http://en.wikiquote.org/wiki/Gerald_Weinberg#The_secrets_of_... http://www.codinghorror.com/blog/2008/01/no-matter-what-they...

haha, I love this guy..

Asking for efficiency and adaptability in the same program is like asking for a beautiful and modest wife. Although beauty and modesty have been known to occur in the same woman, we'll probably have to settle for one or the other. At least that's better than neither.

Re: Why don’t software development methodologies work?

#182

Earlier quoted context omitted.

> Do you think it is an acceptable answer if the builders reply, "I have no idea how much it will cost, I don't know how long it will take, and I don't know what you will have at the end of the process." If that's the actual answer, then anything else is just obfuscating the truth. Why should we encourage lying to try to cover for the fundamental lack of knowledge? If you don't know, trying to make up numbers never m…

> If that's the actual answer, then anything else is just obfuscating the truth. There are three possible reasons for an answer of 'I don't kmow' 1. Something is unknowable 2. The person being question has insufficient expertise to discover the answer 3. The person being questioned hasn't really thought about it. You appear to be assuming that 1 is always the reason.

There's a lot more than those three possibilities. I don't really believe that anything is unknowable, aside from semantic arguments about Godel's incompleteness and things like that.

What I'm saying is, that at the moment someone asks you "How long will X take to bring through the software development process", "I don't know" has to be a possible answer or your whole method is corrupt.

Re: Why don’t software development methodologies work?

#183

The problem here is that he defines "works" as "Deliver a predictable or repeatable software development process in and of themselves." And that's crazy. Software delivery is at least 50% design/problem solving - and those aer neither completely predictable or repeatable. To me a software methodology works if it _improves_ delivery. If the result with the methodology is more predictable, and less likely to go horribl…

Software DEVELOPMENT is a lot of design and problem solving. It also usually involves changing requirements and discovering limitations of the tools. I agree that there's a lot of uncertainty in the development process.

Software DELIVERY is what management, customers, and users care about. If a software system does not meet requirements, or if it's so late or over budget that it's a net loss to the customer, it matters little how well-designed it is or what problems were solved.

By predictable and repeatable I mean the entire process. Obviously not every aspect of of the development process can be predicted, nor are projects enough alike to be produced by an assembly line. What management and customers want is a reliable prediction that the system will meet requirements and be finished on schedule and within budget. And they want to believe that a process that can deliver a system this year can do it again.

An architect can reliably predict that a house or an office tower can be made from their plans. A chip designer can predict that a working CPU can be designed and built. An automobile designer can predict that a working car can be made. And these processes are repeatable. Any designer/builder will encounter problems to solve and changing requirements. Failures occur in these realms, too, but not nearly as often as with software projects.

I've heard the argument that software development is different: it's a creative process, the people are idiosyncratic, the problems are unpredictable. I think big-budget movies face the same challenges, but even in that domain there are predictable and repeatable processes that are reasonably good at delivering.

I agree that "Looking for something that can perfectly transform any human requirement into code, in a predictable manner, is just silly." I didn't write anything like that, nor is that what I think anyone means by software development methodologies.

Re: Why don’t software development methodologies work?

#184
post #3

this one of the many examples of the anti-intellectualism that is so pervasive in the software development scene. Are the inflexible, detail-prescripting methodologies he describes any good? of course not, but I haven't seen a single seriously used methodology be like that in real life unless it fell on the hands of negligent/incompetent management and/or engineers.

You are lucky if you've never seen a methodology misused or misapplied. I have seen it many times, in my own work experience and in the failed projects I've taken over.

I'm not sure how you got the idea that I'm anti-intellectual. My intention was to express my own opinions and experience and start a discussion. I wasn't trying to wave anything away.

Re: Why don’t software development methodologies work?

#185

The problem here is that he defines "works" as "Deliver a predictable or repeatable software development process in and of themselves." And that's crazy. Software delivery is at least 50% design/problem solving - and those aer neither completely predictable or repeatable. To me a software methodology works if it _improves_ delivery. If the result with the methodology is more predictable, and less likely to go horribl…

Software DEVELOPMENT is a lot of design and problem solving. It also usually involves changing requirements and discovering limitations of the tools. I agree that there's a lot of uncertainty in the development process. Software DELIVERY is what management, customers, and users care about. If a software system does not meet requirements, or if it's so late or over budget that it's a net loss to the customer, it matte…

"An architect can reliably predict that a house or an office tower can be made from their plans."

Yes, but that's because the plans are nailed down and fixed - the creative design part is _done_.

"A chip designer can predict that a working CPU can be designed and built. An automobile designer can predict that a working car can be made."

Neither of these are true until _after_ the designs are finished. Intel has gone massively over-budget on chip designs before, and automobile designs have been abandoned after spending a fortune trying to get them right.

Re: Why don’t software development methodologies work?

#187

Earlier quoted context omitted.

Software DEVELOPMENT is a lot of design and problem solving. It also usually involves changing requirements and discovering limitations of the tools. I agree that there's a lot of uncertainty in the development process. Software DELIVERY is what management, customers, and users care about. If a software system does not meet requirements, or if it's so late or over budget that it's a net loss to the customer, it matte…

"An architect can reliably predict that a house or an office tower can be made from their plans." Yes, but that's because the plans are nailed down and fixed - the creative design part is _done_. "A chip designer can predict that a working CPU can be designed and built. An automobile designer can predict that a working car can be made." Neither of these are true until _after_ the designs are finished. Intel has gone…

I think I'm not making my argument clear. Software development methodologies are PROMOTED as ways to improve the predictability and repeatability of software development. They are adopted because management (or customers) are scared by the usual chaos of software development.

I think I clearly communicated my opinion that no development methodology in and of itself guarantees predictability or repeatability. They fail to meet the expectations of management; in other words they don't work.

I also think I clearly expressed my surprise that even without management pressure programmers will adopt methodologies and then force themselves to follow the rituals. Maybe this happens because programmers don't know better. I think it has more to do with creating a firewall of process and so-called best practices to avoid oversight and criticism. Sometimes there's an element of showing off -- look at how Agile/OOP/TDD/whatever I am, and no one told me to do it!

Re: Why don’t software development methodologies work?

#188

Earlier quoted context omitted.

The Second Law of Consulting: No matter how it looks at first, it's always a people problem. Gerald Weinberg http://en.wikiquote.org/wiki/Gerald_Weinberg#The_secrets_of_... http://www.codinghorror.com/blog/2008/01/no-matter-what-they...

haha, I love this guy.. Asking for efficiency and adaptability in the same program is like asking for a beautiful and modest wife. Although beauty and modesty have been known to occur in the same woman, we'll probably have to settle for one or the other. At least that's better than neither.

No haha, this is just plain sexist and wrong. One of this wonky generalizations and why we don't have real software engineering yet.

Re: Why don’t software development methodologies work?

#189
post #78

Earlier quoted context omitted.

" 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…

As an electrical engineer who briefly flirted with computer engineering, I had 4 semesters of continuous math and 1 semester of discrete math[1]. I also had classes like linear systems and electromagnetics where I had to actually use continuous math heavily. While I do not think continuous math is particularly useful for general software development, I think it is very valuable for specific problem domains. I have fo…

As you say, continuous math (to my mind, calculus, diffeq, and linear algebra; anything involving reals) is necessary for some problem domains. But accounting is necessary for some problem domains as well. And molecular biology.[1]

But if I get worked up into a good froth, I can make a case that software development is applied formal logic or applied abstract algebra (or both). I don't believe you can do professional software development (in Weinberg's sense) without some serious discrete math, in the same way you can't do signal processing without calculus.

[1] If you've got something that mixes the three, let me know. It's probably something I should stay away from.

Post reply on HN