agile software development alistair cockburn big design up front capability maturity model integration chrysler comprehensive compensation system cleanroom software engineering communication computer programming continuous integration courage customer representative data access layer debugger design extreme programming practices extreme project management feedback functional specification gemstone database management system ibm rational unified process iterative and incremental development jim highsmith kent beck list of software development philosophies martin fowler mission critical object-oriented programming pair programming performance analysis performance tuning procedural programming product life cycle management project project manager prototype rapid application development requirement requirements analysis respect rework ron jeffries scope creep simplicity six sigma smalltalk socialism software development rhythms software architecture software configuration management software deployment software design software development process software documentation software engineering software maintenance software project management software testing spiral model test-driven development thoughtworks top-down and bottom-up design toyota production system user experience design user story ward cunningham waterfall model wiki wikiwikiweb