• No results found

TECHNOLOGY TRANSFER PRESENTS CRAIG AGILE SOFTWARE DEVELOPMENT. Hands-on Practices, Principles, Agile Modeling, and TDD MAY 6-10, 2013

N/A
N/A
Protected

Academic year: 2021

Share "TECHNOLOGY TRANSFER PRESENTS CRAIG AGILE SOFTWARE DEVELOPMENT. Hands-on Practices, Principles, Agile Modeling, and TDD MAY 6-10, 2013"

Copied!
13
0
0

Loading.... (view fulltext now)

Full text

(1)

TECHNOLOGY TRANSFER PRESENTS

CRAIG

LARMAN

MAY 6-10, 2013

Hands-on Practices, Principles, Agile Modeling, and TDD

AGILE SOFTWARE DEVELOPMENT

MAY 13, 2013

Management Overview

AGILE, LEAN & ITERATIVE DEVELOPMENT

MAY 14-16, 2013

Certified ScrumMaster Course PLUS

VISCONTI PALACE HOTEL - VIA FEDERICO CESI, 37

ROMA (ITALY)

[email protected]

www.technologytransfer.it

(2)

AGILE SOFTWARE DEVELOPMENT

This popular, high-impact, and hands-on course on Agile Software Development is aimed at developers looking for solid core development skills, and is based on industry leader Craig Larman’s extensive experience coach-ing and applycoach-ing Agile Modelcoach-ing and Development (both Objected-Oriented and non-OO) for decades.

What really matters is not a set of diagrams and documents, but a quality, running system that meets the needs and constraints of various stakeholders. Thus, how can we effectively apply modeling in an Agile value-adding practical approach, and how can it be integrated with programming and automated tests to create great soft-ware? And how to can we design software with technical agility to enable business agility? Finally, what are the overarching principles to the design of elegant, understandable, and extensible systems?

In this intensive hands-on seminar you will find the answer these questions. There is a little lecture time, but the majority of the time is spent in high-value-education small modeling teams at the whiteboards while the coach ro-tates and works with each team, coaching the Case Studies while applying Agile Modeling, principles and pat-terns. The Coach will also help you implement your systems, while you lean the powerful practice of Test-Driven Development (TDD) with refactoring. Plus, acceptance TDD to move towards “requirements as executable tests.” The course involves multiple iterations of several Case Studies, in which the Teams go through repeating cy-cles of Agile Modeling, “specification by examples” table-tests that support acceptance TDD, and then develop-ment with unit TDD. On each cycle, the coach gradually introduces more principles and techniques to build soft-ware with agility.

We apply a variety of education techniques established over 20 years of coaching and mentoring to maximize the learning, value, and fun, including buzz groups, multi-modal learning, and lots of hands-on practice.

You will leave this workshop with much deeper core skills in Agile Software Development, supporting business agility and creative, collaborative product creation.

OBJECTIVES

Upon completion of this course, students should be able to: • Think and design in in low coupled components or objects

• Design with core principles and patterns that enable software with agility • Do Agile Modeling

• Do acceptance Test-Driven development • Do unit Test-Driven development

• Apply basic refactorings and refactoring tools • Write clean code

• Transform Agile models into code and tests

• Take a problem through requirements analysis, design, automated tests, and well-crafted software in the con-text of an iterative and Agile process

The number of participants in the course is limited.

(3)

O

UTLINE

1. Process and Design Agility

Agile Development frameworks aim to increase flexi-bility or agility in the development organization, and thereby enable business agility. All this requires processes that encourage flexibility, and software de-signs and code that encourages agility.

2. Agile and Iterative Software Development

We briefly introduce the family of Agile development frameworks, such as Scrum. These frameworks re-quire Agile software development practices to enable the agility that they are trying create in the develop-ment and business units.

3. Agile Modeling

One key enabler of agility is Agile Modeling, a collabo-rative technique of modeling together in small groups at giant whiteboard areas. Agile Modeling is used throughout this course and you will leave with lots of hands-on experience in this important skill.

4. Requirements with Agility

We explore the techniques and models of Agile re-quirements, including use-case diagrams, user-sto-ries, impact mapping, and more.

5. Specification by Example

This simple and powerful technique for detailed re-quirements analysis is an important component of the Agile toolkit. In this section, we practice, in detail, how to do specification by example. This involves coming to a shared understanding of a small requirement based on a set of (typically) 10-30 very concrete ex-amples related to the requirement. In this way, the people use an inductive learning method to compre-hend a requirement.

6. Acceptance Test-Driven Development

ATDD is a powerful high-impact practice in which the automated acceptance tests for a requirement are im-plemented before the solution code. And typically,

these acceptance tests are distilled from the examples in a prior specification by example activity. We use a free open-source ATDD tool to implement these ac-ceptance tests first, which then drives us to thereafter implement a solution so that the tests are passing.

7. Lightweight Domain Modeling

Domain modeling involves creating an Object-Oriented domain analysis model to identify the noteworthy con-cepts, attributes, and associations in the domain of re-quirements under development. We apply Agile model-ing to do collaboratively create a domain model, which will be useful input to subsequent design modeling.

8. Sketches for Dynamic and Static Views

In Agile Modeling, the team may create views that em-phasize understanding or designing the dynamics of the system under development, such as collaboration diagrams of software object interactions. And they may create views that emphasize the static aspects of the system, such as design-class diagrams. In this section, we learn to create these views, and apply that knowl-edge the major case study under development.

9. Agile Architecture based on the Hexagonal Ar-chitecture Pattern

We learn about the large-scale Hexagonal Architec-ture pattern and its relationship to the Layers pattern, and designing with Ports and Adapters. We apply this to our project, while Agile Modeling.

10. A SOLID GRASP: Core Principles and Patterns of Great Software

What are the key principles of Object-Oriented soft-ware development, and how to apply them while Agile Modeling or hands-on programming? In this section we learn to apply the GRASP and SOLID principles of de-sign to our case study project. These include Informa-tion Expert, High Cohesion, Low Coupling, Polymor-phism, and many more.

(4)

11. Clean Code

A majority of this intensive course involves hands-on Agile programming, in which we learn to create clean code. We examine key elements of clean code (in-cluding names, good methods, and error handling) and the many code smells associated with dirty code.

12. Unit Test-Driven Development

Unit TDD (or just TDD) is a key aspect of clean code and Agile Software Development. In short, it implies writing a unit test for one logic path of one method, be-fore we implement the method, and vigorously refac-toring the method after it is written. All this leads to de-signs with lower coupling and easy dependency injec-tion. We learn the TDD cycle and develop all our code in the course using TDD.

13. Refactoring

This is the critical third step in the TDD cycle, in which take the time to identify dirty code and code smells, and clean the code. We apply refactoring to all the code we create throughout the course, and learn many key refactorings, include Extract Method and many more.

14. Introduction to High-Frequency Design Patterns

Design Patterns are a key enabler of flexible software, and therefore can enhance agility. We learn to apply some of the most common Design Patterns while de-veloping our case study system, including Simple Fac-tory and Adapter.

AUDIENCE

Developers, architects and other technical leaders

(5)

AGILE, LEAN & ITERATIVE DEVELOPMENT

This practical, information-packed seminar summarizes the key research, ideas, and practices of Agile and Iter-ative Development, lean product development, and Scrum, aimed at executive and product-development lead-ership. This is a high-impact guide for Managers and Students to Agile or Lean product-development methods: what they are, how they work, how to implement them – and why you should.

Using statistically significant research and case studies, noted methods expert Craig Larman presents a con-vincing case for Agile and Iterative Development. Mr. Larman offers a concise, information-packed summary of the key ideas that drive all Agile and Iterative processes with the details of popular, noteworthy Agile methods: Scrum, Lean Software Development, and others. Coverage includes:

• Compelling evidence that Agile and Iterative methods reduce project risk • Frequently asked questions

• Agile and Iterative values and practices

• From command-and-control management to servant-leadership • Dozens of useful iterative and Agile practice tips

• New management skills for Agile/Iterative Project Leaders

• The Lean Thinking movement and its application to software development • Key practices of Scrum, Lean Software Development, and more

• Whether you’re an IT Executive, Project Manager, Student of software engineering, or Developer, Craig Larman will help you understand the promise of Agile/Iterative Development, sell it throughout your organization – and transform the promise into reality

OBJECTIVES

• Introduce Agile Methods and Lean Principles

• Analyze outcomes of projects that have used Agile Methods • Convey the key principles in the new software development game • Dispel myths and rumors

AUDIENCE

This exploration of modern Software Management best practices is appropriate for anyone guiding, managing, or in a software development Team.

(6)

O

UTLINE

1. Agile Methods

Agile product development frameworks aim to in-crease flexibility or agility in the development organi-zation, and thereby enable business agility. They em-phasize increasing transparency, inspection, and adaption, and flexible workers.

2. Motivation, Evidence, Benefits

There is indeed evidence that many aspects of Agile frameworks (such as cross-functional teams and in-cremental, iterative and evolutionary development) are beneficial. In this section we examine some of that evidence.

3. Agile Values and Principles

Agile is based on 4 values and 12 principles. For ex-ample,Responding to Change over Following a Plan. We examine these values, with special attention to the “contract game” in traditional development.

4. Cross-functional Teams and Multilearning

Agile teams are cross-functional, composed of peo-ple with different primary skills so that the team is ca-pable of doing (or learning to do) all the tasks to com-plete product features, without handoff from or to oth-er teams. And the people apply multilearning, devel-oping skills in secondary and tertiary skills, to in-crease their and the team’s flexibility or agility.

5. Iterative, Incremental, and Evolutionary Life Cycles

Agile frameworks deliver a working product in short cycles (iterations or Sprints), and the product evolves based on feedback each iteration, applying adaptive planning.

6. Self-Managing Teams

The 11th Agile Principle is about self-managing or self-organizing teams, which implies the team de-cides how to achieve there goals, without micro-man-agement. We explore the implications of this.

7. The Role of Managers

Since self-managing teams and adaptive planning are key elements are Agile frameworks, this changes the nature of the manager roles. What are these changes and how can managers add value and help the teams?

8. Scrum, the most popular Agile framework

By far, Scrum is the most popular Agile framework, with good reason. In this section, we examine some key elements of Scrum, including roles, events, arti-facts, and values.

9. Scaling Agile and Lean Methods

How do you apply Scrum to a product group of 1000 people, perhaps in multiple sites? We provide a few pointers to this large subject.

10. Lean Thinking

Lean thinking, or the Toyota Way, is not the same as Agile methods, but it has been an influence on many Agile approaches. What are the key elements of Lean thinking? We explore some of these, including value flow, manager-teachers, managers practicing Go See and Help, continuous improvement, respect for peo-ple, and more.

11. Frequently Asked Questions

We conclude the introductory seminar exploring the top questions that people typically ask, including the attendees.

(7)

Certified ScrumMaster Course PLUS

The standard, basic CSM is two days; this CSM PLUS is athree-day in-depth seminar on the art of serving as an effective ScrumMaster or Agile Leader, on the Scrum framework, and the organizational changes involved in adopting Scrum. In addition to all standard CSM content, you will learn through exercises and discussion -more key concepts and skills in Scrum and Agile methods, including Large-Scale Scrum, Agile organizational design, enterprise-level adoption and transition, Scrum in the context of offshore and/or multisite development, specification by example and its relationship to Acceptance TDD, how to do Agile estimation, splitting large re-quirements into smaller customer-centric rere-quirements, Product Backlog prioritization, how to facilitate a Scrum Retrospective, how to coach a Sprint Review, and more.

Surveys show that Scrum is by far the most popular Agile method worldwide - and with good reason.

There are three roles in Scrum: Team(s), Product Owner, and ScrumMaster. This latter role is NOT a Project Manager in any traditional sense. The ScrumMaster is a process coach - someone who is a master of the Scrum method and helps the Teams and product owner apply it and maximize value with it.

Agile Management is as radically different from traditional Project Management as Agile processes are differ-ent from traditional methodologies. Rather than plan, instruct and direct, the Agile Coach facilitates, coaches and leads. This person is called a ScrumMaster in the Scrum Agile process to denote the difference and remind the person filling this role of the new responsibilities. Accepted participants learn how to be a ScrumMaster and how to make a development team, a product group, or an organization Agile. Exercises, case studies, and ex-amples used to bring home the realization of how to be a ScrumMaster instead of a Project Manager.

PREREQUISITES: PRE-READINGS

Participants must read (available online), before the course: • The Scrum Guide

• Scrum Primer

OBJECTIVES

Through education and practice, a ScrumMaster should be able to:

• Remove the barriers between development and the customer so the customer directly drives development • Teach the customer how to maximize ROI and meet their objectives through Scrum

• Improve the lives of the development team by facilitating creativity and empowerment • Improve the productivity of the development team in any way possible

• Improve the engineering practices and tools so each increment of functionality is potentially shippable

In addition to the above, PLUS objectives include ability to coach or advise more in-depth Agile and Scrum practices, including retrospectives, Agile engineering practices, and estimation sessions.

CERTIFICATION

There is an online exam to take, at the ScrumAlliance, to complete the certification process. The registration fee for the exam is included.

(8)

O

UTLINE

1. Agile Overview

Agile product development frameworks aim to in-crease flexibility or agility in the development organi-zation, and thereby enable business agility. They em-phasize increasing transparency, inspection, and adaption, and flexible workers. By far, Scrum is the most popular Agile framework, with good reason. We examine some of the big ideas.

2. Scrum Background

The roots of Scrum start in the 1986 Harvard Busi-ness Review paper,The New New Product Develop-ment Game. We examine the background behind this research, and the key ideas in the paper, which were the impetus for Scrum.

3. Scrum Overview

In this section, we summarize the key elements of Scrum, including roles, events, artifacts, and values. And especially, the need for transparency, inspection, and adaptation.

4. Scrum Roles and Responsibilities

Team, Product Owner, and ScrumMaster are the three key roles of Scrum. We explore the behaviors and responsibilities of each role, and how that may differ from your current organization.

5. Scrum Artifacts

The Product Backlog of items, and Sprint Backlog of tasks, and the Product Increment are the three key artifacts of Scrum. We examine their contents, and how to create, modify, and use the backlogs.

6. Sprint

The Scrum Sprint is the short iteration within which the Team creates a Potentially Shippable Product In-crement (PSPI). We explore the implications of work-ing in Sprints that deliver PSPI.

7. Sprint Planning Meeting

This meeting kicks off the Sprint, in which the Product Owner offers a list of Product Backlog Items to the Team, and the Team creates a Sprint Backlog and forecast. We look at the outcomes and techniques for this meeting.

8. Daily Scrum

This is a daily short meeting in which the self-manag-ing Team members update each other on their progress, to foster coordination and collaboration. We examine the rules and techniques.

9. Product Backlog Refinement

During the Sprint, the Team and Product Owner need to refine (or groom) the Product Backlog for future Sprints (much urgently, for the upcoming next Sprint). This should normally take between 5-10% of the overall Sprint duration. In this section we summarize the motivation, details, and various methods for esti-mation, requirements splitting, and detailed analysis.

10. Sprint Review Meeting

The goal of the Sprint is to product a PSPI, and in this meeting involving the Team, Product Owner, and oth-er stakeholdoth-ers, the group closely inspect the PSPI so that the Product Owner can decide to accept or re-ject the items and decide to actually release the prod-uct. In addition, the Product Owner seeks input for how to proceed in subsequent Sprints.

11. Sprint Retrospective Meeting

The Sprint ends with a workshop in which the Team, ScrumMaster (and perhaps Product Owner) reflect on their ways of working, relationships, and environ-ment, and generate an improvement experiment to try in the next Sprint.

(9)

12. Release Planning

Before the first Sprint, the group needs to create and prepare a Product Backlog so that the Team knows what to work on. In addition, there may be a larger re-lease goal that spans several Sprints. We examine the goals, activities, and techniques of release plan-ning before Sprint 1.

13. The Art of the ScrumMaster

The ScrumMaster is a teacher and coach of Scrum, who focuses on getting the Team, Product Owner, and organization to work well and to get Scrum to work well in the organization. We explore the myriad bodies of knowledge, issues, and techniques that ScrumMasters need to be aware of.

14. Tools for Fostering Self-Organizing Teams

Teams in Scrum are Self-Organizing or Self-Managing, without a team lead or project manager. In the transi-tion to Scrum, people at first may not be familiar how to effectively Self-Organize in a highly collaborative Team. We look at techniques and issues to help cre-ate a healthy and skillful Self-Managing team.

15. Introducing Scrum into the Organization

We examine examples and techniques that Scrum-Masters and Product Owners use to more effectively introduce Scrum and create positive change in the or-ganization.

PLUS Topics Include...

16. Communities of Practice

In a cross-functional team organization, the concern of a single function (such as architecture, user experi-ence, or testing) remains important. How to handle this cross-team concern? With communities of prac-tice. In this section we examine this critical organiza-tional element.

17. Agile Estimation

With relative point estimation, estimation poker, monte carlo simulation, and more.

18. Retrospective Techniques

With system dynamics analysis, root cause analysis, collaboration exercises, and more.

19. Large-Scale Scrum

How do you apply Scrum to a product group of 1000 people, perhaps in multiple sites? We provide a few pointers to this large subject for large, multisite, and offshore development, and introduce Large-Scale Scrum framework-1 and framework-2 for scaling to massive and multisite product development.

20. Visual Management

In Lean Thinking and Agile methods, using big visible charts on walls, paper cards on walls, and other phys-ical information radiators are important tools to foster collaboration and agility. We explore the motivation and modalities of Visual Management.

21. Lean Thinking

Lean Thinking, or the Toyota Way, is not the same as Scrum, but it has been an influence on many Agile ap-proaches, including Scrum. What are the key ele-ments of Lean Thinking? We explore some of these, including value flow, manager-teachers, managers practicing Go See and Help, continuous improvement, respect for people, and more.

22. Splitting large requirements

How do you take a large requirement and split it into much smaller customer-centric requirements? We will take real requirements from student examples, and show how to split them, using the many splitting perspectives, such as splitting by use cases, by sce-narios, by specializations, and more.

(10)

23. The 3 Cs of User Stories

User stories are a behavior of Agile and Collaborative requirements analysis, based on card, conversation, and confirmation. We look at the details of these, and how to do stories.

24. Agile Requirements Analysis and Acceptance Testing

We explore skillful and simple techniques such as specification by example, and Acceptance Test-Driven Development.

25. Design workshops

How can team members, and cross-team members, collaborate on a shared design and architecture? We examine the practice of facilitated design workshops and Agile Modeling.

26. Agile Architecture

How to grow a system with agility? We look at some of the behaviors and patterns of Agile architecture.

27. Many more exercises

Related to scenarios and case studies of Scrum in action, benefits, problems, estimation, and more.

AUDIENCE

Anyone interested in adopting Scrum should take CSM PLUS as a foundation – including potential Product Owners, and the Leadership Team. And cer-tainly, anyone wishing to serve as a ScrumMaster.

(11)

I

NFORMATION

PARTICIPATION FEE

SEMINAR1

AGILE SOFTWARE DEVELOPMENT

2600

SEMINAR2

AGILE, LEAN & ITERATIVE DEVELOPMENT

700

SEMINAR3

Certified ScrumMaster Course PLUS

1600

The fee includes all seminar documentation, luncheon and coffee breaks.

VENUE

Roma, Visconti Palace Hotel Via Federico Cesi, 37 Rome (Italy)

SEMINAR TIMETABLE

9.30 am - 1.00 pm 2.00 pm - 5.00 pm

HOW TO REGISTER

You must send the registration form with the receipt of the payment to:

TECHNOLOGY TRANSFER S.r.l. Piazza Cavour, 3 - 00193 Rome (Italy) Fax +39-06-6871102

within April 22, 2013

PAYMENT

Wire transfer to:

Technology Transfer S.r.l.

Banca: Cariparma - Agenzia 1 di Roma IBAN Code:

IT 03 W 06230 03202 000057031348 BIC/SWIFT: CRPPIT2P546

GENERAL CONDITIONS

GROUP DISCOUNT

If a company registers 5 participants to the same seminar, it will pay only for 4. Those who benefit of this discount are not entitled to other discounts for the same seminar.

EARLY REGISTRATION

The participants who will register 30 days before the seminar are entitled to a 5% discount.

CANCELLATION POLICY

A full refund is given for any cancellation received more than 15 days before the seminar starts. Cancellations less than 15 days prior the event are liable for 50% of the fee.

Cancellations less than one week prior to the event date will be liable for the full fee.

CANCELLATION LIABILITY

In the case of cancellation of an event for any reason, Technology Transfer’s liability is limited to the return of the registration fee only.

(12)

first name ... surname ... job title ... organisation ... address ... postcode ... city ... country ... telephone ... fax ... e-mail ...

CRAIG LARMAN

1 AGILE SOFTWARE DEVELOPMENT

May 6-10, 2013

Visconti Palace Hotel - Via Federico Cesi, 37 - Rome (Italy) Registration fee:€2600

2 AGILE, LEAN & ITERATIVE DEVELOPMENT

May 13, 2013

Visconti Palace Hotel - Via Federico Cesi, 37 - Rome (Italy) Registration fee:€700

3 Certified ScrumMaster Course PLUS

May 14-16, 2013

Visconti Palace Hotel - Via Federico Cesi, 37 - Rome (Italy) Registration fee:€1600

If registered participants are unable to attend, or in case of cancellation of the seminar, the general conditions mentioned before are applicable.

Send your registration form with the receipt of the payment to:

Technology Transfer S.r.l.

Piazza Cavour, 3 - 00193 Rome (Italy) Tel. +39-06-6832227 - Fax +39-06-6871102 [email protected]

www.technologytransfer.it Stamp and signature

(13)

Craig Larman, he serves as a management consultant, with a focus on organizational redesign and systems thinking, for flexible, high-value-throughput product organizations. His emphasis is scaling Agile principles and practices and Lean thinking to very large, multisite, and Agile offshore development (often, embedded sys-tems, telecommunications, or investment banking), and coaching executive teams to succeed with larger En-terprise-level Agile and Lean methods adoption; these topics are the subject of his latest two books: “Scaling Lean & Agile Development: Thinking & Organizational Tools” and ”Practices for Scaling Lean & Agile Development: Successful Large, Multisite & Offshore Product Development with Large-Scale Scrum”. Mr. Larman has served as the Lead Coach of Lean Software development adoption at Xerox, and serves or has served as a consultant for large-scale Scrum and Enterprise Agile adoption at Ericsson, Bank of America Merrill Lynch, Alcatel-Lucent, UBS, Nokia Networks and Siemens Networks (now, NSN), Thomson Reuters, Statoil, Cisco-Tandberg, and at Schlumberger, among many other clients. His work includes the best-seller globally on Agile methods:Agile and Iterative Development: A Manager’s Guide.Mr. Larman is the author of “Applying UML and Patterns–An Introduction to OOA/D and Iterative Development”, the world’s best-selling text on OOA/D, Iterative Development, Modeling and the UML, translated to many languages and used worldwide in industry and colleges as the standard for introducing software design, modeling, design patterns, architecture, and OOA/D.

He is one of the earliest Practicing ScrumMastersand one of the first worldwide authorized to coach and certify new ScrumMasters and Product Owners, as a Certified Scrum Trainer. He has helped lead Scrum adoption for organizations of over 25,000 developers.

References

Related documents