Agile Project Management Principles
https://www.atlassian.com/agile
You cannot predict what happen in next 10 years, but if you are agile enough you can change accordingly
Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. Instead of betting everything on a "big bang" launch, an agile team delivers work in small, but consumable, increments. Requirements, plans, and results are evaluated continuously so teams have a natural mechanism for responding to change quickly.
Agile Development (Iterative)
- One cannot anticipate every detail of a complex problem.
- Start simple (with something that works), then improve it.
- Identify emerging patterns and continuously adapt the structure of your code. (Refactoring, for which you want Unit tests)
Agility gives the enterprise the ability to out-innovate its competition. And, as technology both raises the bar for competition and lowers barriers to innovation, those enterprises that fail to out-innovate will themselves be out-innovated into oblivion.
Why choose agile?
Teams choose agile so they can respond to changes in the marketplace or feedback from customers quickly without derailing a year's worth of plans. "Just enough" planning and shipping in small, frequent increments lets your team gather feedback on each change and integrate it into future plans at minimal cost.