Courses and Workshops

Maximize your visit to Øredev by attending one or several of the many courses and worshops on offer, also held at the conference venue. They will happen on the Monday and Tuesday, 5 and 6 November, before the proper conference launch. These intensives are offered by thought leaders in their fields of expertise and they know of what they speak! Pack your turbo charged learning receptors and get ready to drink in the knowledge.

Courses

Innovation Games 2 day course

This two-day, interactive course, based on the material in Luke Hohmann's Innovation Games book, tackles the challenge of developing customer understanding by providing you with a fresh perspective on how to use a variety of games with your customers to develop the understanding that forms the foundation of innovation. You’ll find that if you use them, you’ll come to understand what your customers really want. You’ll have fun doing it.

Maarten Volders is the founder at Agileminds.be. Challenges in the creative digital economy like accelerating change, knowledge leveling and hyper-competition are forcing organizations to become highly adaptable, endlessly inventive and truly inspiring. A program based on continuous and validated organizational learning makes Agileminds a different kind of innovation accelerator. Maarten is a changemaker, innovator, and rulebreaker. Het just wants to have fun!

 

Raven DB Course 2 day course

In Ayende Rahien's 2-day RavenDB workshop, you will learn how to use this Document Database tool efficiently in your applications to save time and effort on communicating with database storage. During the course we build together a practical application that demonstrates all important data management patterns. Please note that this course is very fast-paced, and expects a minimum of 12 months prior experience working with .NET and C#.

Oren Eini has over 15 years of experience in the development world with a strong focus on the .NET ecosystem. And has been awarded the Microsoft's Most Valuable Professional since 2007. An internationally known presenter, Oren has spoken at conferences such as DevTeach, JAOO, QCon, Oredev, NDC, Yow! and Progressive.NET. Oren is the author of DSLs in Boo: Domain Specific Languages in .NET. Oren's main focus is on architecture and best practices that promote quality software and zero-friction dev.

 

Workshops

Monday
All day

Continuous delivery

In this tutorial we take the unique approach of moving from release back through testing to development practices, analyzing at each stage how to improve collaboration and increase feedback so as to make the delivery process as fast and efficient as possible. At the heart of the tutorial is a pattern called the deployment pipeline, which involves the creation of a living system that models your organization's value stream for delivering software. We spend the first half of the tutorial introducing this pattern, and discussing how to incrementally automate the build, test and deployment process, culminating in continuous deployment.

In the second half of the tutorial, we introduce agile infrastructure, including the use of Puppet to automate the management of testing and production environments. We'll discuss automating data management, including migrations. Development practices that enable incremental development and delivery will be covered at length, including a discussion of why branching is inimical to continuous delivery, and how practices such as branch by abstraction and componentisation provide superior alternatives that enable large and distributed teams to deliver incrementally.

Tom Sulston

Tom works for ThoughtWorks. He is a consultant in the continuous delivery space and also loves the whole DevOps thing. He has previously spoken at Agile and XP conferences on continuous delivery, devops culture, & build pipeline practices. Tom lives in Melbourne, having previously worked for Thoughtworks in the UK, US, Germany, and India.

Rachel Laycock

Rachel works for ThoughtWorks as a Senior Consultant with 9 years of experience in systems development. She has worked on a wide range of technologies and the integration of many disparate systems. Since joining ThoughtWorks she has played the role of developer, coach, trainer, technical lead, project manager, and everything in between! She's fascinated by problem-solving and finds that people problems are more difficult to solve than software ones.

Monday
All day

Raven DB Course (2-day course)

In Ayende Rahien's 2-day RavenDB workshop, you will learn how to use this Document Database tool efficiently in your applications to save time and effort on communicating with database storage. During the course we build together a practical application that demonstrates all important data management patterns.

Please note that this course is very fast-paced, and expects a minimum of 12 months prior experience working with .NET and C#.

Oren Eini / Ayende Rahien

Oren Eini has over 15 years of experience in the development world with a strong focus on the .NET ecosystem. And has been awarded the Microsoft's Most Valuable Professional since 2007. An internationally known presenter, Oren has spoken at conferences such as DevTeach, JAOO, QCon, Oredev, NDC, Yow! and Progressive.NET. Oren is the author of DSLs in Boo: Domain Specific Languages in .NET. Oren's main focus is on architecture and best practices that promote quality software and zero-friction dev.

Monday
All day

Creating User Experiences: An Entry Point for Developers

A new generation of personal devices has changed what users expect from technology. Users now expect better experiences in all the software they use, including business applications. But great user experiences don’t just happen – they are designed. Most developers are very weak in the areas needed for that: fundamental design principles, the design and prototyping process, and user experience patterns.

But there is nothing magical about design, and it is well within the capabilities of most developers to learn the basics. This workshop provides an entry point. Billy Hollis has lived in both worlds, and understands how to explain design concepts in terms developers understand. Using everything from tangible examples to scientific principles of brain wiring to interactive exercises, this workshop is specifically constructed to help developers embrace concepts and processes for creating better user experiences. Whether you work with a designer or have to do it all yourself, whether you are a developer, development manager, or business analyst, these concepts can help you design better business applications, raise productivity, and increase user satisfaction.

Billy Hollis

Billy Hollis is a software generalist, an author and a well known speaker. He has been in the software industry for over 30 years and currently he runs his own consulting practice in Nashville, Tennessee USA, focusing on advanced user interface design and development, rules–based architectures, and healthcare systems.

Monday
All day

Fast Track to Play

This one-day course, designed by Fredrik Ekholdt, a Scala and web application expert, and Peter Hausel, one of the main Play committers, is what you need to quick start web application development with Play 2.0.

It is intended to enable developers who want to consolidate their Scala skills and learn about this great web framework.

The course will center around a web application that you will build from the ground up using Play 2.0. Therefore it is necessary to bring your notebook with Java 6 installed. Code examples and exercises will be written in Scala, so previous experience with Scala is required. Experience with HTML and JavaScript is also a prerequisite.


After having participated in this course you should:

* know how to build fully fledged web applications using Play 2.0
* know best practices for developing web applications using Play 2.0
* be confident to start using Play 2.0 application in production


Program:

* Play 2.0 philosophy and architecture
* Introduction of the application to be created
* Getting started with Play 2.0
* The controller and routing
* Views and templates
* Forms
* Caching
* Working with JSON in Play
* Ajax
* Building non-blocking web applications

Trond Bjerkestrand

Trond is a Scala trainer and consultant at Typesafe. He has a long experience developing web applications and is a firm believer in strong static typing for mission critical web sites. Besides giving trainings and helping customers take full advantage of the Typesafe Stack Trond is co-founding Groosker.com, a new approach to Internet payment. Before joining Typesafe he co-founded SpendChart.no and worked as a consultant at Accenture.

Monday
All day

Performance in a Large Scale Cloud

This tutorial will focus on what the participants prefer. Any two-three of the following areas regarding Performance in a large scale cloud can be covered with real experiences from Facebook.
Large scale means: more than 1 data center, more than one cluster/data center, more than 10K machines, more than 10 MW of power
What does performance mean: client-side performance is not the topic of this session, server-side, cluster/data-center side (including all comprising pieces) is, reliability, availability and scalability are included
Performance Monitoring: Why - cannot test extensively, need to react/fix problems quickly, Where - every server, every switch, every load balancer, etc., How - no need to save all the data. data != information
Monitoring Part 1 - live demo of dynolog demon: per second data, 300 seconds kept in memory, averages sent to central store, data easily available for collection and analysis
Monitoring Part 2 - Live performance testing: demo instant dyno, principle: control the load on some machines, keep the load at different levels, use existing monitoring to get information
Information: how many users can we serve and at what level, is there a problem, what should be done about it
Smart deployment guards against service/product failures
Performance Analysis - Part 1: find system performance graphs, find what resource is being exhausted, best case scenario - exhausting CPU, memory, disk, network, worst case scenario - system is "latency bound", demo analysis graphs and data for two production systems
Performance Analysis - Part 2: unix based tools: vmstat, isostat, top, ps, strace, php, /proc, several good reference books for optimizing Linux performance, additional tools for analyzing VMs, etc.
Benchmarking: why - because it can identify performance degradation in code as they are made, where - any piece of code that is sensitive to performance or cost, how - many open source tools: JMeter, grinder, FunkLoad, OpenSTA, etc., should run on a nightly basis, results should be analyzed by a human.
Capacity Planning: goal: make sure there is enough capacity to support new features, new users and code degradation, requires planning at least a year ahead, gating factor is (usually) power available

Goranka Bjedov

Goranka Bjedov works as a Capacity Planning Engineer at Facebook. Her main interests include performance, capacity and reliability analysis. Prior to joining Facebook, Goranka has also spent five years performance testing at Google and worked for Network Appliance and AT&T Labs. Prior to that she was a professor at Purdue University. A speaker at numerous testing and performance conferences around the world, Goranka has authored many papers, presentations and two textbooks.

Monday
Morning

Making Test Automation Work in Agile Projects

Agile teams must deliver production-ready software every four-, two-, or one-week iteration – or possibly every day! This goal can’t be achieved without automated tests. However, many teams just can’t seem to get traction on test automation. The challenge of automating all regression tests strikes fear into the hearts of many testers. How do we succeed when we have to release so often? By combining a collaborative team approach with an appropriate mix of tools designed for agile teams, you can, over time, automate your regression tests and continue to automate new tests during each programming iteration. Lisa Crispin describes what tests should be automated, some common barriers to test automation, and ways to overcome those barriers. Learn how to create data for tests, evaluate automated test tools, implement test automation, and evaluate your automation efforts. An agile approach to test automation even helps if you’re a tester on a more traditional project without the support of programmers on your team.

Lisa Crispin

Lisa Crispin is the co-author, with Janet Gregory, of Agile Testing: A Practical Guide for Testers and Agile Teams (Addison-Wesley, 2009), co-author with Tip House of Extreme Testing (Addison-Wesley, 2002), and a contributor to Experiences of Test Automation by Dorothy Graham and Mark Fewster (Addison-Wesley, 2011) and Beautiful Testing (O’Reilly, 2009). For more about Lisa’s work, visit www.lisacrispin.com. @lisacrispin on Twitter, entaggle.com/lisacrispin

Monday
Afternoon

Session Based Test Management using Mindmaps

I was successful with freestyle exploratory testing but when I tried SBTM, the first few times I looked like a failure. After introspection, I found, I didn't make it my own. I made it work for me. I claim to know the secrets (there are none) to make it work for others and have been helping testers to use them effectively in the projects they work.

I wish I could have used a mindmap to explain what will be covered in this workshop :) Bring on your laptop/iPad/Tab with any mind mapping software installed on it to experience SBTM using Mindmaps.

Here are things that would become obvious to you during the workshop:

* Exploratory Test Management
* Session Based Test Management
* Mind mapping and harnessing its power to make SBTM super easy

As you practice these things over, you would be able to

* Plan and run exploratory testing for your project
* Make yourself and your team highly accountable
* Control the trajectory of your project
* Have answers to many questions that bother you
* Get completely away from scripted testing
* Manage test projects better
* Show real value to clients by more wider and deeper coverage


I am going to set the ball rolling for you

* Making you experience how to do it
* Allowing you to make the mistakes you are likely to and help you correct it
* Answer questions that you have in mind
* Practice ET, SBTM and Mindmapping with me in the workshop

Pradeep Soundararajan

Pradeep Soundararajan is a renowned tester from India. He is the Founder & Chief Consultant of Moolya ( www.moolya.com ) a new generation testing services company from India that helps its domestic and international customers to gain high value through through exploratory testing & check automation. Prior to being known as the Founder of Moolya, Pradeep was an independent consultant, coach, author and invited speaker at many conferences worldwide. He blogs at http://testertested.blogspot.com

Tuesday
All day

A practical introduction to Java EE 6

Java EE 6 contains new APIs that revolutionarily change the way you can build enterprise level applications with an even stronger focus on ease-of-development and further reducing the need of boilerplate code and configuration. The result is a strongly simplified programming model, while still keeping enterprise features such as transactions, security, load-balancing and fail-over. In this workshop you will learn to use the APIs together to build a portable, full stack enterprise application and solve real-world problems. We'll not only focus on the APIs but we'll also show you how to set up a vanilla Maven build from scratch and do unit and integration testing going into almost all parts of the Java EE 6 specs. During the workshop we'll also discuss the architectural consequences of this simplified programming model. Do we still need business delegates, transfer objects or DAOs? And what about separation of concerns?

You will learn to use CDI, JSF, EJB, JAX-RS and JP, and write integration tests using Arquillian. During the workshop we will mix theory and hands-on, you will write a complete application yourself.

Paul Bakker

Paul Bakker is an architect for Luminis Technologies. Paul is contributor on several open source projects; for the past year most notably JBoss Forge. He also works on Amdatu, Apache ACE and has contributed to BndTools and several other JBoss projects. He has a background as trainer where he was teaching Java related courses and is still a regular conference speaker on conferences such as Devoxx, JavaOne, JFokus, JBoss World, JUDCon and JFall.

Tuesday
All day

Software Testing Reloaded: An Interactive Workshop

Educational theory tells us time and time again that people learn by doing and observing, yet the majority of test training involves lectures, and, for some reason, PowerPoint. This tutorial is different.

This interactive and participatory workshop will simulate real market conditions for software testing. Just like the real world, there will be schedule pressure, customer pressure, and unclear requirements. Unlike the real world there will be explanations, discussion, sharing, and learning.

You’ll get a chance to see what works by doing it.

The morning will start with an introduction to quick attacks (with some exercises), followed by an introduction to specification-based techniques (with some exercises). In the afternoon, we install, demonstrate, and conduct practical exercises on Fitnesse, an open-source business-level test tool that we will use to create specifications by example.

The workshop closes with whatever else you would like to hear about (email your problems in advance to matt.heusser@gmail.com) and a brief retrospective.

Workshop Objectives:
* A solid foundation in Quick Attacks, a technique you can use to test any software immediately, without a detailed understanding of the requirements

* Analysis techniques for domain testing, designed to help you learn the business logic quickly
A specific, step-by-step process to create and document defects

* Demonstration and exercise on a Fitnesse as a specification by example tool

*Exercises you can take home to do with your team as a brown bag, or to explain testing to larger organizations

Target Audience: Software Testers, Test Leads, Managers, Developers, and people involved in figuring out what "good" and "good enough" means for software quality from all disciplines.

Matthew Heusser

Matthew Heusser has been developing, testing, and managing software projects for his entire adult life. The principal consultant for Excelon Development, Matt is also a contributing editor for STQA Magazine and sits on the board of directors for the Association for Software Testing. In addition to his writing (most recently lead editor for "How to Reduce the Cost of Software Testing"), Matt has recently completed a contract as a part-time instructor for Calvin College in Information Systems.

Tuesday
All day

TDD your Javascript

As the world moves to rich clients on the web, it is easy to treat javascript as "just a quick scripting language." But the language of the web deserves the same respect as any other application-development language. And this means that we should not just write tests, but should also harness the power of test-driven development.
In this full-day workshop, we will dive past a brief overview and look at the tools and techniques for letting our tests truly drive the design of our javascript-based applications. Join Justin Searls in building a real-world client-focused web application using tests to guide us in building maintainable and understandable code.
At the end of the day, you'll be ready to go back to your applications, set up the necessary tooling and start writing tests immediately.

Justin Searls

Justin Searls has two professional passions: writing great software and sharing what he’s learned in order to help others write even greater software. He recently co-founded a new software studio called Test Double, where he’s currently helping clients build well-crafted user experiences for the web.

Tuesday
All day

Workshop Event Sourcing

The workshop looks at Event Sourcing through the eyes of the recently released Event Store project (OSS). We will look at Event Sourcing but also at the Event Store and how it can help simplify your development experience.

Greg Young

Greg Young is a loud mouth about many things including CQRS, Event Sourcing, and getting your tests to do something more than validating your code. He is currently involved with Event Store a functional database geteventstore.com

Tuesday
All day

Mastering Continuous Integration with Jenkins

We assume participants have a reasonable understanding of Java development as well as a basic understanding of the Software Development Life Cycle.

All our courses are above all practical in nature. We believe that the best way to learn is by doing. So the course contains a large number of labs.

This course is an intensive 1-day workshop, with a mixture of teaching and lab exercises. You will learn about how to design and implement an effective Jenkins build environment, as well as some invaluable tricks of the trade. The basic course program is outlined here:

1. An introduction to Continuous Integration (CI) principles
2. What you need to implement CI
3. CI-friendly development practices
4. Setting up a Jenkins server
5. Continuous Integration build strategies and best practices
7. Automated testing
8. Automated code quality audits
9. Automated reporting on project status and statistics
10. Integrating Jenkins with your issue management system
11. Using distributed builds to speed up the build process and to run environment-specific build jobs
12. Applying Jenkins to large projects - using CI on with large teams or multi-team projects, with multiple evelopment/integration SCM branches,...

Kohsuke Kawaguchi

I’m Kohsuke Kawaguchi. I’m a software engineer who enjoys writing code and solving problems. I have been working on a large number of open-source projects. I am probably best known as the creator of Jenkins, a continuous integration server. My projects span many different areas of the technology, but my main interest is around developer tools, XML, and web services in Java.

Tuesday
Morning

Vim masterclass

In Vim, we can duplicate a line from normal mode, insert mode, or with an Ex command. But which is best?

In this masterclass, we’ll work through a series of exercises, finding at least two solutions to every problem. In response to the question “which is best?” we’ll see that the answer is always: “it depends”.

Vim is optimized for repetition. We’ll study a few examples of how to use the dot command to repeat the last change. Then we’ll develop a strategy for composing repeatable changes, and meet the optimal Dot Formula: a two step solution with a thousand uses. We'll also study best practices for creating robust macros, and learn how to execute them either in series or in parallel.

To level the playing field, we’ll be using bare Vim (not vi - we’re not savages). You’ll be asked to leave your .vimrc at the door.

Drew Neil

Drew Neil is an independent programmer, writer, and trainer. He runs workshops around the world, speaks regularly at conferences, and specializes in making educational screencasts. At vimcasts.org, he publishes articles and video tutorials about Vim. He is the author of the Pragmatic Bookshelf title, Practical Vim.

Tuesday
Morning

Windows 8 development with XAML/C#

Windows 8 is without a doubt an intriguing opportunity for every developer. For people with prior WPF, Silverlight or Windows Phone experience, this is the continuation of a journey started in 2006 in the XAML landscape. For others, the learning curve is steeper but made easier by the active community in these platforms. Windows 8 however comes with some unique particularities, making it sometimes challenging to transition to this new platform.

In this workshop, Laurent Bugnion, a XAML expert and enthusiast since the early days will help you to get started in Windows 8 development. We won't stop there however, and we will quickly dive into advanced topics. From networking to sensors, from best practices to visual tools, this half-day should give you a kickstart in the Windows 8 world.

Laurent Bugnion

Laurent works as Senior Director for Europe for IdentityMine, one of the leading companies for Microsoft technologies such as Windows 8, WPF, Silverlight, Microsoft Surface, Kinect, Windows Phone 7 and generally User Experience. He is based in Zurich Switzerland, where he lives with his wife and his two daughters. 2012 is his 6th year as a Microsoft MVP (Silverlight). He is also the author of the open source toolkit MVVM Light, and of the "Silverlight Unleashed" books.

Tuesday
Afternoon

Rediscovering Modularity with Restructure101

The principles of modularity have been applied to engineering projects since Gorak built the wheel, and Thag the barrow of the world’s first wheelbarrow. Thag’s barrow didn’t care that the wheel was first hewn from rock, and later upgraded to a lighter, wooden one, and the same wheel design was reused for the world’s first chariot.

Analogous abstraction techniques are taught in Software Engineering 101 – information hiding, interfaces, clear responsibility, high internal cohesion, low external coupling, etc. We apply these routinely as we develop and continuously refactor the code encapsulated within classes.
However when the number of classes reaches some limit (Bob Martin has suggested 50 KLOC), higher level abstractions are needed in order to manage the complexity of the growing codebase. This limit is usually overshot, and the team is soon drowning in an ocean of classes. It is time to organize the classes into a hierarchy of modules, or watch the team’s frustration continue to rise, and productivity plummet.

“Refactoring” aims to make the code more readable, often with fairly invasive editing of code. This tutorial describes strategies for “restructuring”, where the goal is to make the entire code-base easier to understand, with only light impact on the code logic itself. These strategies have been developed while helping many development teams to restructure their codebases.

The Java package construct is used to realize the new structure, though the same strategies can be applied by using e.g. namespaces in C#, filesystem directories in C/C++, or even to define a structure that is maintained in parallel to the physical code.

Cyclic dependencies dramatically increase the overall connectedness of a code-base, and the construction of an acyclic compositional structure, or “levelization” (Lakos, Knoernschild), is a key first step in modularization, and this is used as a focus for the turorial.

The “top-down” approach aims to retain the existent packaging as far as possible. This involves the removal and reversal of inter-package dependencies so as to remove undesired and “feedback” dependencies. This preserves the team’s familiarity with the package structure, but can be very difficult if the package structure has become excessively tangled.

The alternative is to rebuild the package structure “bottom-up” by identifying cohesive clusters of classes which exhibit relatively low coupling with other clusters, and recursively “wrapping” these into packages. Where the starting package structure is very complex, this can lead to better modularity in a shorter time than the top-down approach.

Both approaches are typically applied to varying degrees; the initial structure is preserved in regions where the inter-package relationships are relatively orderly and the packages encapsulate reasonable design abstractions, and the structure is rebuilt where it is highly complex or provides poor abstraction.

Examples of the strategies that will be covered:
1. It is important to identify any large class tangles (sets of cyclically-dependent classes) early on, since it is not possible to create a levelized package structure for these. If the tangle is not too big, and the classes it contains do not span a very wide range of the ideal dependency levels in a code-base (e.g. tiers), the tangle can be isolated in a single package, otherwise it must be broken up into smaller tangles that can be so isolated.
2. The minimum feedback set (MFS) is the smallest set of dependencies within a graph whose removal would make the graph acyclic. Light-weight dependencies (ones that involve relatively few code references) that are also in the MFS are often accidental, and are good candidates for removal or reversal.
3. An item is only held within a tangle if it is both used by and uses other items in the tangle. This makes items with relatively few incoming or outgoing dependencies easier to release from a tangle.
4. Sometimes an item will contain disconnected sets of sub-items such that each set has different dependencies with external items – dividing such items reduces the granularity of dependence, and can make disentanglement easier.
5. The least invasive changes include the relocation of static methods between classes, or the relocation of classes between packages. For example, moving classes from the top levels of one package into a package at a higher dependency level, or classes in the lower levels of one package down to lower packages, can remove feedback dependencies with a simple change to the import statements. Low impact changes should be tried before higher-impact changes that require more invasive code editing or redesign.

The application of these and other strategies will be illustrated with concrete examples.

Chris Chedgey

He has an MSc. in Computer Science from Trinity College Dublin. He has 28 years of experience in commercial software development, notably on large military and aerospace projects in Canada, including 5 years on the International Space Station project. Co-founder of Headway Software and designer of the JOLT winners Structure101 and Restructure101, he has 2 lovely daughters in college and lives on the south-east coast of Ireland.

Tuesday
Afternoon

Git Workshop

Git is a version control system you may have been hearing a bit about lately. But simply hearing more about it may not be enough to convince you of its value. Getting hands on experience is what really counts. In this workshop, you'll bring your Windows, Mac or Linux laptop and walk through downloading, installing, and using Git in a collaborative fashion.

The workshop style of this class will allow you to observe and discover the value of this new version control tool first hand. You'll be cloning, creating, and committing to repositories by the conclusion of this session.

Tim Berglund

Tim is a full-stack generalist and passionate teacher who loves coding, presenting, and working with people. He is a speaker internationally and on the No Fluff Just Stuff tour in the United States, and is co-president of the Denver Open Source User Group, co-presenter of the best-selling O'Reilly Git Master Class, co-author of Building and Testing with Gradle and a member of the O'Reilly Expert Network. He lives in Littleton with the wife of his youth and their three children.

Wednesday
Morning

Just in Time Testing Tutorial

This tutorial takes place at Øredev on Wednesday and requires special registration. Please register normally for the Øredev conference. In addition, please send an e-mail to test-ws@oredev.org.

Dealing with Software Project Turbulence
Turbulent development projects experience almost daily requirements changes, user interface modifications, and the continual integration of new functions, features, and technologies. Keep your testing efforts on track while reacting to changing priorities, technologies, and user needs. This interactive workshop offers a unique set of tools to help you cope with—and perhaps even flourish in—what may seem to be a totally chaotic environment. Practice dynamic test planning, test idea development and test triage.

Getting Ready for Almost Anything They Can Throw at You
Learn to identify, organize, and prioritize your testing “ideas”. Adapt the testing focus as priorities change. Decide on purpose—what not to test not just because the clock ran out!

Real Techniques Proven in Real Projects
Just-In-Time Testing (JIT) approaches are successfully applied to many types of software projects—commercial off-the-shelf applications, agile and iterative development environments, mission-critical business systems, and just about any Web application. Real examples demonstrate how JIT testing either replaces or complements more traditional approaches. Examples are drawn from insurance, banking, telecommunications, medical, and other industries. The course is packed with interactive exercises in which students work together in small groups to apply JIT testing concepts.

Who Should Attend
This course is appropriate for anyone who works in fast-paced development environments, including test engineers, test managers, developers, QA engineers, and all software managers.

1-Day Course Outline

Introduction

Testing as soon as possible
Testing as late as possible
Basis for Just-In-Time testing
Be prepared-what you need
Exercise: Nature of Testing

Test Ideas
Test ideas-what to test
Usage scenarios and data
Requirements and design documents
Failure modes
Capabilities and domains
Quality factors
Creative techniques
Exercise: Creative test idea generation

Focus Planning and Prioritization
What not to test
Consequences and benefits of skipping
Consequences of implementing
Refactoring tests
Testing triage
Adapting to project context for triage
Exercise: Testing triage practice session

Robert Sabourin

Rob has more than thirty years of management experience, leading teams of software development professionals. A well-respected member of the software engineering community, Robert has managed, trained and mentored thousands of top professionals. He often speaks at conferences & writes on software engineering, testing, management, and internationalization. Author of I am a Bug!, the popular testing children’s book, Robert is an adjunct prof at McGill University & runs the consultancy AmiBug.Com