Presentation: "The Agility Cube: Six Faces of Agile Development"
Track:
What Makes Agility Work?
Time:
Tuesday 13:00 - 14:00
Location:
Conference Hall 2
Abstract:
Agile development is a phrase that it appears no buzzword-compliant software development project can be without. However, it is a proper understanding of the motivation and practices, rather than the buzzword conformance, that makes the actual difference in development.
The notion of agility has differing (mis)interpretations and (ab)use. Sometimes it is used as a synonym for Extreme Programming. By contrast, other people use it to mean a generic notion of something that is not quite Extreme Programming, but may borrow ideas from it. Some developers may label a project agile just based on the occasional use of JUnit. Others may use the label to justify not writing any documentation or to avoid agreeing on scope or delivery dates. To be fair, not all uses of the term are cynical or misguided, but the term has lost some of its potency through dilution.
This session revisits the motivation for agile development, and goes on to explore the wide-range of perspectives that are encompassed by approaches that can claim to be agile, including both technical and non-technical aspects, in the large and in the small. The six faces of agility presented are the practices, organisation, architecture, tools, skill and attitude. And, like a cube, it is all too easy to focus on a couple of the faces without seeing the rest.
Download slides
Presentation: "Five Considerations for Software Architecture"
Track:
Architecture Quality
Time:
Wednesday 14:30 - 15:30
Location:
SAS Dania
Abstract: What general qualities in a software architecture help to promote its
success? We can of course focus on fitness for purpose, cost of change,
organisational acceptance, and so on, but are there broad considerations
that can be kept in mind when looking at the structural and
developmental side of an architecture?
Those involved in software have a lot to keep in mind as they negotiate
the worlds inside and outside of their code and the relationship between
them. For those interested in improving the state of their art there are
many (many) sources of specific recommendations they can use to sharpen
their practice. This talk takes a step back from the busy, overpopulated
and often overwhelming world of such recommendations to focus on five
general considerations that can inform more detailed recommendations and
specific decisions.
Download slides
Tutorial: "Hands-on Agile Development Workshop"
Time:
Thursday 09:00 - 16:00
Location:
SAS Dania
Abstract:
Agile development processes are intended to help developers avoid the
problems of analysis paralysis, big up-front design, rushed testing and
changing requirements. They treat analysis and design as continuous
activities that start early in development but continue throughout,
rather than as segregated phases divorced from other development
activities.
Development is dynamically planned as incremental and iterative. Coding
and testing are considered together and from an early stage in
development. In particular, incremental design, continuous testing and
responsive refactoring make up the programmer-facing discipline of
Test-Driven Development (TDD). The goal of this workshop is to offer
attendees hands-on experience of many of the practices involved in the
construction phase of a lifecycle.
As its title suggests, this tutorial is actually a workshop! Attendees
will learn about the development side of agile development by doing it.
It is based on undertaking four rapid sprints of development, working on
a clearly bounded and well-defined problem. The emphasis is on scope
management, iteration planning, TDD in Java with JUnit, pair programming
and other practices and principles drawn from agile approaches such as
Extreme Programming, Scrum and Lean Software Development, with guidance
and feedback both during and in between iterations. This promises to be
a good learning experience and a good workout for any attendee!
Audience:
Developers and architects with at least basic Java skills. Deep Java
knowledge and TDD experience are not a prerequisite.
Notes:
At least 50% attendees will be required to bring a laptop, so bringing a
laptop as default is considered to be the best option. Laptops will need
to have a common development environment installed, such as Eclipse,
with JDK 5 and JUnit 3.8 or JUnit 4. Time management is important to the running of the workshop, so late arrivals may find that they miss out.