agile archeology

47
Agile Archeology

Upload: cerise

Post on 06-Jan-2016

36 views

Category:

Documents


0 download

DESCRIPTION

Agile Archeology. Recall: We discussed Agile…. Now the Unified Process and UML and …. The Complementary Approaches: – Rational Unified Process and UML. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Agile Archeology

Agile Archeology

Page 2: Agile Archeology

Recall: We discussed Agile…

• Now the Unified Process and UML and …

Page 3: Agile Archeology

The Complementary Approaches: – Rational Unified Process and UML

• Object Oriented Analysis and Design (OA&D) methods combined with high commercial interests of expensive Case tools brought about the integration of three prominent tools. – Object Modeling Technique (diagrams and

relationships)– The Booch Method, (clouds and connections) and – Objectory (use cases)

• Proponents were brought together (hired) by Rational Software Corporation and created the ‘Rational Unified Process’ (RUP).

Page 4: Agile Archeology

Numerous books have been written…

• Many books arose containing tons of experiences from experienced consultants, linguists, and methodologists such as – Grady Booch, – Ivar Jacobson and – James Rumbaugh (the three amigos).

• They later developed the first version of UML, the second complementary work.

Page 5: Agile Archeology

The RUP and UML Notation• Dominated in the last 1990s and early 2000s.

– We used them here in Rational Rose.– Many associated apps: Clear Case, Clear Quest, ….

• Defectors from this approach formed the Agile Alliance.– Disliked the heave commercialized thrust and what they considered

heavyweight CASE tools. – Agilists cited RUP as bloated processware,

• The RUP is a plan-driven approach with many specialized roles (see book), many discrete activities, artifacts, etc. as found in the RUP Work Breakdown Structure (WBS).

• These Agilists felts the UP was very overly prescriptive.

• See those chapters in your UP book.

Page 6: Agile Archeology

2.2.1. The Unified Process• Given the rather elaborate Work Breakdown Schedule in the

RUP, there arose trends to eliminate some activities / roles / artifacts deemed technically or economically infeasible.

• The risk-nature of the Spiral model together w/growing concerns about software development expenses (especially from failed or challenged projects) led to leveraging the stakeholder community to exercise investment governance.

• To address such concerns, distinct phase assessments and associated gates are leveraged and found in the UP architecture.– Phases (all named) represented go no-go options to proceed, among

other things.

• This ‘formalized’ phases (fixed) and gates is in stark contrast to the Agile approaches.

Page 7: Agile Archeology

30 7

UP Lifecycle Graph – Showing UP Lifecycle Graph – Showing IterationsIterations

In an In an iteration, , you may walk you may walk through all through all disciplinesdisciplines

CONTENT

STRUCTURE

T I M E

STUDY THIS!!!

Page 8: Agile Archeology

RUP Architecture

• Can see the phases, iterations, and more.

• Hump-back Whale Chart.

• Can see the disciplines (core and supporting)

• Can see the level of effort

• Can see the phases and suggested iterations

• Some accuse the UP of being waterfall.

• Not true. UP has fixed explicit iterations. Most Agile processes have iterations too.

Page 9: Agile Archeology

UP Process and Agile Comparisons.

• RUP iterations were intended to produce tested, working software to be deployed to business community for feedback. Same as Agile

• All core and supporting disciplines cooperate with each other in producing working products.

• The expenditure of effort is captured via the additive humps in work intensity in swimlanes (vertical slices)

• In some Agile approaches, there are no swimlanes of activities; rather there is a developer-centric mentality that deals with the decomposition of work.

Page 10: Agile Archeology

Problems with the RUP in Practice• Commercially-driven, attempts to add more features made

the RUP a framework of practices, roles, and work products (see book)– Desires to use certain CASE tools or methodologies!– Again, ClearCase, ClearQuest, (for requirements, testing, etc.) and

several others…

• The thinking was that these roles and practices were to be instantiated to match the product to be developed.

• As it turned out, more and more implementations used ‘more and more’ roles, practices, and artifacts and thus became a bloated process just like many of the older methodologies starting in the 1980s.

Page 11: Agile Archeology

RUP Improvements

• Attempts to – emphasize core values and to – Get to a set of minimal core disciplines to leverage the

UP architecture

• have helped

• But the RUP, as implemented in most cases, is viewed as a documentation-centric methodology.– Generally synonymous with plan driven, heavy-weight

methodology.

• Simply look at the RUP Workloads in your book.

Page 12: Agile Archeology

Derivatives of UP – More Improvements

• OpenUP and Essential UP are improvements.

• Essential UP promotes a practice-orientation rather than a process-centric Work Breakdown Schedule.– That is the specific tasks of what you do rather

than the process of how you go about doing it.

• The best contribution is probably found in

bringing the UP into the broader enterprise into what is alled the Enterprise UP (EUP)

Page 13: Agile Archeology

2.2.2 Agile Methods (Scrum and XP)

• The two main agile approaches resulted from developer-centric frustrations with a perception of ‘ivory tower’ methodologists.– Scrum and XP– Pragmatic approaches eschewing many features of other

methodologies.

• These arose from several companies and project management experiences with “big requirements up front” - that typically were addressed with the Waterfall approach.

• More development and more extensions evolved with

specific values.

Page 14: Agile Archeology

XP – Agile Methodologies• XP is usually considered the first agile approach and

contributed some to Scrum.

• Based on short intervals, XP is characterized by– light-weight requirements,

– co-location with business partners, and

– a focus on core value-added activities by the developer and

– Theory Y Management. (Know what this is. Theory X too)

• All agile practices are performed as a ‘system of practices’ each working together.

• The following slide captures many features of XP

Page 15: Agile Archeology
Page 16: Agile Archeology

Scrum

• Scrum focused on simplified approaches to project management topics of planning, estimation, progress monitoring, and reporting,

• A 30-day interval is called a Sprint with feedback loop based on the scope of the sprint.

• Modern thinking in the Agile community is to view Scrum as the project management framework with XP practices used for the other disciplines.

• A ‘one-pager’ on Scrum follows.

Page 17: Agile Archeology
Page 18: Agile Archeology

Scrum – (You have seen these…)

• Scrum has a several queues such as a Product Backlog, Sprint backlog (for work management), Burn chart, and more.

• The Product Backlog is the customer-managed queue of

product requests owned and prioritized by the product owner.

• When a sprint is started, just-in-time planning occurs with a similar queue-based approach

• There is a daily Scrum meeting (daily standup) except that it is the team discussing and not a project manager.

• The closest thing to a project manager in Scrum is the Scrum Master, who is more of a facilitator and runs interference for the core team when blocks or issues arise.

Page 19: Agile Archeology

2.2.3 Lean Software Development – FDD

• Feature Driven Development arose before agile

• FDD arose out of a Singapore project for a large commercial lending organization.– Project was using Waterfall and was in deep trouble.

• Major changes were effected such as incremental development and solid engineering techniques (like domain modeling) to resurrect the effort.

• Project was turned around. Its success was attributed to what is called FDD – or Feature Driven Development.

Page 20: Agile Archeology

Feature Driven Development

• FDD is a model-driven, short-iteration process with five basic activities.

• For reporting and tracking the project, milestones marking the progress made on each feature are defined. (shown ahead)

• During the first two sequential activities, an overall model shape is established. The final three activities are iterated for each feature (hence the term, Feature Driven Development).

Page 21: Agile Archeology

Five Basic Activities in Process Model

Page 22: Agile Archeology

1. Develop Overall Model

• Project starts with a high-level walkthrough of the system scope and its context.

• Next, detailed domain walkthroughs are held for each modeling area.

• For each domain (note the ‘loop’), walkthrough models are then composed by small groups, and are presented for peer review and discussion.

• One of the proposed models, or a merge of them, is selected which becomes model for that domain area.

• Domain area models are then merged into an overall model, and the overall model shape is adjusted along the way.

Page 23: Agile Archeology

2. Build Feature List

• Knowledge gathered during initial modeling is used to identify a list of features. – This is done by functionally decomposing the domain into subject

areas.

• Subject areas each contain business activities and categorized features.

• Features in this respect are small pieces of client-valued functions expressed in the form "<action> <result> <object>", for example: 'Calculate the total of a sale' or 'Validate the password of a user'.

• Features are short and should not require >= two weeks to complete; otherwise, break them into smaller pieces.

Page 24: Agile Archeology

3. Plan by Feature

• After the feature list had been completed, the next step is to produce the Development Plan.

• Class ownership is done by ordering and assigning features (or feature sets) as classes to chief programmers.

Page 25: Agile Archeology

4. Design by Feature

• Design package is produced for each feature. • Chief programmer selects small group of features to

be developed within two weeks.

• Together with the corresponding class owners, chief programmer works out detailed sequence diagrams (behavioral modeling) for each feature and refines the overall model.

• Next, the class and method prologues are written and finally a design inspection is held.

Page 26: Agile Archeology

5. Build by Feature

• After a successful design inspection a per feature activity designed to produce a completed client-valued function (feature) is produced.

• The class owners develop the actual code for their classes.

• After a unit test and a successful code inspection, the completed feature is promoted to the main build.

Page 27: Agile Archeology

Milestones

• Features are small and completing a feature is a relatively small task.

• For tracking, development needs to mark the progress made on each feature.

• FDD therefore defines six milestones per feature that are to be completed sequentially:

Page 28: Agile Archeology

Milestones per Feature

• The first three milestones completed during Design By Feature activity

• Last three completed during Build By Feature activity

• To help with tracking, a percentage complete is assigned to each milestone. Note table:

• Feature still being coded is 44% complete (Domain Walkthrough 1%, – Design 40% and – Design Inspection 3% = 44%).

Page 29: Agile Archeology

FDD – Overview and Final Thoughts

• FDD is interesting and has no notion of an iteration.

• All is built on user stories and features and features constitute the central requirements and drive everything.

• Increments are key and are accumulation of features

• A rhythm is established and the completion and delivering features is ongoing.

• Minimal features capture the central requirements and the minimal nature binds them to Agile philosophy especially the notion of a user story.

Page 30: Agile Archeology

Features in FDD

• Features are very simple in structure and constitute the central requirements.

• Format:

• <action> [a/the] <result> [of] to |for |from | … <object> [with | for | of…] <parameters>.

• Example:

• Verify the 2a-7 compliance for a given trade order (for a 7/7 municipal bond).

Page 31: Agile Archeology
Page 32: Agile Archeology
Page 33: Agile Archeology

FDD Lean

• “Lean” comes from an MIT program that dealt with the Japanese and Toyota manufacturing.

• How Toyota has dominated manufacturing has resulted in books on Lean Thinking.

• Lean Thinking represents the abstraction of a set of core principles applied to industries beyond manufacturing.

• The first usage of the term Lean Software Development was articulated in a book that represents an application of lean thinking applied to software development.

• Here is a description of the twenty-two management tools:

Page 34: Agile Archeology

Lean Management Tools

Eliminate Waste

Tool 1: Seeing Waste

Tool 2: Value Stream Mapping

Amplify Learning

Tool 3 – Feedback

Tool 4 – Iterations

Tool 5 – Synchronization

Tool 6 – Set-based Development

Page 35: Agile Archeology

Lean Management Tools

• Decide as Late as Possible

• Tool 7 – Options Thinking

• Tool 8 – The Last Responsible Moment

• Tool 9 – Making Decisions

• Deliver as Fast as Possible

• Tool 10 – Pull Systems

• Tool 11 – Queuing Theory

• Tool 12 – Cost of Delay

Page 36: Agile Archeology

Lean Management Tools

• Empower the Team• Tool 13 – Self-Determination• Tool 14 – Motivation• Tool 15 – Leadership• Tool 16 – Expertise

• Build Integrity in• Tool 17 – Perceived Integrity• Tool 18 – Conceptual Integrity• Tool 19 – Refactoring• Tool 20 - Testing

Page 37: Agile Archeology

Lean Management Tools

• See the Whole

• Tool 21 – Measurements

• Tool 22 - Contracts

Page 38: Agile Archeology

Kanban Development

• Kanban was developed based on Lean.

• David Anderson, a methodologist, modified Lean to include a renewed study of FDD in conjunction with the Work-In-Progress (WIP) limiting mechanisms that were leveraged within a card mechanism used in Toyota.

• They still use queueing theory which is at the basis of their productivity.

• We are getting a presentation by Bryan on this.

Page 39: Agile Archeology

2.2.4 The Hybrids (Agile-UP & Lean-Agile)

• Some hybrid attempts try to ‘out iterate’ or ‘out Agile’ each other.

• But good things happened in SDLC 2.0

• Experiences from many practitioners have resulted in best practices for practical needs.

• Problems with some of the processes have been in scale, management approaches, business culture, and geographical distribution.

Page 40: Agile Archeology

Agile UP (Hybrid and close to our approach)

• Advocate: Scott Ambler.– Reduce the roles, work products, and disciplines

while still retaining UP’s core practices.

• Agile-UP leverages practices that make sense within the context of a project. Examples– Test driven Development– Continuous Integration– And, a lightweight, visual approach / modeling

Page 41: Agile Archeology

Agile UP (Hybrid and our approach)

• Another Agile-UP hybrid by Craig Larman

• Advocates:– Architecture centric governance structure of UP

– Use Case practices for driving iterative and incremental development.

– But Craig Larman backed off some of the Objectory-based (sequence diagrams, many levels of models) as analysis morphs into design) in favor of a Catalysis-based approach to make analysis and design more seamless.

– They insert Scrum-based management and such time-boxed iterations vice deliverable-based iterations.

Page 42: Agile Archeology

Agile UP (Another Hybrid – Lean Agile)

• How about Scrum-ban which includes a leveraging most of the Scrum practices within an iteration that has a batch size of one.

• Called Scrum-ban because it uses Lean Practices of Kanban to limit works in progress to minimize cycle time.

Page 43: Agile Archeology

Kennaley’s Views on SDLC 1.0 and 2.0

• Mark feels SDLC 1.0 (waterfall) should be retired, as it has run next to the 2.0 approaches (iterative and incremental development) for many years.

• He claims 2.0 is long overdue for re-synching.

• He also claims that there is still a lot of high-order waste due to the us-versus-them mud-slinging and ‘tunnel-vision that slows down the advancement of the profession.’

Page 44: Agile Archeology

Kennaley’s Views

• Customers don’t care about the discussions – only want good software engineering.

• Let’s get rid of the iterative wars and retire 1.0 – the ‘accidental Waterfall misinterpretations.”

• He is after a third generation label on SDLC approaches.

• Claims something ‘fundamental’ requires a major release ‘branch.’

Page 45: Agile Archeology

Kennaley’s SDLC 3.0

• He wants to integrate all past experiences within a fundamental environment of software engineering management science.

• There is no one-size-fits-all.

• Rather, modern development is best served with a variety of approaches / patterns.

• So, rather than pick ‘a’ method, seeking more atomic practices from multiple methods seems to be a much more reasonable approach.

Page 46: Agile Archeology

Kennaley’s SDLC 3.0

• SDLC 3.0 brings all past experience together into a coherent baseline for future evolution to occur.

• It encapsulates a focus on integration within a holistic IT value-stream;

• Focuses on waste-reduction and Theory-Y management.

• Rather than have a single, local genre of software engineering expertise, SDLC 3.0 seeks to integrate, harmonize and heal competitive wounds of the past.

Page 47: Agile Archeology

Kennaley’s SDLC 3.0

• He has shown that software engineering has evolved in various flavors over the past 50 years and will continue to evolve.

• But he is after a single baseline that can be modified into a single body of knowledge.

• His label, SDLC 3.0, is like a configuration.

• We identify versions of software, and he suggests a SDLC 3.1,3.2, etc. – Evolving.