They all ultimately nail down to some of these:
- Not able to meet deadline
- Increased stress towards the end of the project.
- Software with nice to have features but has almost nil business value.
- Historical failure in the project
Now since I am insider here, I know some of the ground reality. Here is the few comments that I heard on very first day, as reason for choosing scrum methodology for my current project.
- This project was in planning phase since last 18 month and we never had something concrete which can be shown to upper management.
- No one know about project requirements and after searching little bit, we found scrum as the only methodology which allows us to work without requirement.
- We don't have any process or discipline and scrum is the only possible ad hoc way to do this
So here is what I am thinking of doing
- Introduce TDD and BDD(yes they aren't doing it either)
- Scrum training for team and upper management (session as well as on the job demonstration)
- Pairing with each member for getting them up to the speed (Playing red-green-refactor game)
- Re-structuring project solution and refactoring overall architecture.
- Introducing SRP, DI, IoC to the team.
- Start using structuremap, NAnt, MSTest, Resharper, RhinoMock
finally, Jeffrey is the great guy. I owe all these learning to him, which I am going to implement here. Hey Jeff, its party time for you. Your teaching is paying off here :)