Bob Martin - The Future of Programming

https://www.youtube.com/watch?v=ecIWPzGEbFc

History Lesson (taken from a youtube comment):

Alan Turing:

Timeline:

51:42 - Number of programmers doubles every 5 years. Tens of Millions of Programmers. Half of whom have less than five years experience. If we’re doubling every 5 years, we always have half the programmers with less than 5 years experience, which leaves you with perpetual inexperience with not enough teachers to teach, which leads you to repeat the same mistakes.

57:45 - If we have made any advances in software, since 1945, it is almost entirely in what not to do. Structured Programming was in what not to do - don’t use unrestrained goto. Functional Programming - don’t use assignment. Object Oriented Programming - don’t use pointers to functions. What we have learned over the last 70-some years is more about what not to do, than what to do. There have been no radical advances in software technology. The craft of writing software remains roughly the same as it was in 1945 - a little more modern, but not essentially any different

1:02:53 - Agile Principles are disciplines, not process steps. Promises you make, not tasks to follow.

1:04:11 - Business understands Scrum because it mirrors typical workflows. Programming at a high level isn’t a typical workflow.

1:06:55 - “Scrum without technical practices becomes an efficient business discipline coupled to an undisciplined engineering team, which will very rapidly make a mess.”

1:07:29 - Certification for project managers turned into a siren song, which attracted all the wrong people. Agile split and shifted towards kan-ban and tasks, not technical discipline.

Catastrophe will happen, its just a matter of when (it did, with Boeing 737 Max). With that comes legislation and bureaucracy and everything antithetical to the Agile philosophy. Instead of letting that happen, software dev’s should regulate themselves and develop principles/ethics/standards, and have something akin to a bar for law, or a doctors oath, to hold yourself to some standard, and saying no to people when it conflicts with it.