Turku Agile Day

Agile Testing Journey

Effective testing should be an integrated part of agile development. Various agile testing practices, such as ATDD, TDD, and exploratory testing, have been introduced. In practice it's not clear how to combine these effectively. Agile testing requires various skills and has to be done in parallel with development. Right balance between information, cost and feedback time is needed to achieve this. In this workshop we explore the testing activities required to get the feature done. We try in practice defining specifications by example, test automation and exploratory testing. We also look into how to improve based on the information gotten from testing.

This workshop consists of exercises and group discussions. We will do ATDD session, implement automated tests and have exploratory testing session.

Learning goals:

  • How to do effective testing by combining different practices
  • Costs and risks involved with different practices
  • Selecting suitable testing approaches for different problems
  • How to improve based on the information received from testing
  • Overall view of agile testing

Intended audience and pre-requisites:

Understanding of ATDD (Acceptance Test Driven Development) and exploratory testing. No need to master in practice, but should be familiar with the concept. Should have seen code before and implemented Hello World with some language. No need to be a developer. Intended for those who would consider themselves as agile team members (eg. developers, testers, business analysts).

Regex - The future programmer's best friend

There are many popular myths concerning regular expressions (Regex). First, it's exceptionally hard to master Regex. Second, a normal programmer rarely needs Regex. Third, Regex are tricky to read and hence can't be maintained.

That is all wrong!

IDG media recently listed what knowledge will be most requested in our business ten years from now. In first place was Analyzing data. They explain: "Around 35 new petabyte data will be created every year after 2020. That's comparable to a DVD stack from earth to the moon and back again." Do you want to be one of the requested experts?

Regex is based on a very simple mathematical theory. With just three plain operators – AND, OR and star – we can describe all state machines (FA) and catch almost any text pattern. The rest is supplementary. Many programmers first studied and then practiced Java, C#, Ruby or Python for years. But, how much time did we spend on learning and writing Regex?

Java, C#, Ruby and Python are a strongly typed languages with excellent support for object orientation. However, data from files, user input, and databases are often untyped. Regex instantly and elegantly translates the untyped data into typed data. We can easily find, interpret, replace, and filter. Regex is seamlessly integrated as an external DSL. And, we can even test drive Regex development with xUnit.

No prior Regex knowledge is required for this very practical session. Expect live coding and mini exercises, when Staffan reveals the secrets. Maybe it wasn't that hard to understand Regex? Maybe Regex can be maintained when we automate testing? Maybe there is a need for Regex in every single program?

Staffan gives you the answers.

New Tools of the Craft

An exploration of necessary tools for effective collaboration in agile teams.

Getting value through an iterative and incremental process with a high level of uncertainty and a dependence on early and quality feedback requires more than just a task board, some cards and a secret handshake.

The promise of agility in teams and organizations requires changes in attitude, values, beliefs and behaviors. These changes need new tools that are by no means commonplace in the general world of business and are rarer still in the software domain.

In this session, Mike Sutton and Pierluigi Pugliese will take participants through an immersive experience centered around a real Agile project using Scrum. As they work towards building a potentially shippable product, participants will experience, first hand, some of the most common dysfunctions in agile implementations.

Mike and Pierluigi will help participants learn some interesting techniques to help correct these dysfunctions and facilitate follow up discussions to unpack the motivations and mechanics of such techniques to help them gain deeper understanding.

Borrowing and adapting from such schools of knowledge and practice ranging from Systemic coaching, Solutions Focused, Theatre Improvisation, Clowning and Open Space Technology, Mike and Pierluigi will invite the participants to experience techniques that can change the value they get from being in a team, their work and transform the value they bring to their organizations.

Reclaim your legacy systems - A deeper dive with the Mikado Method

For any code base there comes a time when you want to change it. If your changes are extensive, it’s easy to get lost in a jungle of dependencies, or on a sea of broken code. Ultimately, you might just give up and stove it away under the legacy label.

Instead, come learn The Mikado Method (http://mikadomethod.wordpress.com), a systematic approach to reclaim your code. It helps you visualize, prepare and perform business-value- focused changes, while delivering, and without having a broken code-base in the process. It enhances team communication, collaboration and learning, and helps individuals stay on track.

Intended audience:

Anyone who wants to get some serious hands-on practice on how to work their way out of messy code while keeping the delivery frequency and business-value focus.

Prerequisites:

  • Previous experience of ill-structured code
  • Intermediate Java or C# development skills
  • Some experience with ‘classic’ refactorings
  • Some knowledge of design principles (SOLID/Low coupling-High cohesion).
  • Laptop with development environment for Java. The kata is also available in C#.