Software development is still immature, it’s clear from many totally opposing approaches that nobody has quite figured out the right way to do it.
As humans we find it easier to understand things when we draw parallels with other things. We “design” software like we might design a bridge, we try to plan it’s manufacture using ideas from building cars. We have to use existing words and ideas for new concepts, but the baggage that comes with those words colours and distract from what we are really doing.
What is software development really like? If you had to pick another profession, what would it be?
I think the profession it’s closest to is writing fiction. You are creating something that doesn’t exist. Each time your work is subtly different but has the same themes. you might have writers block for long periods trying to get something right, but then be insanely productive. You are probably renown for taking just a bit longer than you’d hoped and it’s very hard to give an estimate at the very start.
I wonder why we don’t borrow planning methodologies from writers? A brief google doesn’t really turn up anything, perhaps they don’t have one.
I think I know what software development actually is (as opposed to what it’s like) but that is topic for another time.
“And I made it totally symmetrical so you can’t even tell if you are holding it the right way up!”.
Frameworks are like those single purpose kitchen gadgets on late night TV.