Professional programmer for over 30 years. Notable features of my career.
Used to justify not adopting a best practice: version control, unit tests, coding standards, agile, training, etc.
It might work for others, but the problems we work on are harder.
We have really good people, we don't need that.
That's fine for academics, but we have a business to run.
We don't have time to change.
Bad Design?
What is the most important thing we get from writing code?
There is no one, true way.
That's a lie. But not as big a lie as you think.
A bad programmer can write Fortran in any languuage.
The formal process should not prevent the informal process from working.
Why would anyone do that?about customer input.
Just because senior people have experience, doesn't mean they are right. Sometimes the assumptions have changed enough that the experience doesn't apply. That's not true as often as people assume.
Junior people ask stupid questions. Treasure that. Those questions give you the opportunity to re-examine old assumptions. They also remind you that just because we've done something for a long time, does not mean that you should continue doing it.
Customers/clients/users often do things that seem to make no sense. That's because they are solving a different problem than you thought they were. Sometimes, the weird things are just a bizarre side effect of their mental model of a workflow. Sometimes, it is the reality of how they work, and you can make it easier for them by changing.
Good Enough
Sometimes invoked recently as YAGNI
We're the ones solving really hard problems.
Any questions?