<<

Comprehensive Professional Development for Professionals

Training the way Agile Development you want it: On Site at your location On-Demand Software Requirements online learning Blended Learning Design & Construction the best of both worlds Public Seminars & QA at our training center near Seattle Software Estimation Contents

On-Demand Learning 4 DESIGN & CONSTRUCTION Learning Scenarios 5 Web API Design and RESTful Web Services 18 Developer Boot Camp 18 Case Studies 7 Code Complete Essentials 19 AGILE DEVELOPMENT Design Boot Camp 19 Scaling Scrum 9 Model-Based Design 20 Scrum Boot Camp 9 Design Pattern Essentials 20 Scrum Product Owner Boot Camp 10 TESTING & QA Software Management: Using Lean Methods and Practices 10 Professional Tester Boot Camp 21 Agile Developer Boot Camp 11 for Software Developers 21 Scrum Essentials for Leaders 11 Developer Testing Boot Camp 22 Agile Estimation 12 Total Project Quality 22 Agile Planning and Estimation 12 METHODS & PROCESSES PROJECT MANAGEMENT 10X - Teams 23 Software Estimation In Depth 13 10X Individuals and Interactions 23 Software Project Management Boot Camp 13 INSTRUCTORS 24 Increasing Software Innovation 14 In Depth 14 On-Demand Software Economics Boot Camp 15 ALL ACCESS PASS The All Access Pass gives you a year of access to REQUIREMENTS every online offering in the Agile Requirements In Depth 16 Construx On-Demand catalog, including many new Agile Requirements Modeling 16 offerings that will be added over the next year. That’s a value of more than $2500! Model-Based Requirements 17 Requirements Boot Camp 17 One year All Access Pass for $599.

GET A FREE 30-MINUTE TRIAL AT cxlearn.com Contact us today, and let us customize a training program that will best Choose your learning mode(s) meet your specific training, scheduling and budgetary requirements. ➤ [email protected] l +1 (866) 296-6300 l www.construx.com

Onsite On-Demand Blended Public Training Learning Learning Seminars

Construx has helped hundreds of Building on 20 years’ experience Experience the most innovative Software professionals say that companies with the highest impact delivering classroom training, and impactful training in the Construx public seminars are classroom training in the software Construx now offers industry- software industry via Construx’s an exceptional use of their time industry. leading On-Demand Learning. Blended Learning. and deliver a great return on Choose Onsite training to: Choose online, On-Demand Choose a blended combination their training investment. • Provide a shared experience for an Learning to: of classroom training and Choose public seminars to: intact team • Provide maximum training On-Demand Learning to: • Focus on training—away from • Maximize learning and application convenience for your team • Deliver a backbone of software office interruptions into practice • Enable team members to learn at practice training to your entire • Learn from peers who are staff, cost-effectively • Facilitate rich interactions among their own pace, and at the times facing the same challenges you learners and locations of their choice • Provide high impact classroom are • Deliver consistent training to a training strategically, to the • Try a seminar individually, • Receive live feedback from people and teams who will Construx’s expert instructors geographically distributed team before bringing the seminar in benefit the most for your whole team • Reward and inspire your team • Reward your team with the best online training in the software • Realize the best possible • Accelerate your learning in a with the highest quality software combination of training impact training experience available industry, while maximizing use of focused environment your training dollars and training value, tailored by Construx to your specific training needs

3 Construx On-Demand Learning

ALL ACCESS PASS The All Access Pass gives you a year of access to every software 10X Software Engineering Scrum Boot Camp Code Complete Essentials development online offering in the Construx On-Demand catalog, including many new offerings that will be added over the next year. That’s a value of more than $2500! One year All Access Pass for $599. Agile Developer Boot Camp Requirements Boot Camp Software Economics Boot Camp

GET A FREE 30-MINUTE TRIAL AT cxlearn.com

API Design and RESTful Services Product Owner Boot Camp Agile Requirements

Total Project Quality Design Patterns Risk Management In Depth Steve McConnell’s Understanding Software Projects

4 Learning Scenarios

Learning #1 Learning Scenario #2

Cost Effectively Train a On-Boarding New Staff Members Geographically Distributed Team Scenario Scenario Your company provides training periodically, and you want new staff Your company has grown by acquiring small companies. Now you members to come up to speed between in-person training sessions. have a staff of 100 technical personnel spread across numerous sites Blended Learning Solution with 1-15 software professionals per site. You can’t justify sending an When you purchase in-person training courses from Construx, you’ll instructor to each location, and the travel costs of bringing all team also get full access to the On Demand version of the course for members together at one site for in-person training is prohibitive. additional employees. You can use the On Demand course to provide Blended Learning Solution training to team members who were unable to attend the in-person Construx delivers the same high quality On Demand training to your training. Employees who join the team after the in-person training staff at every location. This avoids travel costs and builds a shared occurred can use On Demand training to get up to speed with their understanding and shared vocabulary through a consistent training colleagues. Every team member receives the same high quality experience for team members across the company. learning content regardless of when they take the On Demand training. To reinforce the On Demand training, Construx delivers expert, in-person training at your central office location to a select group of leaders and other staff. These individuals receive in-depth training so that they can perform effectively as thought leaders and coaches.

Customized Training Solutions Contact us today, and let Construx customize a training solution for you that optimizes your staff’s professional development and delivers lasting value for your training investment. ➤ [email protected] l +1 (866) 296-6300 l www.construx.com

5 Learning Scenarios

Learning Scenario #3 Learning Scenario #4

Customized In-Person Training Reward Your Staff and Benefit Your to Address Your Specific Challenges Company with High Quality Training

Scenario Scenario Your company is committed to professional development, and you Your company wants to provide professional development for your want to realize maximum benefit for the time your staff spends in staff, but day-to-day project demands always seem to take precedence classroom training. over training. Blended Learning Solution On Demand Training Solution In-person training is scheduled with one of Construx’s subject You purchase All Access Passes to Construx On-Demand training for matter experts. Prior to the live training, your staff has access to your entire technical staff. This allows every team member to take any the On-Demand version of the course, which they consume before of Construx’s On-Demand training modules at any time. If three team the in-person class. This enables the staff to begin the in-person members have a few hours of downtime on a Friday afternoon, they training sharing a solid understanding of the course content. The can get together in a conference room and consume a few On-Demand in-person classroom time can now focus more intently on company- training modules related to their current project challenges. specific implementation issues yielding the most significant results. Technical staff views training as a reward—and an affirmation that the company has a stake in their professional development. Construx’s state-of-the-art On-Demand training helps your staff feel valued, and your company benefits from their enhanced skills and morale.

Customized Training Solutions Contact us today, and let Construx customize a training solution for you that optimizes your staff’s professional development and delivers lasting value for your training investment. ➤ [email protected] l +1 (866) 296-6300 l www.construx.com

6 Case Studies

Case Study #1 Case Study #2 Case Study #3

Scaling Agile Across Taking the Team to Customized Agile the Enterprise the Next Level: Success Training for a Small Team

Bolstered by its success with small-scale Scrum with Larger Projects A small company in a narrow vertical projects, a Fortune 500 A medium-sized scientific instruments company market needed to improve its skills in Agile company hoped that it could transform the consistently experienced success with project requirements, in performing the Scrum Master organization by simply replicating its small- teams of five to nine members. But projects with and Product Owner roles, and in the basics of project successes across the enterprise. teams of 15-100+ struggled or failed outright. Scrum. Their challenges included having a total staff size of nine people and a modest training If only it were that simple. Construx developed a customized training budget. After a reality check, the company enlisted program that focused on the unique challenges Construx to develop a customized Scrum Boot of succeeding with Scrum at scale. Construx delivered a customized blended program that included: Camp seminar that was piloted, refined, and Training throughout the company included delivered to the 2500-person staff at sites team- and management- level best practices • Three On-Demand courses that team members worldwide. Construx supported the rollout that have proven successful for larger projects. could consume in sections as needed: Scrum with executive briefings, onsite coaching, Our experienced Agile experts also provided Boot Camp, Agile Requirements, and Product and continuous fine-tuning. The result was customized coaching and mentoring, and Owner Boot Camp a consistent, efficient and fully integrated helped the staff round out their skill sets with • An onsite, in-person coaching workshop to fine adoption of Scrum throughout the enterprise. On-Demand training in planning, estimation, tune the on-the-ground practices and team requirements, and quality assurance. interactions • Follow-up support and coaching via phone and Skype The blending of On-Demand and personal onsite training was especially effective for helping the company identify and address specific issues, integrate lasting improvements into the team’s dynamics, and achieve maximum effectiveness with its Scrum and Agile practices.

7 Case Studies

Case Study #4 Case Study #5 Case Study #6

Expanding Software Taking a company from Agile Transformation Development Capabilities “Scrum, but…” to “Scrum in a Regulated Industry at a Traditional brilliant” A company working under FDA regulation wanted to adopt Scrum but was uncertain how Manufacturing Company A global professional services company under- to do so without risking non-compliance with went an objective assessment of its software The CEO of a traditional manufacturing company rigorous FDA requirements. launched an initiative to upgrade the company’s practices and found that its Scrum Construx provided customized Scrum training software capabilities in order to deliver key implementation was mostly “Scrum, but…” to the team that had been designated to pilot functionality in its hardware products. Construx In order to achieve its critical software Scrum on an FDA-compliant project. After a was selected as the training and consulting development objectives, the company highly successful pilot, Construx supported partner with the experience to work effectively prioritized improving staff skills in Scrum and an incremental Scrum rollout strategy by with both software and hardware staff. Requirements. providing training and coaching to additional Construx was enlisted to develop a customized, The company had identified software estimation teams throughout the organization. Internal company-wide program in Scrum and Agile and software project management as its most stakeholder satisfaction soared, and the requirements that included: significant areas of weakness. Construx helped company made a transformational migration the company refine its software estimation and • In-person workshops at multiple sites to Scrum while consistently meeting all FDA project management practices, and align them • On-Demand courses regulatory requirements. with the stage-gate development process the • Personal follow-up coaching by Skype and company used for both hardware and software. email Construx then delivered an in-person training The On-Demand courses were primarily program in software estimation and project intended for on-boarding new staff members management throughout the company. The who had missed the in-person workshops. They training was targeted primarily to software staff, also gave the whole staff a convenient way to and many hardware staff members attended the review content and refresh the skills developed training voluntarily. in the workshops.

8 Agile Development

Scaling Scrum Scrum Boot Camp

Scrum has been a successful way for individual teams to deliver value quickly. This seminar provides everything you need to know to ensure your transition As the needs of the business expand beyond what individual teams can accomplish, to Scrum is successful. In the years since the Agile Manifesto, Scrum has emerged as the most how can organizations scale Scrum while remaining agile? How do you scale Scrum to popular Agile process for managing software development projects. More companies are multi-team projects, multiple geographies, and work that spans multiple iterations? This switching to Scrum, but many are struggling. This three-day seminar combines key aspects two-day course presents tactics used to scale software projects, focusing on techniques from Certified Scrum Master- and Certified Scrum Product Owner-specific training plus that have shown themselves best suited for scaling Scrum. Using an extended case specific best practices based upon the instructor’s direct experience on Scrum transitions and study, you will scale Scrum from a single, focused team to a multi-team, multi-national, experience gained from Construx’s consulting engagements. [21 PDUs] distributed project. You will examine scaling tactics from a Scrum perspective including What is Scrum? Spinning Up Scrum Lean, Kanban, and Scrum of Scrums. You will learn what has worked and what has not • Agile origins, principles, and benefits • Selecting the Product Owner worked in scaling Scrum, gaining insights from Construx’s extensive experience with • A brief history of Scrum • Creating a product backlog clients around the world as well as from other attendees. • Scrum philosophy and theory • Setting up the Scrum team • What makes Scrum different? • Planning the release Scaling Fundamentals Technology and Scaling Why Scrum Works • Launching the first sprint • Product vision’s critical contribution to scaling • Traditional scaling tools • A simple process Life During Sprint Time • Infrastructure and tool sets for scaling • Web 2.0 support for scaling • A committed, self-managed team • A day in the life of a Scrum team • Project focus and multi-tasking - how to manage • Using instant messaging effectively • Transparency: nowhere to hide • A day in the life of a Scrum Master for scaling • Leveraging shared workspaces • Finishing what you start • A day in the life of a Product Owner • Patterns of scaled work distribution • Electronic meetings—making them efficient and • Continual improvement Tracking Progress: Scrum Metrics Agile Scaling Principles effective Scrum Roles • Whiteboards or software? • Building on software projects’ intellectual phases • techniques for scaled • The Scrum Master • How is your iteration going? • Defining clear decision lines environments • The Product Owner • Exposing and removing impediments • Setting scope of authority • Build challenges in scaled environments • The Team Member • When are you going to release? • Creating collaboration Architecture’s Role in Scaling • Stakeholders • Are you improving? • Delivering customer facing value consistently • Using common architecture successfully • Levels of commitment Something’s Rotten: Scrum Smells • Maintaining feedback loops • Conway’s law Scrum Processes and Meetings • Scrum (Task) Masters • Living with the hype-disillusionment learning curve • Architecting for features vs. components • Release planning • The Product Dictator Scrum as a Building Block for Scaling • Planning to allow the architecture to emerge • Sprint planning • The tyranny of the urgent • Three roles • Test-driven architecture • Daily standup • They’re just not that into it: when the team • Three artifacts • Handling work in Scrum that does not create user- • Sprint review fails to meet commitments • Four meetings visible value • Sprint retrospective • Self-unmanaged teams • Two levels of commitment • Addressing work that spans multiple iterations Scrum Artifacts • Just give me the fish! Lean Scaling Principles Team Coordination • Product backlog • When burndowns don’t burn down • Limiting waste • Planning for time together • Sprint backlog • The plague known as ‘Scrum-But’ • Early defect detection • Aligning plans and processes • Release burndown Learning to Fly • Acknowledging variation • Creating convergence points • Sprint burndown • Scrum is simple but not easy Kanban • Defining clear roles and responsibilities Scrum Best Practices • Best practices are still applicable • Setting up a pull system • Building and using common infrastructure • : Nothing concentrates the mind...... and more • Creating a work queue ...and more • Commitment: Either do or do not; there is no try • Setting work in process limits • Working agreements: This is how we do it See complete course description at • Defining classes of service See complete course description at • Acceptance criteria and the definition of “done” www.construx.com/learn • Calculating flow time www.construx.com/learn • There is no ‘I’ in team 9 Agile Development

Scrum Product Owner Kanban Software Boot Camp Management: Using Lean Methods and Practices The Product Owner role is arguably the most important role in Scrum–and the most challenging. The Product Owner is part project manager, part product manager, Today’s global high tech industry abounds with smart people yet many organizations and part customer advocate. This person must ensure the customer’s wants and needs continue to struggle to deliver projects on time, on budget, and with high quality. are understood while ensuring that the team delivers the greatest-value features as While people and technology remain part of the equation, much can be gained from quickly as possible–all while responding to ever-changing requirements. Ultimately, the a systematic view of processes. Kanban provides an objective, quantifiable approach Product Owner owns a Scrum project’s success or failure. Scrum Product Owner Boot to managing and measuring the flow of work across an organization. Harnessing Camp drills down into the detailed information needed to successfully plan releases, concepts from Lean/TPS, Goldratt’s Theory of Constraints, Deming’s Theory of Profound reflect stakeholder priorities, ensure the team builds the right product, and communicate Knowledge, and Drucker’s theories on management, you’ll discover practical methods to with marketing, sales, executives, and other project stakeholders. [21 PDUs] streamline your organization. [7 PDUs]

It All Starts With a Vision How Will We Build It? What Problem Are We Trying to Solve? • Defining ‘constraint’ • The Product Vision • Successful Scrum projects require planning • The goal: delivering value with predictability, effi- • The Five Focusing Steps - Theory of Constraints’ The Product Owner’s View of Scrum • The product backlog ciency, and quality improvement cycle • What Is Scrum? • Creating a product roadmap • The problem: as projects get larger, efficiency and What Is Lean-Kanban? • How Scrum works • Release planning quality decrease non-linearly, for reasons we don’t • The Origins of Lean-Kanban • Scrum roles, processes and artifacts • mapping understand • Lean Principles The Successful Product Owner • Incremental delivery via Sashimi implementation Changing Our Thinking • The Kanban Method • Technical…enough During the Game • How most organizations approach their work Why Kanban? • Product Owner, Project Manager, or Product • Product backlog grooming • False assumptions based on conventional wisdom • What problem are we trying to solve? Manager? • Sprint planning • Utilization versus productivity • How does Kanban help us identify our problems? • Attributes of successful Product Owners • Sprint reviews and retrospectives • The hidden impact of waiting • How does Kanban help us solve our problems? What Are We Trying To Build? • Dealing with change Deming’s System of Profound Knowledge Understanding Kanban Core Principles • What is a requirement? • Scrum project tracking • Appreciation for a system • Start with what you do now • The product vision as the top-level requirement • Knowledge of variation • Initially, respect roles, responsibilities, and pro- • Three purposes of requirements • Theory of Knowledge cesses See complete course description at • Using requirements to manage risk • Psychology • Agree to pursue evolutionary change www.construx.com/learn • Product versus project requirements • PDSA - Deming’s application of the Scientific Meth- • Encourage acts of leadership at all levels • User stories and acceptance criteria od to management Applying Kanban Practices • The definition of “done” and why it matters Lean Thinking • Visualize • Understanding value • Limit WIP • Identifying waste in all of its forms • Manage Flow • Understanding how our products are built • process, policies, and assumptions explicit • The concept of flow • Implement feedback loops “Very impressed with your company and • Pull versus Push • Improve collaboratively, evolve experimentally team. I look forward to getting more of • Achieving excellence via the pursuit of perfection Implementing Kanban in Your Organization my team members in your training.” • LAMDA - Lean Thinking’s PDSA-based value-cre- • Building Your Kanban ation cycle • Operating the Kanban Don Montgomery, FIS Theory of Constraints See complete course description at • What is The Theory of Constraints? www.construx.com/learn 10 Agile Development

Agile Developer Scrum Essentials Boot Camp for Leaders

This seminar provides hands-on experience in proven engineering practices to This one-day seminar provides a comprehensive overview of Scrum to individuals that help software developers work effectively in a team using any of the leading Agile need to support Scrum teams and the organization in its transition to Scrum. You will development approaches. Participants will learn how to deliver high-quality, valuable, obtain a good understanding of how the work is estimated, planned, and executed in working software frequently while accommodating changing requirements. As leading Scrum projects, which will enable you to contribute more effectively in the success Agile frameworks encourage developers to be more generalists than specialists, this of the projects you are involved with. You will also learn key strategies to align and seminar goes beyond just coding practices, providing participants with skills that will define governance with Scrum projects, and to form and maintain self-organizing, leverage the twelve Agile principles. Note: Agile Developer Boot Camp focuses on Agile cross-functional development teams. This course in not intended for individuals who engineering practices. Scrum/Agile processes are covered in our Scrum Boot Camp are performing any of the three Scrum roles. For these individuals, we recommend our seminar. Scrum Boot Camp seminar.

Agile Development Foundations Individual Productivity Why Agile Release Planning • Agile values and principles • Getting things done the Agile way • Why companies are going Agile • Flipping the Iron Triangle • Scrum, XP, and Lean software development • Pomodoro technique • Delivering value early • Initial backlog refinement • Agile development teams • Productivity principles • The Agile Manifesto • User story mapping Automated Testing Refactoring The Scrum Workflow Relative Sizing and Velocity • Adding value with automated tests • Emergent Design • Why companies use Scrum • Accuracy vs. precision • frameworks • Tracking and paying off technical debt • Scrum workflow • Planning Poker • xUnit test patterns • System metaphors • Scrum roles, events, artifacts, and rules • Deriving release content and duration & Components & Dependency Management Scrum Roles Sprint Planning • Automated build scripting • Keeping application releasable • Scrum Master • Definition of “Ready” and Definition of “Done” • Continuous integration infrastructure • Dividing code base into components • Product Owner • Task decomposition • Essential practices for continuous integration • Managing dependencies • Development Team • The Sprint Backlog Strategies Requirements Refinement Forming Cross-Functional, Self-Organizing Sprint Execution and Project Tracking • Using version control • Refining and breaking up user stories Teams • The Daily Scrum • Workspace management • Removing ambiguities • Stages of competency • Sprint burndown chart • Branching strategies • Behavior-Driven Development (BDD) • Cross-functionality matrix • Release burndown chart Collaborative Development Developer Testing Best Practices • Raising levels of delegation and authority • Interfacing with other roles • Ensuring functional coverage • Communities of practice Product Planning See complete course description at • Pair Programming • Domain testing www.construx.com/learn • Collective code ownership • Structural testing • How software requirements are handled Test-Driven Development Story & Task-Level Estimation differently in Scrum • TDD cycle and its rules • Story points estimation • Populating the initial Product Backlog • Acceptance Test-Driven Development (ATDD) • Decomposition and recomposition • User stories and epics “I found the Scrum training • Keeping test code clean • Structured individual expert judgment • Early prioritization Clean Coding incredibly valuable for me • Coding standards See complete course description at and my team.” • Code analysis www.construx.com/learn Metin Gokdemir, Baker Hughes • Defining “done”

11 Agile Development

Agile Estimation Agile Planning and Estimation Agile development and Scrum in particular have opened the door to powerful new estimation approaches. This course provides many useful rules of thumb, procedures, Learn state-of-the-art methods and practices for planning, estimating, and managing and lightweight math for creating software estimates (“the art of estimation”) and briefly Agile projects. The real-world practices presented in this seminar are based upon introduces mathematically-intensive approaches to creating software project estimates evolved concepts and support both basic Scrum projects and Agile at scale—and they (“the science of estimation”). This course features extensive lab work to give you hands- have been proven on the ground through extensive use by Construx’s clients. These on experience creating many different kinds of software estimates--for large, medium, concepts are illustrated throughout the seminar with numerous hands-on exercises. and small projects as well as calibrating estimates to be accurate for your specific After the seminar, attendees will understand and be able to effectively plan and estimate development environment. This seminar is based on the best selling book Software their projects in days instead of weeks, and be able to confidently forecast project Estimation: Demystifying the Black Art, by Steve McConnell. Two days. completions with accuracy.

Agile Project Planning Strategies Release Planning Estimation Background Popular Estimation Methods • The Agile Paradigm Shift: No More Planning Around • Backlog Sequencing Strategies • Estimation “art” vs. estimation “science” • Off-the-cuff estimation Activities That Don’t Matter • Release Planning Principles • Estimates, targets, and commitments • Typical judgment-based estimation • The Purpose of a Project • Project Staffing and Budgeting • Estimation focus: features, schedule, cost/resources • Structured expert judgment • What do We Mean by Planning and Estimating? • Creating the Project Schedule • Kinds of estimates: macro vs. micro, top-down vs. • Decomposition • Deliverables-based Planning • Avoiding “Schedule Chicken” bottom up, algorithmic vs. heuristic • Group estimation techniques • The Minimum Viable Product • Understanding Scope, Team, and Project • State of the art and potential for estimation • Estimation checklists • Object-Oriented Planning and Velocity accuracy Better Estimation Methods Envisioning: The Foundation for Planning Backlog Refinement Estimation Process • Counting, , and judgment • Begin With The End in Mind: The Product Vision • What is Backlog Refinement (Grooming)? • Differences in estimating agile projects vs. plan- • Story points • Who Owns the Vision? • When and How to Groom driven projects • Planning poker • Creating an Effective Product Vision: The Elevator Test • The Definition of Ready • Basic steps in creating a software estimate • Velocity Planning by Focusing on Deliverables Effective Sprint Planning • Best estimation approaches by project phase • Release burn-down charts • User-centered Functional Design • Using Velocity as a Guideline, Not a • Estimate refinement • Iteration burn-down charts • Prioritizing Users and Features Straightjacket • Standardized estimating procedures for agile • Wide-band Delphi Effective Agile Work Decomposition • Planning the Sprint projects • Estimation by analogy • Agile Work Breakdown Structures • Sprint Planning Smells Estimation Error • Proxy-based estimation • Creating the Product Backlog • Estimation During Sprint Planning • Software’s Cone of Uncertainty • The PERT formula • Hierarchical Story Mapping: Prioritizing the Product • A Discussion on Commitment • Applying the Cone of Uncertainty to Agile projects • Improving individual contributor estimates Backlog Component Task Creation and Estimation • Building your own Cone of Uncertainty Special Issues in Feature/Scope Estimation Agile Estimation During Sprints • The good, the bad, and the ugly: evaluating • The Feature Staircase • The Purpose of Estimation • What is a Task? estimates • The Feature Cone of Uncertainty • Why Estimation Is Hard, and Why It Doesn’t Have to • Dynamic and Static Task Decomposition • Measuring Error: Residual Error, RE, MRE, VFE, and • T-Shirt Sizing Be Approaches BRE • Software’s diseconomy of scale • Agile Estimation Concepts • Rules for Sizing Component Tasks • Detecting errors in the estimation process itself • Story Point Estimation Principles • Lightweight Task Estimation Practices See complete course description at • Playing (and Winning) the Estimation Game www.construx.com/learn • Agile Estimation Practices See complete course description at • Estimation Practices for Large Projects www.construx.com/learn • Effective Organizational Estimation Practices 12 Project Management

Software Estimation Software Project in Depth Management Boot Camp

This seminar provides many useful rules of thumb and procedures for Leading any project can be a challenge. Leading a software project can be even more creating software estimates (“the art of estimation”) and briefly introduces mathematical challenging if you’re new to project management or new to software. This seminar approaches to creating software project estimates (“the science of estimation”). This will help you make the transition to solid software project leadership. Software Project seminar features extensive lab work to give you hands-on experience creating many Management Boot Camp teaches you the concepts and techniques necessary to manage different kinds of software estimates—for large, medium, and small projects—as well as projects successfully. This seminar closely follows the Project Management Institute’s calibrating estimates to be accurate for your specific development environment. (PMI) Project Management Body of Knowledge (PM-BOK) and shows how to apply these [14 PDUs] best practices to a typical small-to-medium sized software project. This course involves extensive hands-on practice with real-world case studies. [21 PDUs] Estimation Background • The PERT formula • Estimation art vs. estimation science • Putnam’s Method Introduction • Simplifying the WBS with a project matrix • Estimates, targets, and commitments Special Issues in Scope Estimation • Defining software project success • Building the WBS dictionary • Counting, computing, and judgment • Kinds of estimates: macro vs. micro, top-down vs. • Understanding the challenges on a • Choosing a project organization • Fuzzy Logic bottom-up, algorithmic vs. heuristic software project • Choosing a project lifecycle • T-Shirt Sizing • State of the art and limits on estimation accuracy • Typical software project outcomes • Typical software project effort allocations • Software’s diseconomy of scale • Surprise: Estimation’s real role on software • Construx’s path to software project success • Creating an activity network (PERT chart) projects Special Issues in Effort Estimation Basic Survival Concepts • Finding the critical path • Productivity variations across types of Estimation Process • Understanding labor rate, burn rate, capital vs. • Developing a realistic project schedule software • Basic steps in creating a software estimate expense • Scheduling to fixed end dates • Calibration • Estimating agile projects vs. estimating • Taking advantage of the upstream/downstream • Addressing uncertainty using rolling wave planning • Industry data plan-driven projects effect • Tuning the plan to the specifics of your project • Best estimation approaches by project phase • Historical company data • Recognizing the intellectual phases of a Execution, Checking, and Correcting: • Estimate refinement • Project data software project Succeeding in Stages • Standardized estimating procedures for agile • Estimating individuals’ work • Fundamentals of software project estimation • Controlling change and plan-driven projects Special Issues in Schedule Estimation Project Initiation • Using earned value to objectively track project • The schedule equation Estimation Error • Chartering the project status • Effect of schedule compression and expan- • Evaluating estimates: the good, the bad, and the • Assessing risks to software project success • Conducting effective status meetings sion ugly • Recognizing software project assets • Creating useful project status reports • The impossible zone • Errors in the estimation process Project Close Out • Refining the project plan based on actual progress • Sources of project uncertainty Automated Estimation Support • Typical close-out tasks • Capturing valuable project history in a project log • Product demos • Software’s Cone of Uncertainty • Using a project retrospective to learn from • Sanity checking the project using planning check- • Tool capabilities Popular Estimation Methods the experience point reviews • Off-the-cuff estimation • Interplay of the art and science of software • Using expert judgment successfully estimation Project Planning • Wide-band Delphi Human Roles in Estimation • Using a software project plan template See complete course description at • Cocomo II • Estimate presentation techniques • Developing work breakdown structures (WBS) www.construx.com/learn Better Estimation Methods • How to explain and defend an estimate • Estimation by analogy • Estimation and negotiation • Decomposition • Proxy-based estimation See complete course description at • Estimation by function points www.construx.com/learn 13 Project Management

Increasing Software Risk Management Innovation In Depth

Much is written about the “secrets of innovation”. Why then are so few companies The project was a guaranteed success—until the subcontractor announced a three-week innovating? What’s missing? This seminar will challenge your thinking about everything delay and your chief architect quit to go hiking in Nepal. If you don’t attack project risks, they you’ve ever heard about innovation. It provides a predictive model that explains why some will attack you! Learn intermediate and advanced strategies you can use on both general and companies innovate and others don’t — a model to help you avoid wasting time and effort project-specific risks. Discover how to identify, address, and eliminate sources of risk before trying “secrets of innovation” that won’t work for your organization. they grow into major problems. This two-day seminar focuses on intermediate and advanced You’ll leave this seminar knowing how to benchmark your organization’s ability to innovate strategies you can use to manage general risks and details practical techniques you can use to and implement innovation practices specific to your organization. 3-day seminar. [18 PDUs] control your project’s specific risks. [14 PDUs]

Great Products • Create entrepreneurial teams with the Product Introduction Risk Response Planning • Identify characteristics of great products, and Introduction Core Team Maturity Model • A definition of risk • Risk response strategies learn what made them great • Develop future leaders • What is risk management? • Prevent • Understand the impacts of wrong decisions at Designing Innovative Products • The need for risk management • Mitigate the product or release definition stages • Establish a product vision Risks in Detail • Transfer/share • Recognize the limitations of the traditional • Apply the five steps of 360° Product • The scope of risks • Contingency plan product introduction process Introduction: • Risk as cause-effect • Risk reserve/provision Ignore • Apply a practical working definition for great - Quantify stakeholder value to focus innovation • Ultimate causes and ultimate effects • Planning risk response products - Bridge business and technology with user • Risk timeframes Risk Responses • Focus innovation on highest stakeholder value scenarios • Assets • Responses to requirements problems • Understand the impact of technology evolution - Define features that maximize stakeholder Risk Identification • Responses to inadequate project management on product development value • Categories of risks • Responses to inattention to upstream quality Effective Product Teams - Prioritize features based on business value and • Common project risks • Responses to misunderstood project dynamics • Understand the differences between effective development cost • Practical techniques to identify risks and • Strategies for maximizing common assets and ineffective teams - Create requirements that support innovation assets Risk Response Control • Overcome five characteristics of dysfunctional • Leverage 360° Product Introduction with Scrum Risk Analysis/Prioritization • Response control through project tracking product teams: • Incorporate elements of great design • Risk probabilities • Ongoing risk reassessment - Friction Planning Great Products • Risk severities - Avoiding individual responsibility • Incorporate two important life cycles into your • Techniques for accurately estimating risk See complete course description at probabilities and severities - Evading measurement planning: www.construx.com/learn - Not innovating - Technology life cycle • Determining risk exposure - Not winning - Technology adoption life cycle • Prioritizing risks • Increase team motivation • Apply a collaborative Phase Gate process that • Analyzing/prioritizing assets • Break down the walls and work as a team leverages technical innovation Product Core Teams • Structure innovative teams See complete course description at • Foster business and technical collaboration www.construx.com/learn • Replicate the startup environment

14 Project Management

Software Economics Boot Camp

Companies are in business to maximize the return on their investment. Unfortunately, most software professionals lack the skills to evaluate the business impacts of the technical choices they make – which can lead to waste in time, money, and personnel. Grounded in engineering “I wish my entire economics and business decision making, this 2-day seminar teaches you the essential concepts and techniques that will help you make technical decisions that positively impact the company could attend! all-important bottom line. This seminar is taught by Steve Tockey and is based on his book, Return on Software. Nearly overwhelmed

Introduction and Foundations Developing Mutually Exclusive Alternatives by all the new • Business on purpose • Independent proposals • Harsh realities • Dependent proposals knowledge I can share.” • Seminar goals - Co-dependent proposals • Roadmap - Mutual exclusive proposals Whitney Yadrich, DEG Digital Fundamentals of Business Decisions - Contingent proposals • Business decision-making process • Developing mutually exclusive alternatives • Selection criteria • “Do-nothing” alternative • Proposal • Cash-flow streams for alternatives • Cash-flow instance For-profit Decision Making • Cash-flow stream • Minimum Attractive Rate of Return • Cash-flow diagram • Basic for-profit decision process • Developing cash-flow streams • Example for-profit decision Interest: the Time Value of Money • Rank on rate of return “Everything about the • Time is money Allowing for Inaccuracy in Estimates • Interest • Knowledge drives accuracy training was great – the • Naming conventions in interest formulas • Common ways to allow for inaccuracy - Simple interest - Increase MARR content, the pace, and - Compound interest - Shorten planning horizon - Compound interest formulas • Better ways to allow for inaccuracy: Comparing Cash-Flow Streams - Use ranges of estimates the instructor.” • Simple comparison of two proposals - Sensitivity analysis Rinette Scarso, Senior Services • Equivalence - Delay final decisions Project Manager, Microsoft • Bases for comparison Multiple Attribute Decisions - Present worth • Introducing multiple attribute decisions - Future worth • Different kinds of “value” - Annual equivalent • Measurement scales - Internal rate of return - (Discounted) payback period See complete course description at • Project balance www.construx.com/learn 15 Requirements

Agile Requirements Agile Requirements In Depth Modeling

Agile development shifts traditional requirements work to a “just in time” approach. How This seminar gives you hands-on experience using five basic requirements models to more does this affect good requirements practices? This seminar explains Agile approaches to efficiently and effectively elicit and analyze functional requirements. You’ll create Context traditional requirements sources including MRDs, PRDs, feature lists, and user scenarios. Diagrams, Activity Models (workflow models), Domain Models (E-R models, class models, It dives into techniques for developing requirements on Agile projects, including the Agile data models), Use Cases and State Models. You’ll gain proficiency at using these models Work Breakdown Structure (WBS), using story mapping to define the scope of the project, in practical and Agile ways to more precisely and concisely capture requirements without writing user stories, sizing stories (agile estimation), and developing acceptance criteria getting caught up in modeling semantics. You’ll see how these five models can enable you for user stories. Concepts are illustrated through extensive use of hands-on labs. [14 PDUs] to gather more requirements earlier in the project, and why model-based requirements exhibit greater stability than those that are interview-based. The seminar will also sharpen What Are We Trying To Build? Just-in-time Requirements Elaboration your instincts for knowing when you’ve done enough requirements work to proceed, and • It all starts with the product vision • No requirement before its time: the where requirements risks remain. • Characteristics of good product visions concept of the last responsible moment Software Requirements: What and Why • Requirements elaboration during iteration Define Our Model Toolkit • Separate actor and system • Examine data cohesion • What is a requirement? planning • Define the model steps • Name the classes • The product vision as the top-level requirement Requirements Change Management • Requirements modeling toolbox • Create alternate courses • List important attributes • Three purposes of requirements Requirements Validation Model Your Context • Define exception courses • Run the pit test • Using requirements to manage risk • Acceptance criteria • State the boundary • Add specific information • Look for data coupling • Product versus project requirements • The definition of “done” and why it matters • Identify actors Create Activity Models • Associate the classes • Potentially useful requirements artifacts • Classify into sets • Examine the activities • Assign cardinality • Working software as the ultimate requirements • Name the data flows • Start from the end Utilize State Models specification See complete course description at • Prioritize • Align actors and sub-tasks • Find “status” Initial requirements gathering www.construx.com/learn Define Use Cases • Sequence the activities • Describe a state • Envisioning the high level requirements • Define tasks • Show decision points • Borrow from activity models • What can I do with it: high-level user stories and • Select the primary actor • Fork parallel activities • Bring an instance into existence story mapping • Confirm value proposition • Sync activities • Transition to a new state • How it works: business rules and the domain • Develop post-conditions • Identify technology artifacts • Record transition rules model • Develop pre-conditions Start a Class Model • Delete an instance • How it looks: low-fidelity UI models and • Write a description • Find the nouns Find the Requirements workflows • Select a normal course • Search other models See complete course description at www.construx.com/learn “The different techniques for prioritizing requirements, the samples and templates are some of the best I’ve seen in over 20 years in the industry.” Don Evatt, Cisco

16 Requirements

Model-Based Requirements Requirements Boot Camp

This three-day seminar provides in-depth, hands-on coverage of developing and What is the most frequently reported cause of software project failure–regardless of documenting model-based functional requirements as part of a Model-Driven Architecture project size or type of software? Requirements challenges. Discover how leading-edge (MDA) software development approach. The software requirements are documented companies use requirements engineering to support successful software projects. using a subset of the Unified Modeling Language (UML) instead of in a Natural Language Learn the three purposes of requirements and how to distinguish between require- like English. Model-based requirements are more complete, concise, less ambiguous than ments fantasies and requirements reality. Practice practical techniques for exploring Natural Language requirements and lead to developing higher quality software with less user needs, capturing requirements, controlling changes, and building highly satisfactory cost and shorter schedules. No prior knowledge of object-oriented development, UML, software. [21 PDUs] or MDA is required. The companion seminar, Object-Oriented Design, explains how to complete the MDA process and create code that satisfies these requirements. Software Requirements: What and Why • Incorporating business rules • Requirements: fantasies and real world • Dealing with ambiguity • What is a requirement? • Tools: interviews, context-free questioning, Introduction • Generalizations • Three purposes of requirements brainstorming, JAD workshops, prototyping, • Why model? Class Modeling • Product and project requirements task analysis, use cases, competitive • Software methods and models • Classes • Levels and types of requirements benchmarking, document archeology, project • Introduction to UML • Attributes • Characteristics of good individual requirements charter, vision statement Fundamental Principles • Domains • Characteristics of good sets of requirements Who Defines Requirements • Importance of complexity • Associations • The vision statement as the top-level requirement • The requirements engineer • Abstraction • Multiplicity • Requirements as a risk management activity • Requirements engineering roles • Cohesion and coupling • Generalization • Knowing when you’re done • Skills needed to develop requirements • Design to invariants Interaction Modeling The Requirements Process effectively Analysis vs. Design • Sequence • Comprehensive strategies for defining • How the requirements engineer relates to the • Requirements vs. non-requirements • Communication requirements rest of the project • Functional requirements vs. non-functional State Modeling • Iterative elicitation, analysis, specification, and • Checklist for requirements leads requirements • States validation • How to separate • Events • Breadth-first approaches • Classification and prioritization schemes • Why to separate • Transitions • Depth-first approaches • Requirements negotiation • Definitions of analysis and design • Actions • Spiral approaches • Tools: prototypes, use cases, essential systems Object Orientation Summary of OOA Modeling • Tools: chartering workshop, collaborative modeling, data dictionary • Concepts and terminology of object- • Cross-model consistency development, risk management, parallel Requirements Specification orientation • Stimulating models development • Characteristics of a good requirement Modeling Scaling Up Requirements Elicitation specification • Actors • Recursive design/domain separation • Who has requirements? • Models as specification • Use cases • Decomposing domains into subsystems • Eliciting requirements from people • Participates Overview of Designing from an OOA • Eliciting requirements from other systems See complete course description at • Includes & extends • Eliciting requirements from the environment www.construx.com/learn See complete course description at • Finding the decision maker www.construx.com/learn

17 Design & Construction

Web API Design and Developer Boot Camp RESTful Web Services This intense hands-on seminar will give you the tools you need to be a professional software The REST architectural style defines a set of principles and constraints that promote developer. This seminar combines techniques from the areas of design, construction, and system scalability, loose coupling, reduced latency, security, and the encapsulation of testing to give you pragmatic guidance into the business of writing working code. Principles legacy systems. While REST is relatively easy to understand, it does not provide any will be illustrated with numerous concrete examples of good and bad code in a variety of guidance on how to create programmable “Web APIs”. This course will help attendees languages. In depth labs allow you to practice applying the principles. acquire a thorough understanding of how to design RESTful Web APIs that support CRUD, transactional scenarios, workflow, and even complex systems integration. Managing Complexity Increasing Your Software’s Value Fundamental Web API Design • Workflow • Essential and accidental difficulties • Effective requirements • Review of HTTP • Service composition • Modularity • Prototyping • The 3 web service API Styles • Hypermedia and the Linked Service pattern • Encapsulation • Modeling • Why use Resource-Oriented Web APIs? Service Evolution, Versioning, and Governance • Information hiding • design • When not to use? • What changes in Web APIs cause them to break • Coupling • Read-time versus write-time convenience • REST Recap clients? • Cohesion • Characteristics of high value software • Resource APIs and service contracts • API version identification patterns • Abstraction • Transparency - Logical components of the contract • Patterns to enable backward and forward • Interfaces Error Handling - The debate over Service Descriptors compatibility • Design by contract • Assertions • APIs for CRUD and other more complex scenarios - Data Transfer Objects • Knowledge as data • Exceptions • Client/Service Interaction patterns - Dataset Amendments Designing for Change • Diagnostics - Request/Response - Tolerant Reader • Variability analysis • - Request/Acknowledge - Media Type Negotiation • Typical changes Ensuring Correctness • Communicating business logic errors to clients - Consumer-Driven Contracts • Design to invariants • Functional Behind the Web API • Service governance concepts and practices • Extension & intension • Structural unit testing • Service Controllers and data-binding • What about SOA? • Association versus inheritance • Automated feature testing • Implementation patterns Web Service Infrastructure Patterns • Delay binding times • Domain analysis - Transaction Script • Service Interceptors and their uses • Composability • Equivalence class partitioning - Operation Script • Client Infrastructure patterns • Open / closed principle • Testing strategies - Command Invoker - Service Connector Key Construction Skills • Measuring complexity - Data Source Adapter - Asynchronous Response Handler • Design principles • Minimize the lag between error insertion and - Workflow Connector - Idempotent Retry • Design patterns error detection • Request and Response Mappers • What about SOA Infrastructures? • Structured programming • Avoiding common pitfalls Advanced Web API Design - Web APIs and Service Registries, ESBs, and • Object-oriented programming • XUnit frameworks • Client/Service Interaction patterns Orchestration Engines • Functional programming • Mutation testing - Long Poll Service Performance, Scalability, and Availability • Improving productivity • Static analysis - Media Type Negotiation • The CAP Theorem • Working on a team • Patterns for Complex Searches • Asynchronous processing • Writing legible code See complete course description at - Query strings • State management • Tools, techniques, and practices www.construx.com/learn - Simple Search DTOs See related course, Agile Developer See complete course description at - Query Tree DTOs Boot Camp for On-Demand Training • Transactions and transaction management www.construx.com/learn 18 Design & Construction

Code Complete Design Boot Camp Essentials Different designers will create designs that differ by at least a factor of 10 in the code In this intense one-day seminar you will learn dozens of proven tips, techniques, and volume produced. How do you invent simple, straightforward designs and avoid complex, principles to produce clean, industrial-strength code. Capturing the body of knowledge error-prone ones? Understand the fundamental design principles that lead to high-quality available from research, academia, and everyday commercial practice, this seminar designs requiring low implementation effort. Learn both Agile and traditional approaches synthesizes the most effective techniques and must-know principles into clear, pragmatic to creating great designs quickly and economically. guidance. This seminar uses dozens of examples of good and bad code in Java, C++, C#, and Visual Basic to explain how to shorten development time, reduce errors, and make What is “Design”? Design Paradigms • Aspect-oriented design easier. This seminar is taught by Steve McConnell, the coding guru who wrote • Design as an activity vs. a product • Design as a tool for communicating • Object-oriented design the best-selling Code Complete, a computing industry classic that won the Jolt Excellence • Managing complexity with design • Structured design award for best programming book of the year and has been translated into more than a • Characteristics of excellent designs • Design patterns dozen languages. Fundamental Design Principles Detailed Design • Use abstraction • Refactoring Introduction High-Quality Classes • Encapsulate design decisions • Semantics-preserving transformations • Construction’s critical role in software • Good and bad reasons to create classes • Maximize cohesion; minimize coupling • Program design languages development • Designing interfaces • Design to invariants • Error processing • Technology knowledge vs. principles knowledge Code Optimization • Avoid premature optimization Design Documentation • Dealing with “accidental” and “essential” • A defensive strategy for code optimization • Beware of Fisher’s Fundamental Theorem • Desirable properties of design documentation difficulties • Three optimization approaches that don’t work Managing Design Complexity • IEEE STD 1016-1998 Recommended Practice Defensive Programming • Example of intensive optimization • Dimensions of design (interface, data, function) for Descriptions • Error processing Quality Practices • Measures of design complexity in each dimension • Agile design documentation • Effective strategies for anticipating change • Debugging by superstition • Balancing local and global complexity Creativity in Design • Code stepping • A scientific approach to debugging Design attributes: The “-ilities” • Factors that contribute to excellent designs • Offensive programming • Tips for finding defects • ISO/IEC 9126 Quality Model • Value of creativity Creating High Quality Designs • Tips for fixing defects • Non-ISO/IEC 9126 “-ilities” • Research on software creativity • Differences in design effectiveness • Defect cost dynamics • Managing conflicts among the “-ilities” • Fudd’s Law • Attributes of great designers • Error prone modules Architectural Design • The Primary Technical Imperative: Managing • Pipes & filters Complexity • Model-view-controller See complete course description at • Managing technical debt • Layered architectures www.construx.com/learn • The relationship between naming and design • Service-oriented architectures • Design guidance: information hiding, abstraction, • Blackboard encapsulation, modularization, cohesion, separation of concerns High-Quality Routines • Coding Horror: examples of low-quality routines “Arguably the best course I have ever taken.” • Program layout techniques • Low-effort, high-payoff commenting techniques Joe Johnson, Infospace • The Pseudocode Programming Process

See complete course description at www.construx.com/learn 19 Design & Construction

Model-Based Design Pattern Design Essentials

This two-day seminar provides in-depth, hands-on coverage of developing and Design patterns made understandable! Design patterns are powerful, predefined solutions documenting software designs from model-based functional requirements as part of a to common software design problems. Patterns provide a powerful form of reuse because Model-Driven Architecture (MDA) software development approach. The software design is they are transportable across different languages and software architectures. This seminar documented using a subset of the Unified Modeling Language (UML). Model-based designs introduces and explains the highest-leverage design patterns in a clear way that’s easy to are more complete, concise, less ambiguous than typical designs and lead to developing understand. You will learn how to use specific design patterns to improve your designs, and you higher quality software with less cost and shorter schedules. No prior knowledge of object- will practice applying design patterns to sample design problems. You will also see how design oriented development, UML, or MDA is required. The companion seminar, Object-Oriented patterns can improve your design process overall. Analysis, explains how to start the MDA process and create the model-based requirements that feed into this design. Introduction High Leverage Patterns • Design patterns defined • Model-View-Controller Introduction Deriving High-level Designs • Understanding design pattern forces • Adapter • Why model? • Deriving OOD classes and operations for Fundamental Design Principles • Façade • Software methods and models OOA • Maximize cohesion, minimize coupling • Bridge / Strategy • Introduction to UML • Deriving OOD classes and operations • Encapsulate design decisions • Composite • Analysis vs. Design from Interface Designs • Base the design on the invariants • Observer • How to read an OOA Low-level Design • Subclasses should be substitutable • Template method Fundamental Principles • Deriving data structures from OOA • Favor association over inheritance • Factory method • Importance of complexity • Deriving procedure structures from OOA • Minimize overall complexity • Abstract factory • Abstraction Design Optimization UML Notations • Singleton • Encapsulation • Straight-forward optimizations • Class, attribute, operation Other Useful Patterns (as time permits) • Design to invariants • High-level optimizations • Association and multiplicity • Iterator Object Orientation • Low-level optimizations • Aggregation and composition • Proxy • Concepts and terminology of object orientation Summary • Inheritance • Decorator Defining Interfaces • Abstract class • Command • Storyboarding • State • Dialog maps • Data access object See complete course description at • Usability www.construx.com/learn • Interface control doucments (ICDs) See complete course description at www.construx.com/learn

“The instructor was very engaging! He kept my interest the whole time and is the perfect combination of expert, geek, and comedian.” Heidi Shea, Newmarket International

20 Testing & QA

Professional Tester Agile Testing for Boot Camp Software Developers

How do professional testers test software? This seminar teaches the techniques, tips, Test Driven Development is a critical component of Agile development. Unit testing tricks, and strategies used by test professionals. You will learn and apply numerous without TDD typically achieves only 50-60% statement coverage, but with TDD you will detailed test design strategies for black-box (functional) testing and system testing. achieve 100% branch coverage. Learn how to design efficient and effective tests and You will also learn practical techniques for planning, designing, and executing effective how to make the software itself more testable. See how to plan and execute an effective testing on real software projects. Determine how much testing is enough for your project, developer testing strategy. Understand the various ways of measuring the coverage and whether your test cases are adequate, and how to minimize wasted testing effort. This effectiveness of your test cases. seminar emphasizes black box (functional) testing and system testing. [4 PDUs]

What is the Test Driven Approach? Expository Programming Test Planning • Learn how to reduce the number of test cases Unit Testing Fundamentals • Variable names • How to make your testing more effective when you have to test all combinations. Unit Testing Patterns and Anti-Patterns • Routine names • Making your testing more efficient For example: • Stubs, drivers, shunts, mocks • Intentional programming • Evaluating test case designs - Multiple operating systems • Data-driven, delta, exceptions, guards • Comments • When to plan for testing - Multiple web browsers Domain Analysis Modularity • Relating testing to other software development - Plug-ins • Equivalence classes • Encapsulation activities - Web server software • Boundary values • Information hiding • Evaluating test case designs - Server operating systems • Pairwise testing • Interfaces • Determining how much testing is enough • Downloadable software to figure out your test Structural Analysis • Abstraction Domain Testing cases • Control flow testing • Coupling • Where to find domain specifications • Commercial tools that can help with pairwise • Coverage metrics • Cohesion • Analyzing domain specifications testing • Complexity metrics Design Patterns • Common domain defects you should test for Test Automation High Level TDD Functional Design • Designing input domain tests • Improving the efficiency of testing with • Agile Acceptance Testing Legacy Code • Designing output domain tests automation • Testing an MVC pattern • Enhancing • Analyzing domain boundaries • Why is test automation harder than just Writing Testable Code • Fixing Testing from Requirements recording and playing back keystrokes? Testing with Contracts • Refactoring • How to ensure that every requirement is tested • How to get started with data driven test • Deciding the number of test cases necessary for automation See complete course description at each requirement • Advantages of keyword driven test automation www.construx.com/learn • Creating test cases from use cases • Commercial tools/frameworks to support • Creating test cases from relationship models keyword driven test automation • Creating test cases from state-transition models Testing the Tests Tool Support for Testing • How do you know your tests are reliable? • Determining which tools are useful for supporting • How do you know your tests are effective? “Excellent seminar and great presenter. testing activities • How do you uncover and improve low quality He made sure we understood the topic Pairwise Testing tests? before moving on.” • When is pairwise testing useful? Dian Von Ballmoos, Fandango See complete course description at www.construx.com/learn

21 Testing & QA

Developer Testing Total Project Quality Boot Camp

Developer testing is a critical component of software development--yet studies show that From project inception, a focus on quality through planning, execution, and delivery can developer testing is typically inefficient and ineffective. Significant developer effort is spent help improve software project cost, schedule, and functionality. This three-day seminar without finding defects that should have been found. Learn how to be more efficient and- ef shows you how to define quality in specific terms with a focus on how to decide what is fective by achieving higher test coverage and how to make the software itself more testable. “good enough” for a particular project. You will learn to align project activities to achieve See how to plan and carry out an efficient and effective developer testing strategy. Avoid quality throughout the project lifecycle—including numerous alternatives to end-of-proj- common testing pitfalls, and learn to determine how much developer testing is enough. ect testing. [17 PDUs] 2-day seminar. [4 PDUs] Defining Quality Implementing Quality in Requirements Core Concepts • Static Analysis • Textbook quality definitions • Five whys • Test case, test set, test suite • Cyclomatic complexity • QA vs. QC • Task analysis • Positive and negative test cases • Fan in Quality Goals • Vision & goals • Functional and structural testing • Fan out • The ISO 9126 definition of quality • Gists • Unit, integration, system, Test Planning • Characterization • Fit criteria acceptance, • Determining the ROI of testing - Scaling a characteristic Implementing Quality in Design • Test coverage • Cost/benefit of automating - Prioritization of characteristics • Facilitated workshops • Test tools and frameworks tests • Establishing what it means to be “good enough” • Architecture tradeoff analysis method • Testing as risk mitigation • Cost/benefit of unit testing General Strategy • Design impact estimation • Cost/benefit of integration • The basic philosophy of • Personas • Testing from requirements testing • Early removal of defects Implementing Quality in Code • Requirements coverage • Cost/benefit of system testing • Insulating from impact of defects • Satisfice and softgoals • Input domain analysis • Cost/benefit of designing for • Using the PDCA cycle • Optimization • Output domain analysis testability Finding Faults Analytical Toolbox • Equivalence class partitioning • Introduction to risk-based • Common faults in software and where they are • Measures • Equivalence class coverage testing created • Comparing discrete classes • Boundary value analysis Unit testing tools and practices • Identifying the defects • Trending a class • Boundary value coverage • Unit testing frameworks • Tracking defects • Process control • Combinatorial analysis • Stubs and drivers Detection Toolbox • Collecting data • All pairs coverage • Test doubles and mock objects • Peer reviews Managing Software Quality Structural Testing • Data driven tests • Quality attribute workshops • Organizational level quality • Control flow analysis Test driven development • Dynamic testing • Process improvement • Statement coverage • Process of test driven • Prototyping Establishing a Quality Culture • Decision (branch) coverage development • Detection effectiveness • Growing capability • Condition-decision coverage • Benefits of test driven Approaching Quality • Selecting practices • Multiple condition coverage development • Basic approach • Audits • Modified condition/decision • Costs of test driven • Lifecycles and characteristics See complete course description at coverage development www.construx.com/learn • Path coverage See complete course description at • Loop coverage www.construx.com/learn 22 Methods & Processes

10X Software 10X Individuals and Engineering - Teams Interactions: Unleashing

Decades of research have found at least a ten-fold (10X) difference in productivity and the Power of the Team quality between the best developers and the worst–and between the best teams and The Agile Manifesto states that, “We value individuals and interactions over processes the worst. Discover the 8 Key Principles of 10X Engineering. Gain a deeper understanding and tools.” What does that really mean? This workshop explains what that means of the factors that affect productivity and avoid the productivity traps of “minus-x” by diving into the details of human interactions, including working with different engineering. Learn and apply critical techniques that will turn your team into a high personalities, dealing with conflict, collaborating effectively, team decision making, performing, 10X Team. [18 PDUs] creating shared vision, and building high performance teams. It is complementary to the Defining 10X 10X Principle: Tailor the Solution to the Problem more process-focused content in Agile practices like Scrum, Kanban, or Construx’s 10x • 10x differences in productivity and quality • Streamlining work with intellectual phase Software Development programs. • 10x principles profiles 10X Principle: Avoid Minus-X Engineering • Phase and activity variations Software projects rarely fail for technical reasons. They fail for reasons related to people. • Classic mistakes • Life cycle models Make sure the people on your next project have the human interaction skills they need • Brute force quality • Efficient information capture to succeed! • Multi-tasking • Documents and digital cameras • Typical Minus-X project • Toolboxes High Performance 10X Teams • Supporting high performance teams with • Your Minus-X project 10X Principle: Set Direction • Team basics emotional intelligence Basic Engineering Project Direction • Characteristics of high performance teams • Gaining deeper insight into yourself with the • Mastery of fundamentals and excellent • Project charter • Role of teamwork Mood Meter execution • Vision statements • Effective vs. ineffective teams • Using the Mood Meter to support productive • Technical fundamentals 10X Principle: Set Direction • Stages of team development meetings • Technical management fundamentals Feature Selection • Guidelines for team members and leaders • Creating team charters with the RULER model • Quality fundamentals • Pareto analysis • Self-Assess your teamwork skills • Identifying desired steady state with the RULER • Your organization’s bare essentials • T-shirt sizing • Action Plan charter 10X Principle: Seek Ground Truth • Rolling wave planning Leveraging Diverse Personalities to Form High • Identifying necessary transitory states with the • Daily build & smoke test • Product backlog Performance Teams RULER charter • Project tracking 10X Principle: Attack Uncertainty • Personality types • Action Plan • Communicating status • Responses to uncertainty • Social Style test High Performance Communication • Root cause analysis • Risk management • Interpretation of Social Style test results • Elements of high performance communication • Change control–Agile and plan driven • Accurate estimates • Drivers (Lions) • Preparing for difficult conversations • Gates and checkpoints • Uncertainty and iteration • Expressives (Otters) • Five step guide to addressing conflicts • Evidence-based case study 10X Principle: Minimize Unintentional Rework • Amiables (Golden Retrievers) • Crucial Conversations 10X Principle: Base Decisions on Data • Why would any rework be intentional? • Analyticals (Beavers) • Making a plan for a Crucial Conversation • Plan-Do-Check-Act • Early defect detection • Personality substyles • Succeeding with presentation to executives • Measurement • Defect removal rates for specific techniques • Communicating with different social styles • Preparing for difficult conversations using • Iteration and incrementalism • Comparison of iterative and sequential defect • Conflict resolution with different social styles Social Styles • How much agility is enough? removal effectiveness • Working in teams with different social styles • Action Plan • Customer involvement • Formal inspections • Action Plan High Performance Collaboration • Power of interactive workshops Supporting Interactions with the RULER High Performance Team Decision Making See complete course description at Model Maximizing Energy and Personal Effectiveness www.construx.com/learn • Three steps to individual self-regulation See complete course description at • Working with self-regulation in others 23 www.construx.com/learn Instructors

Steve McConnell is CEO and Chief at Construx Jenny Stuart is the Vice President of Consulting at Construx Software. Software where he authors books, articles, and blogs, consults, leads Jenny applies her 20+ years of leadership experience in software testing, seminars, and oversees Construx’s software development practices. Steve process improvement, quality assurance, and Agile techniques to helping is the author of several bestsellers on software best practices including companies make dramatic improvements in their software development Code Complete and Software Estimation: Demystifying the Black Art. He processes. She holds a BSEE from the University of Washington, and also serves as Editor in Chief Emeritus of IEEE Software magazine. Steve’s CSDP certification. Jenny is a member of the Computer Society of the areas of expertise include project estimation, IEEE, the Association for Computing Machinery, the American Society for practices, Agile and rapid development methodologies, and outsource Quality, and the Quality Assurance Institute. software management.

Earl Beede is a Senior Fellow at Construx Software, where he designs Steve Tockey is the author of Return On Software, a guide for and leads seminars and provides consulting services on early project- companies that want to maximize their investment in software lifecycle practices, estimation, requirements, quality assurance, contract development. As a Principal Consultant at Construx, Steve focuses on management, and software methodologies. With more than 20 years software project management, estimation, software quality, object- experience in quality assurance, systems analysis, process architecture, oriented development, and distributed object computing. He is a and management, Earl has designed and written software development Certified Software Development Professional (CSDP), and chairs the processes for a wide variety of industries. He is a member of the IEEE CSDP Certification Committee of the IEEE Computer Society. He is also a Computer Society and a coordinator of the Seattle Area Software Process charter member of the OMG, the group that oversees development of Improvement Network. the UML.

John Clifford is a Senior Fellow at Construx Software where he Bob Webber is a Senior Fellow at Construx with over 30 focuses on software development, project management, and team years of software experience delivering innovative products in management practices with an emphasis on Agile practices. With more telecommunications, entertainment and life sciences. Bob’s roles have than three decades of IT experience, John has held leadership roles ranged from software developer to executive R&D positions at GTE and as a development engineer, product feature team manager, group QA AT&T, followed by engineering and product management leadership manager, group project manager and development director. John holds at three successful start-up companies. As CEO, Bob led TranSenda Certified Scrum Master, Certified Scrum Product Owner, and Certified International to successful acquisition by BioClinica (BIOC), where he Scrum Practitioner certifications from the Scrum Alliance. became Vice-President of Product Management.

Melvin Perez-Cedano is a Senior Fellow at Construx Software where he focuses on software design, software construction, software process, and configuration management. He has a successful track record transforming dysfunctional and immature organizations into performance and quality-oriented environments. Melvin has deep Endorsed Education experience in Agile practices including code cleaning, refactoring, and ProviderTM unit testing, and is also well versed in UML, RUP, and CMMI. He has lectured extensively throughout the Americas and is a former IEEE Distinguished Lecturer for Latin America. Scrum.orgTM

24