Unified Process
•	Iterative development
•	Design
•	Artifacts
Iterative development goals
•	Early risk analysis
•	Early progress
•	Early feedback
•	Managing complexity
Iterative development practices
•	Focus on core early
•	Overlapping activities within a single iteration
–	Ex: Even within a single iteration, coding is done during more than one phase
–	Allows more flexible revisions 
•	Visual modeling (UML)
•	Manage change
Each iteration
•	Incremental -- State of code at end of iteration
–	incomplete, but executable
–	[Implies must be tested]
–	should not be treated as throwaway
–	[Implies architecture needs to be developed early]
Timebox iterations
•	Iterations should be limited in time:
–	~4 weeks is typical
–	Increases focus
–	Forces prioritization
•	Can’t do everything
•	What is most important?
–	Gives developers a sense of accomplishment
–	Gives clients tangible sense of progress

Phases
•	Inception -- Deal with feasibility issues
•	Elaboration -- Implement core
•	Construction -- Remaining implementation
•	Transition -- Deploy
Inception
•	Approximate vision – what’s the BIG IDEA
•	Business case
•	Scope
•	Vague estimates
Oil-drilling analogy
•	Start by evaluating geological evidence, cost vs. potential profit
•	If ok => exploratory drilling
•	Can now make vague estimates
Elaboration
•	Deal with high-risk issues
–	Consider scheduling 
•	Implement core architecture
–	Will it work?
–	Need to write basic tests
•	More prepared to fill out vision, requirement details
Construction
•	Do easier work to "fill in the holes"
•	Process is similar to elaboration
–	Parallel work more possible
–	Can handle larger team
–	Compare with waterfall approach -- integration step
Transition
•	Beta testing
–	Testing that is done “outside” development
–	“outside” – different testers and/or separate computing system (designed to match users’ environment)
•	Training
•	Put into use
–	Need to get feedback