Agile Software Development Agreements: Navigating Complex ...

42
Agile Software Development Agreements: Navigating Complex Contracting Issues Evaluating Agile vs. Waterfall Development; Structuring Provisions on Pricing, Project Plan, IP Rights, Warranties Today’s faculty features: 1pm Eastern | 12pm Central | 11am Mountain | 10am Pacific The audio portion of the conference may be accessed via the telephone or by using your computer's speakers. Please refer to the instructions emailed to registrants for additional information. If you have any questions, please contact Customer Service at 1-800-926-7926 ext. 1. TUESDAY, SEPTEMBER 21, 2021 Presenting a live 90-minute webinar with interactive Q&A Paul H. Arne, Partner, Morris Manning & Martin, LLP, Atlanta Paul A. Chandler, Counsel, Mayer Brown LLP, Chicago Derek J. Schaffner, Special Counsel, Foley & Lardner LLP, Washington, D.C.

Transcript of Agile Software Development Agreements: Navigating Complex ...

Page 1: Agile Software Development Agreements: Navigating Complex ...

Agile Software Development Agreements: Navigating Complex Contracting IssuesEvaluating Agile vs. Waterfall Development; Structuring Provisions on Pricing, Project Plan, IP Rights, Warranties

Today’s faculty features:

1pm Eastern | 12pm Central | 11am Mountain | 10am Pacific

The audio portion of the conference may be accessed via the telephone or by using your computer's speakers. Please refer to the instructions emailed to registrants for additional information. If you have any questions, please contact Customer Service at 1-800-926-7926 ext. 1.

TUESDAY, SEPTEMBER 21, 2021

Presenting a live 90-minute webinar with interactive Q&A

Paul H. Arne, Partner, Morris Manning & Martin, LLP, Atlanta

Paul A. Chandler, Counsel, Mayer Brown LLP, Chicago

Derek J. Schaffner, Special Counsel, Foley & Lardner LLP, Washington, D.C.

Page 2: Agile Software Development Agreements: Navigating Complex ...

Tips for Optimal Quality

Sound QualityIf you are listening via your computer speakers, please note that the quality of your sound will vary depending on the speed and quality of your internet connection.

If the sound quality is not satisfactory, you may listen via the phone: dial 1-877-447-0294 and enter your Conference ID and PIN when prompted. Otherwise, please send us a chat or e-mail [email protected] so we can address the problem.

If you dialed in and have any difficulties during the call, press *0 for assistance.

Viewing QualityTo maximize your screen, press the ‘Full Screen’ symbol located on the bottom right of the slides. To exit full screen, press the Esc button.

FOR LIVE EVENT ONLY

Page 3: Agile Software Development Agreements: Navigating Complex ...

Continuing Education Credits

In order for us to process your continuing education credit, you must confirm your participation in this webinar by completing and submitting the Attendance Affirmation/Evaluation after the webinar.

A link to the Attendance Affirmation/Evaluation will be in the thank you email that you will receive immediately following the program.

For additional information about continuing education, call us at 1-800-926-7926 ext. 2.

FOR LIVE EVENT ONLY

Page 4: Agile Software Development Agreements: Navigating Complex ...

Program Materials

If you have not printed the conference materials for this program, please complete the following steps:

• Click on the link to the PDF of the slides for today’s program, which is located to the right of the slides, just above the Q&A box.

• The PDF will open a separate tab/window. Print the slides by clicking on the printer icon.

Recording our programs is not permitted. However, today's participants can order a recorded version of this event at a special attendee price. Please call Customer Service at 800-926-7926 ext.1 or visit Strafford’s website at www.straffordpub.com.

FOR LIVE EVENT ONLY

Page 5: Agile Software Development Agreements: Navigating Complex ...

Strafford Webinar:Contracting for Agile Software Development

Paul Arne Paul Chandler+1 [email protected]

+1 [email protected]

September 21, 2021

Derek Schaffner+1 [email protected]

Page 6: Agile Software Development Agreements: Navigating Complex ...

PresentersPaul Arne, Morris, Manning & Martin, L.L.P.

• Senior Partner & Chair of Technology Transactions Practice

• Founder & Chair of Open Source Practice Group

• Former chair: Privacy & Technology Section of State Bar of Georgia

Paul Chandler, Mayer Brown L.L.P., Chicago office• Counsel in the Technology Transactions practice

• Represents clients in connection with a broad range of technology, IP and sourcing transactions, including software development and licensing, and open source software, data analytics and cloud services.

Derek Schaffner, Foley & Lardner L.L.P

• Special Counsel in the Technology Transactions & Outsourcing and IP practices

• Represents clients in complex technology transactions and outsourcing engagements from the bid stage through contract execution, with a focus on cloud computing, data privacy, IT sourcing, application development and maintenance, software and systems implementation, business process transactions, and licensing.

6

Page 7: Agile Software Development Agreements: Navigating Complex ...

Agenda• Overview of Agile Software Development

– Brief overview of Agile Development– Waterfall explained, vetted– Agile Software Development process explained, vetted

• Top Challenges of contracting for Agile Software Development– Pricing– Termination Rights– Assurances the “thing” will be built– IP Rights– Warranties– Client obligations– Documentation– Key Features for Risk Reduction and Success

• Final Thoughts• Appendix: Sample Questions for Agile Project RFPs

7

Page 8: Agile Software Development Agreements: Navigating Complex ...

Overview: What is Agile Software Development?• A way to create software based on closer collaboration between developers and business

stakeholders.• Emphasizes frequent delivery of business value by small, self-organizing, cross-functional teams.• Does not rely on detailed specifications created at the outset.• Instead, the teams work from a concept of the “thing”

to be built and refine as the work progresses.• Agile is a umbrella term for a set of methods and

practices based on The Agile Manifesto.– But there are many frameworks to develop

software using an agile approach, such as Scrum, Lean, and Extreme Programming (XP).

• Does it produce better results?

8

Page 9: Agile Software Development Agreements: Navigating Complex ...

Overview: Key Terms

9

Term MeaningScrum The most widely-used Agile framework.

Product Owner The single person on a Scrum team who is responsible for project ROI, has the high-level vision of the product to be built, and has final call on requirements.

Scrum Master The facilitator on a Scrum development team who removes roadblocks, but has no management authority and does not perform project management functions.

Scrum Development Team

A self-organizing, self-managed cross-functional team responsible for delivering commitments from the Product Backlog.

User Stories Describe what the end product and its components should accomplish at the end of development. A product will usually have multiple user stories. (Contextual groupings of user stories are called “Epics”.)

Product Backlog A list of features or technical tasks which the team maintains and which, at a given moment, are known to be necessary and sufficient to complete a project or a release. The Product Backlog can be updated as features and functionality are added or removed.

Sprint (aka Iteration)

A time box of usually 2-4 weeks when the Scrum Dev Team develops items from the Product Backlog.

Page 10: Agile Software Development Agreements: Navigating Complex ...

Polling QuestionWhich statement best describes your organization’s experience with agile software development?

a) None, but we are considering it

b) Some, but no great impetus to push

c) Some, and looking to do more

d) The majority of our projects use agile

10

Page 11: Agile Software Development Agreements: Navigating Complex ...

The Waterfall Approach

11

Requirements/Planning

Design

Coding

Implementation

Testing

Page 12: Agile Software Development Agreements: Navigating Complex ...

Criticisms of the Waterfall Approach• Not appropriate if project requirements are uncertain or fluid.• Does not promote (and perhaps discourages) creativity during

the process.• Business owner has little interaction with development team

after initial specifications are created.• Problems may not be discovered for a long time (e.g., in testing).• Client does not receive value until the end of the process.• Difficulty of specifying all requirements upfront, combined with

a rigid change management process and frequent change order and price adjustments leads to disappointment.

12

Page 13: Agile Software Development Agreements: Navigating Complex ...

Waterfall Success?

13

0%

10%

20%

30%

40%

50%

60%

Successful Challenged Failed

26%

59%

15%

Page 14: Agile Software Development Agreements: Navigating Complex ...

Why So Bad?52% of the time:• Lack of user input

• Incomplete requirements and specifications

• Unrealistic expectations

• Unclear objectives

• Changing requirements

• New technology

14

Page 15: Agile Software Development Agreements: Navigating Complex ...

Overview of Agile Software Development

15

Requirements/Planning Design Coding ImplementationTesting

Waterfall

Requ

irem

ents

/Pl

anni

ng

Design

Coding

Implem

entationTesting

Iteration #1

Agile: 2-4 weeks

Requ

irem

ents

/Pl

anni

ng

Design

Coding

Implem

entationTesting

Iteration #2

Agile: 2-4 weeks

Requ

irem

ents

/Pl

anni

ng

Design

Coding

Implem

entationTesting

Iteration #3

Agile: 2-4 weeks

Page 16: Agile Software Development Agreements: Navigating Complex ...

Agile Principles• Embrace Change

• Requirements can change at any time

• Scope not finalized at front end

• Timing?

• Cost?

16

Page 17: Agile Software Development Agreements: Navigating Complex ...

Why Do Developers Like Agile?• The software development process is more fluid, requiring greater interaction

between business and technical teams as the project moves through the development life cycle.

• Agile enables software to be developed in continuous cycles based on short iterations, which developers find more efficient and creative (i.e., more quick wins, fewer long slogs).

• Focus is placed on producing working code (fun) and not on documentation and testing (dull).

• The need to test the entire system is minimized since testing (and acceptance) occurs at each iteration.

• More client participation throughout the process.

17

Page 18: Agile Software Development Agreements: Navigating Complex ...

Why Do Businesses Like Agile?

18

0%

10%

20%

30%

40%

50%

60%

Successful Challenged Failed

43% 45%

12%

26%

59%

15%

AgileWaterfall

Page 19: Agile Software Development Agreements: Navigating Complex ...

Agile and SaaS• Reduce risk of code change• Quicker response to user and market needs• Testing is easier (one infrastructure)• Makes training an ongoing process, in small increments• Error corrections are easier

19

Page 20: Agile Software Development Agreements: Navigating Complex ...

Development Agreement for Agile• Normal Software Development Agreement (risky)• Plus:

– Scope: uncertain– Timing: uncertain– Cost: uncertain

• Attitude — We prefer:“Customer collaboration over contract negotiation”

20

Page 21: Agile Software Development Agreements: Navigating Complex ...

Making the Shift to Agile • How do you deal with the client concern that the contractual clarity and upfront planning/

milestones under waterfall are absent under agile?– Not truly a leap of faith– Each party’s interests are more aligned; at a well-run scrum meeting, you cannot tell

which sides the members are from• Clients need to have some people trained in an agile methodology

– But don’t need to know how to program; agile brings developers and business teams closer together via iterations/sprints

• Does agile scale for large, mission-critical projects?– Yes (e.g., SITA)– Some enterprises are moving away from an annual IT project funding process to a

quarterly process thereby matching the speed at which software is developed and the agile iterative approach.

21

Page 22: Agile Software Development Agreements: Navigating Complex ...

Important Distinctions• Waterfall development• Waterfall development when the developer uses agile• Agile

22

Page 23: Agile Software Development Agreements: Navigating Complex ...

Contractual Issue #1: Pricing• Core Issue: How do you structure the pricing model to motivate the right

behavior and the desired result?• Waterfall projects: Because the deliverables, requirements and scope of work are

defined up-front, it is usually straightforward to agree on a fixed price, payable in portions tied to successful completion of defined milestones.

• Agile projects: Present greater contracting challenges from a pricing perspective.– Lighter on up-front detailed specifications; more reliance on collaboration and trust.– As a result, suppliers have difficulty estimating the required level of effort and

committing to a fixed price. – Customers are reluctant to agree to an uncertain price for a loosely defined product.

23

Page 24: Agile Software Development Agreements: Navigating Complex ...

Contractual Issue #1: PricingSummary of Basic Agile Pricing Models

24

Pricing Model Pros Cons

T&M • Supports dynamic work flow• Project start quickly

• No project fee certainty• Increased monitoring• Incentive to rack up hours

Fixed Fee for Entire Project • Fee certainty • Difficult to determine due to lack of up-front specs

• Difficult to manage scope changes

Fixed Fee Per Sprint (iteration)

• Fee certainty (but only for that Sprint)

• No project fee certainty• Continual scope negotiations

Page 25: Agile Software Development Agreements: Navigating Complex ...

Contractual Issue #1: Pricing Hybrid Pricing Approaches

Outcome-Based T&M Pricing: Establish risk/reward structure for achieving a desired outcome at or within target budget, completion due date or specified number of sprints, for example:

• T&M rate, with a bonus amount paid only if desired outcome is met (or deducted if outcome is not met)

• T&M rate is progressively increased or discounted based on extent supplier does/does not meet desired outcome

• Hold-back of defined percentage (e.g., 25%) of T&M fees until entire project or desire outcome is met

• Commitment to complete project by specific date or within defined budget or number of sprints (with free or discounted sprints if more required)

• Risk/reward structure can be used with fixed fees25

Page 26: Agile Software Development Agreements: Navigating Complex ...

Contractual Issue #1: Pricing Defining Outcomes for Agile

What are the desired outcomes? Vary by project. For example:

• Implement known, well-defined system integrations

• Successful connection to Google Maps or processing ecommerce orders

• Automatically process and ingest X TB of data from Y dealer systems in less than Z minutes

• Meet all non-functional requirements (e.g., testing/coding standards, open source and security policies, interfacing/compatibility requirements)

When are outcomes defined? Can be up-front, or as project progresses (e.g., define in sprint X the outcome (backlog items) to be built in sprint X+1)

26

Page 27: Agile Software Development Agreements: Navigating Complex ...

Contractual Issue #1: Pricing Other Issues

– Outcome-based pricing requires more sophisticated contracts to define desired outcomes, address changes in scope and their effect on pricing, schedule and incentives

– Checkpoint Phases may allow customers to see supplier’s team in action, evaluate cooperation, develop detailed user stories, and make early exit decisions

– Pricing is not one-size-fits-all -- non-Agile scope may be priced in a different way

– Identify how not meeting a desired outcome affects pricing

– In the end, trusted, frequent suppliers may offer greatest assurances, motivated to perform well, keep price in check

27

Page 28: Agile Software Development Agreements: Navigating Complex ...

Contractual Issue #2:Termination Rights• T&M is palatable under Agile Software Development due to more relaxed termination rights.

– Remember, the goal of each agile iteration is to produce workable code.• The typical Agile Software Development agreement allows the client to terminate at the end

of each iteration with no termination charges. – If the client does not see value, it can walk away.

• No termination charges due to lack of future requirements, so bench costs should be minimal.– But a client should weigh stranded/bench costs against the need for developer

personnel continuity.

28

Page 29: Agile Software Development Agreements: Navigating Complex ...

Contractual Issue #2: Termination Rights (cont’d)• To fully take advantage of this termination right, the client should contract for other

protections such as:– Limiting the developer to only use tools and code that the client can license from

third parties or the developer; and– Commitments from the developer to conduct knowledge transfer.– Risk: Agile Software Development involves minimal software documentation,

so restarting a terminated agile project may be more costly since new developers will need to get up to speed.

• Developers know switching costs are high and will try to lock in clients throughout the project.

29

Page 30: Agile Software Development Agreements: Navigating Complex ...

Contractual Issue #3: Delivery Commitments• Risk: Lack of clearly-defined specs and easier termination rights jeopardize final delivery of

the “thing.”• An agile project begins with a high-level concept of the product to be developed (the

“product vision”). • The product vision is used as a guide to create “user stories” and eventually the “product

backlog” - a list of items to be developed during the project.• The parties decide on prioritization of items from the product backlog and define what

the successful completion of each iteration means. • The lack of milestones and continual re-assessment allows the parties to adjust on the fly;

the final product may be very different than what was originally envisioned.

30

Page 31: Agile Software Development Agreements: Navigating Complex ...

Contractual Issue #3: Delivery Commitments (cont’d) • Developers will offer fixed fee for agile projects …

– But may add a risk premium to deal with uncertainty and ask for more money upfront to understand the unknowns;

– And will seek to include a light-weight change control mechanism to modify the price as it learns more.

• Use the agile process to reduce the “cone of uncertainty” to plan and contract for outcomes:– Each party needs to understand the broad business outcomes and divide into smaller

projects;– The agile team should then create high level specs for each project (“epics”) and then

define the technical architecture;– With this information, the developer can provide “indicative” pricing; the client can then

contract for “not to exceed” or fixed-fee pricing for these outcomes to be further refined as code is developed.

31

Page 32: Agile Software Development Agreements: Navigating Complex ...

Contractual Issue #4: IP Rights• More complicated due to client/developer collaboration.

– Scrum masters should create a journal with notes on all code and ownership rights

– Need to track daily and close out at the end of each iteration/sprint

• At a minimum, the client should have an unrestricted license to the developed product (including pre-existing materials brought by developer).

• Also, potentially seek restrictions on the developer’s use of proprietary ideas contributed by the client.

32

Page 33: Agile Software Development Agreements: Navigating Complex ...

Contractual Issue #5: Warranties• Lack of project specs, but the developer could

warrant that the working code produced during each iteration meets the specs for that iteration.

• As more working code is built in later iterations, include warranties that (i) the integrated pieces will work together and (ii) the entire product will perform in accordance with the summation of the specifications from each iteration.

33

Page 34: Agile Software Development Agreements: Navigating Complex ...

Agile Features for Risk Reduction and Success: Key Features • Participation

– “Business people and developers must work together daily throughout the project.”

• Change Control– “Welcome changing requirements, even late in development.”

• Delivery of Working/Useable Code– “Our highest priority is to satisfy the customer through early

and continuous delivery of valuable software.”• Scope?• Time?• Cost?

34

Page 35: Agile Software Development Agreements: Navigating Complex ...

Agile Features for Risk Reduction and Success: Key Features• Personnel

– Initial– Replacement– New

• Governance• Reporting

35

Page 36: Agile Software Development Agreements: Navigating Complex ...

Contractual Issues #7 & 8:Other Concerns• Client Obligations:

– Increased collaboration with the client throughout an agile project increases the probability that the developer can blame the client for a failed project.

– E.g., weak/inexperienced scrum leader or the client tries to manage the development like a waterfall project.

• Sufficiency of Documentation:– Agile prioritizes working code over all else, which means deliverables like

documentation may be less than what the client is accustomed to under a waterfall approach.

– Therefore, include a contractual provision that commits to a certain level of documentation detail and quality.

36

Page 37: Agile Software Development Agreements: Navigating Complex ...

Conclusion• Agile Software Development is here to

stay.• Contracting for software development

projects using agile is not as simple as a waterfall approach.

• However, contract levers exist to motivate the right behavior under agile projects.

37

Page 38: Agile Software Development Agreements: Navigating Complex ...

Appendix: Sample Questions for Agile Project RFPs– How do you propose to estimate user story complexity (e.g., story points)?

– In projects involving multiple Scrum teams, how do you align and synchronize backlogs and designs across Scrum teams?

– If a Scrum team gets behind in its work, how do you ensure it catches up?

– What is the mechanism for forecasting the need for resources that are outside of the Scrum team (and how are those demands communicated)?

– How do you bring in demands from organizational change management and other teams outside of the Scrum team (e.g., waterfall teams, data teams, testing teams), testing criteria, requirements from the client’s business controls and security specialists?

38

Page 39: Agile Software Development Agreements: Navigating Complex ...

Appendix: Sample Questions for Agile Project RFPs (cont’d)

– Who makes the decisions about what tasks each team will do in a particular Scrum? How are those decisions communicated?

– How does your organization confirm you are following all of the required processes that supplier outlined previously?

– What kind of internal reporting do you use for managing Scrum teams?

– How do you measure your performance metrics for the project?

– What do you perceive as a high-quality definition of “done” for each iteration or sprint?

– What testing standards and software development standards do you employ?

– What testing artifacts are provided with each sprint (e.g., testing scripts and good/bad cases, testing results)? 39

Page 40: Agile Software Development Agreements: Navigating Complex ...

Questions

40

Page 41: Agile Software Development Agreements: Navigating Complex ...

Resources• Agile manifesto available at http://www.agilemanifesto.org• CIO.com “How to contract for outsourcing agile development” available at

http://www.cio.com/article/3090569/outsourcing/how-to-contract-for-outsourcing-agile-development.html

• Law360: “Agile Software Development Brings New Contracting Issues” available at http://www.law360.com/articles/809900/agile-software-development-brings-new-contracting-issues

• Agile Contracts: Creating and Managing Successful Projects with Scrum, Opelt et al (ISBN: 978-1118630945)

• “Software Development in a Dynamic Environment”, in Thriving in an Age of Digital Transformation, available at https://www.mayerbrown.com/Technology-Transactions-Thriving-in-an-Age-of-Digital-Transformation-05-17-2018/

41

Page 42: Agile Software Development Agreements: Navigating Complex ...

Mayer Brown is a global services provider comprising associated legal practices that are separate entities, including Mayer Brown LLP (Illinois, USA), Mayer Brown International LLP (England), Mayer Brown (a Hong Kong partnership) and Tauil & Chequer Advogados (a Brazilian law partnership) (collectively the “Mayer BrownPractices”) and non-legal service providers, which provide consultancy services (the “Mayer Brown Consultancies”). The Mayer Brown Practices and Mayer Brown Consultancies are established in various jurisdictions and may be a legal person or a partnership. Details of the individual Mayer Brown Practices and MayerBrown Consultancies can be found in the Legal Notices section of our website. “Mayer Brown” and the Mayer Brown logo are the trademarks of Mayer Brown. © Mayer Brown. All rights reserved.

mayerbrown.comAmericas | Asia | Europe | Middle East