Another article in DDJ (2004/10) talks about the New Standard Model of programming as Java, Eclipse, Ant, JUnit, Subversion, reflection, and XML. The old model according to the author was C, Emacs, Make, UNIX command-line, CVS, and character stream. The book Java Open Source Programming (ISBN 0471463620) was the context.
May 2005
May 14, 2005
May 12, 2005
RUP
I skimmed through Software Project Management – A Unified Framework by Walker Royce. It seems to be the book establishing the spiral method for software development. Royce is VP/GM at Rational with lots of credentials.
We also have Software Development for Small Teams by another gang of 4 (Pollice, Augustine, Lowe, and Madhur). It’s a case study of using RUP on a project with a small team. It has a concise appendix about RUP.
RUP is divided into 4 phases: inception, elaboration, construction, and transition.
– Inception is about vision, produces prototype. All stakeholders buy in the project, and understand scope/requirements/risk, high-level schedule, and budget (Lifecycle Objectives milestone)
– Elaboration is about architecture, produces executable stable architecture. Schedule and budget are stablized. Supporting environment and tools are established. (Lifecycle Architecture milestone)
– Construction is about functionality, produces alpha release. (Initial Operational Capability/Capacity milestone)
– Transition is about delivering full release to end user. (Product Release Milestone)
Each phase has one or more iterations of business modeling, requirements, analysis & design, implementation, test, and deployment. Configuration & change management, and project management go throughout all iterations and all phases.
Agile
Agile is an umbrella term for collaborative and evolutionary development. Some methods:
Crystal: people-centric, light/small per-project process
SCRUM http://www.mountaingoatsoftware.com/scrum/ deals with rapidly changing requriements. Product backlog -> Sprint (month-long iteration) backlog -> Backlog tasks -> Sprint with daily meeting.
XP: small and frequent releases, simple design, constant refactoring and integraiton, pair programming, collective ownership, on-site customer.
XBreed: XP, Scrum and Alexanderian ideas (what is it?) to develop “reusable software in record time”