What single aspect of agile development should we implement first to improve our development process, and why?
I'm in a situation that's requiring me to "tweak" my process, rather than re-engineer it, and "agile" seems to be the mantra of the day. If we can make only one change that will improve something--quality, time to market, documentation, transparency, etc., what will have the most visible, positive impact?
If we choose correctly, we'll be able to make a second choice. :-)
Update: What is your current SDLC?
Environment: essentially "restartup." A small handful of developers; legacy products with 10^5-10^6 LOC and tens of thousands deployed worldwide; products are strongly interdependent; significant features added over the years, including many one-offs, w/o refactoring; tight schedules; superficial QA; no post-mortems or "process guru."
Typical process:
- Create design/spec. Review by all stakeholders.
- Code one or more features/fixes.
- Revise design/spec to account for surprises.
- Test features, record defects.
- Prioritize new and remaining tasks.
- Revise design/spec/schedule.
- Return to Step 2 as necessary.
- Release for beta, record feedback.
- Return to Step 2 as necessary.
- Official release.
Thanks for so many helpful suggestions and insights!