The Accounting Challenge

Francesco's Challenges are journeys in which Francesco, you and the other participants will develop one or more features of a real application. Francesco will lead the development of the feature to be created and show the participants how he makes software design decisions, how he applies principles and tools, why he chooses one pattern over another one and why he prefers specific practices in specific contexts.

The Accounting Adventure came about in a strange way. A sort of challenge for an activity of our training which was not as easy as our participants expected and which had took them by surprise. A very good learning opportunity. In the SDE the Composite Pattern everything was clear for participants: not only simple things like the intent, the structure, the dynamics of this pattern, but also advanced issues like several variations of this pattern, possible combinations of that pattern with other patterns and even how the Composite pattern could evolve into a combination of different Patterns. It was in the moment of applying the pattern in the Anti-IF Composite Pattern Workshop that things turned out not to be simple for the participants.

The stories chosen to be developed in that workshop didn't require a simple and straightforward application of the pattern. In order to solve those stories, you need to think, work in an adaptive and incremental way, let emerge a possible variation of the Composite pattern, or maybe something different: a combination of patterns able to solve that problem in an effective way.

Hence the idea of creating the Accounting Adventure to show the participants how to do it.

Develop One Object at a Time, One Pattern at a Time

About this Challenge

The Accounting Adventure is based on a series of requests from our friend Marc.

  • Marc wants to keep track of his finances and asks us to produce a series of reports from the csv file with the collection and payment transactions he exports from his bank.
  • Marc tells us a set of rules in order to assign the various transactions to the different categories of costs and revenues. He also tells us the aggregation rules for some of those categories into other higher level categories. An asymmetrical hierarchy of categories: there are more hierarchical levels in cost than in revenue categories.
  • Marc wants us to generate some reports for him. The first report he asks for is to show the total debit, credit and balance for his costs and incomes, for the top level categories (only the second and third level - if it exists) and the total profit or loss (the difference between total income and total expenses).
  • Other requests from Marc will follow, which we cannot foresee. Things like: getting a report for a certain period of time or cost centre (transactions are reorganised by "tags"), or being able to export the report obtained in a format readable by a spreadsheet, or something else...


About the Trainer

Francesco Cirillo

Francesco Cirillo has worked at the forefront of the software industry for more than 30 years. In a career spanning startups, corporations and freelance consulting, he has mentored thousands of professionals, developers, managers and software teams.

In the 1990s he worked as a Senior Consultant and Mentor for Sun Microsystem, expert in Software Architectures and Software Development Processes and Java and Object-Oriented Evangelist.

Francesco is one of the pioneers of Agile Methods. He started working on XP and TDD in 1999. He was chosen by Kent Beck to develop the XP community in Europe and as reviewer of the second edition of the book Extreme Programming Explained. In 2000 he created XPLabs, the first company in Europe to offer comprehensive services on XP: software development, training and consulting.

In 2007 he created the Anti-IF Campaign to raise awareness in the international community of software developers to apply good design principles to grow software in a sustainable way.

Since 2008 Francesco stopped actively working on Agile Methods and started to develop RRP, a new method of software development. In 2013 he created Cirillo Consulting based in Berlin to offer professional training and consulting on productivity and software development.

Francesco invented the Pomodoro® Technique, a renowned time-management method used by millions of people all over the world, while being a university student looking for a way to get more done in less time.

Read the Francesco Cirillo's complete profile.

Upcoming Sessions

Here you can find the next sessions of this series:

Can't make it on any of our dates?

We can discuss other options with you


Useful Resources

The Accounting Adventure Journal - Episode 01: The Challenge

The following is the report of the first session of the Accounting Adventure. The time is 31 March 2021 at...

The Accounting Adventure Journal - Episode 02: Emergent Design

The following is the report of the first session of the Accounting Adventure. The time is 27 April 2021 at...


Do you have a question not listed here?

Pomodoro® Web App

The Pomodoro® Timer Web App will be your time tutor and help you stay focused so you can get more...

Pomodoro® Sheets

To help you get started, check out the official templates of the Pomodoro Technique that you can download and print....

Pomodoro® Training Programme

Interruptions and procrastination are one of the most dangerous productivity killers. How to deal with the Predator while we're working...