Bonus Double Sessions
There will be 4 bonus interactive workshops this year at Agile on the Beach, all double sessions
- Education for Engineers – Robert Chatley, Develogical Ltd / Imperial College London
- How to bring your personas to life without needing an exorcist… – Michael Rawling, Unruly.co
- TDD as if You Meant It – Keith Braithwaite, Zuhlke Engineering Ltd
- Are projects agile? – Andy Longshaw, LexisNexis
Develogical Ltd / Imperial College London
Education for Engineers
Interactive workshop (no computer)
Level : Intermediate
How can we best design education programmes that prepare students to be effective software engineers in the modern world? What do they need to learn? How can we teach these things? Can we use the same principles to develop effective training and development programmes for professionals?
We will present how we applied principles and tools from agile methods to a university software engineering course – what worked and what didn’t.
We will draw on the expertise and experience in the room to discuss the most important things for people to learn to work effectively in software development, and then try to design new possible course structures to address these.
Many university degree programmes provide students with a solid grounding in the theoretical basis of computing, but it is difficult in a university environment to provide training in the types of software engineering techniques and practices, such as agile methods, that are commonly used in industrial development projects. There is typically a large gap between theoretical knowledge and practical experience.
In this session we will present how we have developed a programme that aims to bridge this gap, providing students with practical experience of relevant skills for industrial software engineering careers. We will give examples from courses at both Imperial College and Oxford. We are aiming to create courses that are practical and industrially relevant, but built on the fundamentals of computer science and rigorous engineering.
The first part of this session will be a talk giving some reflections on trying to improve the quality of a university course. Taking inspiration from modern ideas on lean and continuous delivery, we tried to adapt the course to provide higher quality learning, and give more value to the time the students spent studying. Universities are traditional organisations with long histories of doing things a certain way, and so whilst we had a lot of freedom over the content of the course, changing the format and the delivery methods was a lot harder.
We applied principles and tools from agile methods, aiming to increase the value of the time the students spent studying by providing feedback and learning in smaller batches, aided by automation. On a practical level, we will discuss the use of version control, automated testing, automated build and continuous integration for student exercises, and the effects that this has had. We will also discuss our attempts to teach the value of continuous delivery in larger student projects, the problems we have had with this, and ideas for future improvements.
We will introduce the technique of Reverse Instructional Design, and change to a workshop phase. We will also discuss applying agile techniques and systems thinking to the design of the educational experience.
We will draw on the expertise and experience in the room to discuss (in small groups) the most important things for people to learn to work effectively in software development, and then try to design new possible course structures to address these using the techniques described. To finish we will compile the outputs from the groups.
Robert is a visiting lecturer in Software Engineering at Imperial College London, and at the University of Oxford. Commercially Robert works as a consultant, coach and trainer with a focus on agile development.
Robert’s previous experience includes working at Google, where he was an engineer on the team responsible for their Tv Ads product. He also acted as an agile coach and conducted training in agile development in Google’s offices throughout the EMEA region. Before joining Google, Robert worked as a technical lead at Kizoom, one of the earliest companies in the UK employing XP at scale. He has chaired the XPDay conference, and acted as programme chair for the SPA conference. Robert holds an MEng degree in Information Systems Engineering and PhD in Software Engineering from Imperial College London.
How to bring your personas to life without needing an exorcist…
Interactive workshop (no computer)
Are User Personas haunting you? Does your team have trouble using personas because as they seem too intangible? In practice unbelievably unrealistic: insubstantial, unhelpful and eventually ignored? Your project maybe haunted by ghost personas! Lost, walled up behind a stack of documentation, technically now just a whisper in your conscience, a glimpse of users in a corner of your eye…irrelevant…crying for usability where no one can hear them?
User Personas really help ground product teams in genuine data, freeing them to have productive user-centric conversations with stakeholders that shift away from debating personal opinions into decision-making, based on proven user research – but personas can be quite hard to assemble realistically: almost seeming like a Dark Art. In todays Lean and pressured environments they often get created too quickly on a shallow basis from vague data or stakeholder opinion, leading your product in entirely the wrong direction.
Continuing an ongoing theme, Mike Rawling, a ux veteran of many apocalyptic projects, will share the latest user research techniques being used today, combined with tried and tested experience of how you can work with personas in a pragmatic way that fits into the world of digital development – without compromising either UX or your XP, Agile or Lean principles.
Attendees will come away from this session with an understanding of qualitative user research and be able to revive their User Personas in your Agile/Lean/XP process so they continue to serve as a useful reference for you, your team and stakeholders throughout the life of your product. The session will end with awards including most life-like persona of the day!
Cleanse your product of ghost personas!
Michael Rawling is the Lead Product UX at Unruly Media, a social media video company.
Mike’s professional experience in UX and UI development dates back to 1998 and since then has explored new ways of more effectively realising the massive potential that technology offers and that each product starts with. He has consulted on, designed, engineered and led such teams and initiatives for Konami, Wiley Publishing, UK’s National Lottery, Tesco.com,, LoveFilm and Granada/ITV-UK and Toyota.
Mike is @hedshot on Twitter and takes a lot of photos.
Zuhlke Engineering Ltd
TDD as if You Meant It
Interactive workshop (bring a laptop)
TDD is a core Agile technical practice but too often done poorly. It is rare to see practitioners really let the Tests Drive Development, but that’s the key: designs evolved through TDD seem to be measurably different from designs created in other ways. In this session attendees will experience first-hand how a solution can evolve through TDD. They can take this experience back to their day jobs to inform more effective deployment of TDD in iterative, incremental, evolutionary development.
TDD is a core Agile technical practice but too often done poorly. A common failure mode is for developers to do some design thinking, write a bunch of tests which assert that the imagined design should exist and then make them pass. This often produces disappointing results, and even in the hands of a very good designer of software it misses the benefit of TDD.
It is sadly rare to see practitioners really let the Tests Drive Development, but that’s the key: designs evolved through TDD seem to be measurably different from designs created in other ways. In this session attendees will experience first-hand how a solution can evolve through TDD, and will reflect on how the solutions found by the group are different from the solutions one might imagine creating in the more usual way.
Working in pairs they will address a small but non-trivial programming problem using a modified TDD cycle which forces them to allow the design to evolve through refactoring in response to the accumulation of tests, one at a time. Pairs will be encouraged to check in to a public repository very frequently so that the incremental development of their design can be examined.
Attendees can take this experience back to their day jobs to inform more effective deployment of TDD in iterative, incremental, evolutionary development.
This session is marked as “advanced” not because the problem addressed is a hard one it isn’t. And not because the tools used are advanced, they aren’t. And not because the technique used is tricky to understand it isn’t. But because it turns out that this exercise often requires a surprisingly difficult change in thinking about programming, design and TDD. A change that is perhaps most difficult for developers who think of themselves as already expert in programming, design and TDD.
Keith Braithwaite is a Principal Consultant and Director of Customer Solutions at Zuhlke Engineering Ltd. He manages their Manchester office. He was one of the early adopters of eXtreme Programming in the UK and a well known promoter of Agile development. He blogs at http://cumulative-hypotheses.org/
Are projects agile? – Andy Longshaw, LexisNexis
Interactive workshop (no computer)
Most good software has a long life and evolves continuously, keeping pace with the needs of its users whereas, a project is a temporary structure. Some agile software projects have succeeded, and some have failed. What is it that differentiated those that succeeded from those that failed? Do projects even make sense in a truly agile software development context?
Good software provides value and benefit to its users. Most good software has a long life; and most good software evolves continuously, keeping pace with the needs of its users.
By contrast, a project is, by definition, a temporary structure created to manage and deliver a specific goal. Some projects that were run using agile software development techniques have succeeded, and some have failed. What is it about the context, team structure and governance of those that succeeded (and what was their definition of success) compared to those that failed? Do projects even make sense in a truly agile software development context?
This workshop will ask participants to explore whether projects are a good fit for software development. Participants will work in small groups to exchange thoughts and ideas, build them into a coherent viewpoint and present them back to the other groups.
Andy is a pragmatic software developer who unfortunately has tended recently to end up in roles like development manager. He has worked for many companies from a large multi-national through to a 4-person startup but is getting to the age where he is beginning to forget half of them.
He has been very fortunate that some thoughtful and intelligent people have spent their time helping him to learn some really useful and interesting stuff so he tries to give some of that back when he can.
View more sessions