Asprotunity
Asprotunity
Asprotunity
Asprotunity
Asprotunity

Site Navigation

Slides

Methodology Patterns (pdf format)
Agile India 2014 conference, Bangalore
Giovanni Asproni
These are the slides of the talk I presented at the Agile India 2014 conference.

Methodology Patterns (pdf format)
Agile Tour London 2013
Giovanni Asproni
These are the slides of the talk I presented at the Agile Tour London 2013.

Writing Usable APIs In Practice (pdf format)
NDC 2013 conference
Giovanni Asproni
These are the slides of a session I presented at the NDC Oslo 2013 conference. The material is an update of the SyncConf 2013 talk.


Writing Usable APIs In Practice (pdf format)
SyncConf 2013 conference
Giovanni Asproni
These are the slides of a session I presented at the SyncConf 2013 conference. The material is an update of the ACCU 2012 talk.

Writing Usable APIs In Practice (pdf format)
ACCU 2012 conference
Giovanni Asproni
These are the slides of a session I presented at the ACCU 2012 conference. Programmers, explicitly or implicitly, when working on complex systems, end up designing some APIs to accomplish their tasks, either because the product itself is some kind of general purpose library or because they need to write some libraries and packages to put some common code of their applications. There is plenty of information available about how to write clean and maintainable code, but not a lot about writing usable APIs. The two things are related, but they are not the same. In fact, clean code is code that is clean from the point of view of its maintainers, usable APIs, on the other hand, refer to code that programmers (other than the original author) find easy to use. We'll see how usable APIs help in writing clean code (and vice-versa). In this session I will introduce the concept of API usability, explain its importance--e.g., impact on productivity and defects--and show its relation with clean code, as well as some (sometimes surprising) research results from literature. I will also give some practical advice on how to start writing more usable APIs.

Talking Tests (pdf format)
ACCU 2012 conference
Giovanni Asproni
These are the slides of a lightning talk I presented as part of the "Testing a la Carte" session at the ACCU 2012 conference. It uses the metaphor of talking to describe some bad (and unfortunately common) unit testing practices in a humorous way.

Fingers In The Air: A Gentle Introduction To Software Estimation (pdf format)
ACCU 2007 conference
Giovanni Asproni
These are the slides of a session I presented at the ACCU 2007 conference. The process of estimating size, time, effort, etc., is fundamental for the success of every software project. Unfortunately, it is often the case that the stakeholders--including project managers, developers, and users--don't know how to do it properly (and also confuse estimates with commitments), and everybody ends up working against the clock to meet impossible targets, getting poor software late as a result. After a short introduction in which I'll present what can and should be estimated (e.g., time, size, effort, cost, etc.), and give an overview of some techniques, I'll focus on what is necessary to get started with some simple, but very effective techniques.

Scrum: Getting Started Without Getting Burned (pdf format)
JavaPolis 2006 conference
Giovanni Asproni
These are the slides of a session I presented at the JavaPolis 2006 conference. This presentation is an in-depth introduction to Scrum and of some of the problems that may happen during its implementation, along with some hints and tips for their solution.

Simple Simplest, or Simplistic? (pdf format)
ACCU 2006 conference
Giovanni Asproni
These are the slides of a session I presented at the ACCU 2006 conference. Simplicity is a concept that lies at the very foundation of software engineering: simple software is more maintainable, has fewer bugs, has a longer lifetime, etc. In the last few years, the advent of Extreme Programming and agile methods has made simplicity (e.g., "do the simplest thing that could possibly work") even more fashionable. However, simplicity is an elusive concept, and, very often, people confuse it with the first idea they can think of, producing simplistic solutions that eventually lead to unnecessarily complex software. This presentation explores this concept, giving also real-life (good and bad) examples, and highlighting some of the reasons why we continue to produce unnecessarily complex software, and about what we can do to avoid the traps of simplistic solutions.

The Unnamed Process: Doing Agile With C++, Python, And A Tailor-made Process (pdf format)
ACCU 2005 conference
Giovanni Asproni
These are the slides of a session I presented at the ACCU 2005 conference. It is an experience report on the implementation of a custom agile methodology with a particular focus on the human issues involved.

Videos

Writing Usable APIs in Practice Talk at Agile Cambridge 2011
This is the recording of the talk I gave at Agile Cambridge 2011 conference in Cambridge, UK in September 2011

Software Estimation Talk AT Devoxx8
This is the recording of the talk I gave at the Devoxx8 conference in Antwerp, Belgium in December 2008

Articles

An Introduction To Scrum (pdf format) English version, Polish version
Software Developer's Journal, June 2006
Giovanni Asproni
This is a brief introduction to Scrum, a well known agile methodology, written for the Polish edition of this magazine.

How to Shoot Yourself in the foot. In an Agile Way (pdf format)
Overload 71, February 2006
Giovanni Asproni
In this article I describe what, in my experience, are the five most common and dangerous mistakes that can make the implementation of an agile methodology fail, along with some hints about how to avoid and/or fix them.

An Experience Report on Implementing a Custom Agile Methodology on a C++/Python Project (pdf format)
Overload 64, December 2004
Giovanni Asproni, Alexander Fedotov, Rodrigo Fernandez
This is an experience report on implementing a custom agile methodology in a (successful) real-life project. Introducing a new methodology--and more generally, any kind of change--in an organisation may create several technical, human, and political problems. In this article, we describe the choices we made in order to minimise their occurrence, and how we managed to solve the ones we faced. Finally, we give an assessment of the results of our approach, including what worked well and what we would do differently the next time in similar circumstances.

Motivation, Teamwork, and Agile Development (pdf format)
Agile Times, Vol. 4, February 2004
Giovanni Asproni
Motivation has been recognized as the most important factor for productivity and quality. Nowadays, most software is developed by teams, so this article takes the approach of showing the strong connections between motivation and effective teamwork, and then showing how agile development methods are related to the latter.

Speaking at

Books