Lately I was taking Agile Software Development on Coursera, and have been applying the framework at work. Below is the learning notes from the course, and also my thinkings based on my personal experiences.
- 4 values
* Individuals and interactions over processes and tools
* Working software over comprehensive documentation
* Customer collaboration over contract negotiation
* Responding to change over following a plan
- 12 Principles
- Characteristic of good user stories:
Independent, Negotiable, Valuable, Estimate, Small, Testable
- Generate user stories
- Sprint planning
- Sprint execution and daily standup
Answer 3 questions during stand-up
What did I do yesterday? What am I going to do today? Any blockers?
- Sprint review
* Review work done
* Get feedback
- Sprint retrospective
* What’s working and not working?
* Action items?
In my opinion, the Scrum framework is a bit micromanaging. It focuses on deliverables and does not give too much autonomy to developers, which might be helpful for junior engineers, but not so much for senior engineers. Thus at work, what I promote is to do your own sprint planning. A good engineer should be capable of understanding needs from business side, and knowing when to re-invest in long-term engineering at the same time. He/she should plan out his priorities on his/her own and have the discipline and motivation to execute consistently.