If I could go back in time, these are the 7 things I wish I knew about Agile Software Development.
(It would have saved me a lot of wasted time and effort.)
1. The Agile Manifesto is mostly right
You could do a lot worse than to just follow the principles described in the original agile manifesto.
2. Scrum works (if you do it)
Scrum is a great example of something simple made incredible complicated. But if you just stick to the by-the-book stuff, you'll probably get results.
3. Estimates aren't useless
Estimates are hard, often wrong, and most teams spend too much time creating them. But as long as we're precise (not accurate) they're valuable to people outside of the team.
4. Methodology wars are silly
Like all other tech-adjacent religious wars, the Y vs X methodology fights are a waste of time. You're better off finding something that works for your team and allows them to improve.
5. Most dysfunctions are people related
We spend a lot of time trying to add process to fix problems that are ultimately people problems. But process can't resolve someone's fear of being fired because their special knowledge is no longer needed.
6. Organic growth is slow, but sticky
Dropping a new process, ceremonies, jargon, and expectations on a team can get you from A to B pretty fast. But letting the team get from A to B with gentle guidance organically will last longer after you're gone.
7. Just keep improving
No matter what you're doing, just keep improving. Bake the concept of "inspect and adapt" into your culture and the rest falls into place.