May 2005


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.

Advertisements

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”