Sotware Delivery

Software Craftmanship Videos & Slides 2014

JBRainsbergerSoftware Craftmanship Keynote

J. B. (Joe) Rainsberger, Canadian software development consultant and technology writer will be joining us at Agile on the Beach 2014 to deliver our Software Craftmanship Keynote

Keynote Slides  //  Video http://echo.falmouth.ac.uk:8080/ess/echo/presentation/cbb8e745-bb4d-4fb3-890f-ae895f1f3551

Please be aware that the echo.falmouth video hosting of the keynotes / software room is not in our control and it may not work on some OS/browser combinations (eg android phones).  Sorry for any of those effected who may have to find an alternative device for viewing

Thursday Software

Please be aware that the echo.falmouth video hosting of the keynotes / software room is not in our control and it may not work on some OS/browser combinations.  Sorry for any of those effected who may have to find an alternative device for viewing

Session Descriptions and Speaker Details

simonbrown-300x300Simon Brown – Agility and the essence of software architecture

Synopsis :: This session will explore the importance of software architecture, before introducing some lightweight techniques to bring the essence of software architecture back into an agile environment.

We’ll look at creating a shared vision within the development team, effectively communicating that vision and managing technical risk. I’ll also share the strategies that I’ve used to introduce these techniques into agile teams, even those that didn’t think that they needed them!

On one hand the software development industry is pushing forward, reinventing the way that we build software, striving for agility and craftsmanship at every turn. On the other though, we’re continually forgetting the good of the past and software teams are still failing on an alarmingly regular basis.

Software architecture plays a pivotal role in the delivery of successful software yet it’s often neglected. Whether performed by one person or shared amongst the team, the software architecture role exists on even the most agile of teams yet the balance of up front and evolutionary thinking often reflects aspiration rather than reality. By steering away from big up front design and ivory tower architects, many teams now struggle to create a consistent, shared technical vision to work from. This can result in chaos, big balls of mud or software that still fails to meet its goals, despite continuous user involvement.

This talk will explore the importance of software architecture and the consequences of not thinking about it, before introducing some lightweight techniques to bring the essence of software architecture back into an agile environment. We’ll look at creating a shared vision within the development team, effectively communicating that vision and managing technical risk. I’ll also share the strategies that I’ve used to introduce these techniques into agile teams, even those that didn’t think that they needed them. Expect collaboration, sketching and plenty of gamestorming.”

software-craftsmanshipBiography :: Simon lives in Jersey (the largest of the Channel Islands) and works as an independent consultant, helping teams to build better software. His client list spans over 20 countries and includes organisations ranging from small technology startups through to global household names. Simon is an award-winning speaker and the author of Software Architecture for Developers – a developer-friendly guide to software architecture, technical leadership and the balance with agility. He still codes too.

Steve FreemanSteve Freeman – TDD: That’s not what we meant

Test-Driven Development (TDD) has been so successful that it’s now unfashionable. But many developers complain that being required to write tests just gets in the way of shipping features. That wasn’t our experience when we first stumbled onto TDD a dozen years ago, so what went wrong? Were we fooling ourselves, or did the message get confused along the way?

In this talk, I will revisit the basics, the essence of what makes TDD work. I will look at some of the common difficulties that I see

software-craftsmanship Biography:: Steve Freeman, author of Growing Object Oriented Software, Guided by Tests (Addison-Wesley), was a pioneer of Agile software development in the UK. He has developed software for a range of institutions, from small vendors to multinational investment banks. Steve trains and consults for software teams around the world. Previously, he has worked in research labs and software houses, earned a PhD (Cambridge), written shrink-wrap applications for IBM, and taught at University College London. Steve is a presenter and organiser at international industry conferences, and was chair of the first London XpDay.

agile026riverbladelogoAnna Jayne Metcalfe from Riverblade confirmed to host lunchtime software craftmanship session again this year

 Agile Warning Policies

Used effectively, code analysis tools can help a team to dramatically improve the quality of their code.

But let’s face it – no matter what they say, most organisations are pretty useless when it comes to code quality. Even those who do really care often mess it all up by going about things in completely the wrong way – and making use of code analysis tools to identify and fix bugs and address quality issues is certainly no exception.

This session is a follow-up to the “Code Analysis in an Agile World” session I presented at Agile on the Beach last year, in which I aim to expand upon one of the subjects we get asked about most – how teams within any type of organisation can define (and evolve) realistic warning policies when analysing a codebase for bugs, gremlins, talkie toasters and other lurking nasties.

software-craftsmanshipAnna is a C++ software engineer and the founder of Riverblade, a Bournemouth based software vendor specialising in software quality tools and development environment integration. Her background is mostly in the engineering sector, where she originally started out as an electronic engineer.

She is obsessive about refactoring, but when she’s not doing that, tweeting or somehow otherwise mucking about with technology she runs, grows chilli plants and collects Belgian beer.

https://twitter.com/annajayne

chrisparsonsChris Parsons – Separating allocation from code: a blob implementation in C++

Separating allocation from code:a blob implementation in C++ Slides PDF
“I’m on an endless quest for speed in my high performance C++ application. Memory cache misses have become the bottleneck in my code, so I’ve been caring more and more about how I lay out the memory I use.

Along the way, I’ve written a flexible set of Blob classes, which allow freeform JSON-style data packed into contiguous memory for speed, and break the link between code and allocation. This talk takes you through the reasoning and the design decisions made whilst building these classes.”

I’ll discuss:

* Why speed is so important
* Why I need to allocate memory efficiently
* Stack vs heap allocation
* The need for freeform data
* Code walkthrough of Blob implementation
* Limitations of the design

software-craftsmanshipBiography :: Chris is an itinerant programmer, trainer, and writer. He trains and coaches in BDD, automated testing, clean code and great team practices. In his spare time he builds Sol Trader, a new indie game which combines classic Elite with Asteroids and an innovative AI.

ChrisOldwoodChris Oldwood – Test-Driven SQL

This session looks at applying the same principles and disciplines used in other areas of system development to tame the ever increasing complexity that has arisen from the maturity of the RDBMS. To show how easy it can be to apply TDD/Unit Testing to SQL development, part of the talk will involve coding up a procedure in a test-first manner using a freely available T-SQL based test framework.

“Nobody ever sets out to write a 500-line stored procedure; they often just end up that way. Writing SQL code is often perceived as “simple” which is why we start out with short simple SQL statements and don’t realise they’ve turned into a behemoth until it’s far too late. It’s likely no one ever wrote any unit tests for the functionality either so the cost, and risks, of change are only going to keep rising.

But it’s just the same story that we’ve been hearing for years about our client and server-side code. And yet SQL unit testing frameworks have been around for 10 years, so why doesn’t it get adopted along with other modern development practices such as Test-Driven Development (TDD)?

For a closed, tightly-coupled system the database framework will take away much of the need to write raw SQL in the first place. However there are a huge number of systems out there, both old and new, that still rely on the RDBMS to provide an independent subsystem that is accessed by a formal, SQL-based public interface.

The complexity of the modern RDBMS product means that refactoring is a necessity if it is to support future changes in safety; even if that change is to eventually move logic outside it. This in turn requires a good suite of automated tests and a Continuous Integration style build pipeline if changes are to be made in a reasonable time frame.

software-craftsmanshipBiograpy:: Chris is a freelance developer who started out as a bedroom coder in the 80’s writing assembler on 8-bit micros; these days it’s C++ and C# in plush corporate offices. He also commentates on the Godmanchester duck race and can be contacted via gort@cix.co.uk or @chrisoldwood.

jonjaggerJon Jagger – Lessons from test code

In this talk I will review snippets of test code. The snippets all come from coding dojos performed on cyber-dojo. You will see examples of the Good, the Bad, and the Ugly.

“I have run hundreds of test-driven coding dojos using my cyber-dojo app. I see the same test anti-patterns time after time after time. Do some of your tests exhibit the same same anti-patterns?

Come to this talk to see what the most common anti-patterns are. I think you will be surprised. See what they should be, and why.

software-craftsmanshipBiography :: I’m 2E years old (hex). I’ve loved software since I was 10 (dec). I’m a self employed software consultant-trainer-etc specializing in agility, test driven development, and complex-adaptive systems-thinking.

I’m the ex ECMA TG2 C# convenor. I’m the current ACCU conference chairman. I’ve had some C# books published. I’m married to the beautiful Natalie, and proud father of Ellie, Penny and Patrick. I love freshwater river fishing. I live in Somerset, England. ”

FRIDAY

OLYMPUS DIGITAL CAMERAJames Lewis (ThoughtWorks) – Lessons from a Polyglot Portfolio

Synopsis :: James will talk about organisational and team barriers to adopting a polyglot approach; the technologies we have chosen to adopt and why they were chosen.

So, come along and learn a bit about event-sourcing, NoSQL, Microservices, Infrastructure Automation and “Build it, Run it”. Because “is it on MSDN?” isn’t the only question to ask anymore…

“As developers, architects and operations folk we are often scared of taking on too many technologies. Whether that’s the web stack, persistence or integration. Our organisations standardise on single stack solutions, often because “”we’ve already got licenses”” or “”we only have the skills for xxx””.

This talk is about a programme that has adopted a number of different technologies in a formerly .Net shop and the lessons we have learned during the the two year journey.

software-craftsmanshipBiography :: James is a Principal Consultant for ThoughtWorks currently based in the UK where he has helped introduce evolutionary architecture practices and agile software development techniques to various blue chip companies: Investment Banks, Publishers and media organisations. James studied Astrophysics in the 90’s but got sick of programming in Fortran. Fifteen years of DBA, software engineering, design and architecture later, he believes that writing the software is the easy part of the problem. Most of the time it’s about getting people thinking right.

As a member of the ThoughtWorks Technical Advisory Board, James works with technology and business leaders both within and outside Thoughtworks to champion innovation in the areas of web integration, evolutionary architecture, emergent design and lean thinking.

James has spoken at a number of national and international conferences on topics ranging from domain driven design, micro-services, SOA and the future of the web to agile adoption patterns and lean thinking.”

jimbarrittJim Barritt (ThoughtWorks) – Hands on with Datomic: Time based facts in a database

Come and explore the world of Datomic (http://www.datomic.com/) with Jim.

Datomic is a database technology which incorporates a strong model of time deeply into it’s transaction model. In this session, Jim will show datomic in action and introduce you to a new way of thinking about databases and time.

Datomic is a new way to think about your database. It supports elastic scalability and ACID transactions and has some very interesting architectural design. The main point of interest is the time-based model it uses for recording transactions.

More and more we are seeing patterns around time in software and in databases (for example, event sourcing http://martinfowler.com/eaaDev/EventSourcing.html). This database technology provides an radical new view of the world which hopefully will inspire thought in your own domains.

The session will be based around live coding and interactive questions.

software-craftsmanshipBiography:: Jim has been writing code for many years. He is currently a Principal Consultant for ThoughtWorks.  His passion is the code and systems architectures, helping teams deliver reliably and rapidly.

mikeplymBeki Lee, Mike Westwood  &  Joe Grant    Plymouth University  
Standing out from the Agile crowd: the Plymouth University difference

Discover why Plymouth University stand out from the Agile crowd.

Focusing mainly on the website redesign, we will showcase the following areas where we feel we are leading the way:

  • Fast out of the starting blocks: lean start-up for faster initial delivery
  • User Testing Labs, expert usability testing by leading academic
  • The Plymouth Agile Cocktail, a look into our process
  • Mobile Device Lab
  • Sharing the Agile message engaging with academics, students and local business
  • How do you stand out?”    “Standing out from the Agile crowd: the Plymouth University difference

Plymouth University, based in the south west, is the UK’s ninth largest university. Its Technology and Information Services team supports a community of over 32,000 students and around 3,000 staff. In order to deliver early benefit to users more quickly, the Solution Delivery team decided to adopt an Agile framework for its activities. This brief presentation will highlight five practices we believe set us apart from the Agile crowd, and enable us to live up to our reputation as THE Enterprise University.

1) Fast out of the starting blocks: lean start-up for faster initial delivery
We used the UK Government’s G-Cloud initiative to procure services for our latest major project, the replacement of the University’s website. This framework ensured compliance with the necessary regulations, but negated the need for a lengthy and involved tender process. Using the Cloudstore, we were able to procure design, development and hosting services at a fixed price under G-Cloud agreements.

Having agreed a fixed price ‘time and materials only’ development contract under the G-Cloud framework agreement, we immediately engaged with our chosen supplier, Unboxed Consulting. Within a matter of days we had mobilised a joint Agile Scrum team based on the Plymouth Campus. We ran a two day inception workshop, which brought together a broad spectrum of key stakeholders (including students and the software development team) to kick off the Agile project. The inception workshop is a lean approach to learning enough information about the intended outcome of the new digital platform to kick off development without comprehensive up front requirements. Sprint Zero (setup infrastructure and tooling) was in progress within ten days of contract signature, which allowed development of the new Plymouth University website to get underway without the traditional up-front requirements, design and discovery phases of a waterfall project. By the end of Sprint One, twenty days into the project, we had production-ready code for features based on outcomes prioritised by business stakeholders during the inception workshop. This is ground-breaking for an organisation and project of this scale within a public sector environment.

2) User testing labs
In tandem with ten day sprint cycles we draw on the expertise of our academic colleagues in the university’s Psychology Department, who run a weekly user experience (UX) usability lab. Following lean UX principles, we are able to test UX design assumptions on real users by means of technologies such as eye tracking as well as task-based usability tests. The usability tests engage representatives from each of the user communities of the University website, for example current students, users with particular accessibility requirements, parents etc.. Usability reports are fed back into the Scrum team weekly; prototypes can then be adjusted as necessary before creating production front-end webpages.

3) Device Lab
We have adopted a mobile-first approach to development for the website project, and have therefore invested heavily in a mobile device lab. The lab allows us to see and feel how the site works on real devices; this provides more realistic feedback than relying solely on software emulations of devices, better positioning us to deliver a quality customer experience. We have worked closely with students on our 3D Design course to commission, design and develop a custom display device which holds all the devices, enabling them to be a key part of the show and tell events.

4) The Plymouth Agile cocktail
As we were completely new to the Agile way of working at the outset, we initially hired in one of the best consultancy companies in the UK to help us learn about it.
We based our process on Unboxed Consulting’s ‘Unboxed Way’, but with a twist: throw in some Scrum and a dash of Kanban, mixed in with some unique ways of working that suit us. We follow Test Driven Development and are able to deploy changes to production several times each sprint, maintaining high availability and excellent levels of quality.

Alongside the software development of the new digital platform, we have a huge content refresh task: circa 10k pages on the current site. No fixed approach was specified within the project for the content refresh; the Scrum approach had obvious advantages, having been adopted successfully for the software development, but the overall method did not really suit delivery of the content refresh.

Kanban was quickly identified as offering many of the benefits of Scrum, but in a manner more suited to the activity of auditing and refreshing web content. With minimal input from our Agile coach, Kanban was up, running and delivering business benefit within days. The enthusiasm with which Kanban was adopted by the team, who had no previous Agile training or experience, was astounding: the more traditional silo environment was abandoned and re-motivated colleagues eagerly collaborated at stand up. They were very quickly able to provide metrics on delivery of activity and visualise impediments in the process. Word of our Kanban successes has now spread: on a walk through our IT department, you can now see several active Kanban boards.

5) Sharing the Agile message
As THE Enterprise University, Plymouth is leading the way by facilitating a local hub for Agile people and businesses, and for people wanting to learn more about Agile ways of working. Our team includes several founding members of the Plymouth Agile Digital People MeetUp group, and sets up regular MeetUps and presentations which are open to anyone with an interest in Agile. Within the University, we work closely with academic staff and students to engage them in the Agile process. We have also coached other non-IT areas of the business in Agile ways of working.

We hope that you will be inspired to try something different and experiment with Agile. If you had to highlight five things you do to stand out, what would they be? Why not try something different on your next project?

software-craftsmanshipMike Westwood : I have been working in test for over eight years and recently changed job from a large civil service department to an exiting new role as the IT Test Manager for Plymouth University.

I am the co-run the local Agile MeetUp group. Interested in Developing Teams, TDD, BDD, continuous integration and continuous delivery. I am also a qualified Scrum Master and am always keen to share best practice and learn from others.

Outside of work I do voluntary work for my local primary school, I have two young children and live in Plymouth, Devon.

agilestevesmithSteve Smith – Release Testing Is Risk Management Theatre

Release Testing Is Risk Management Theatre Slides PDF

Agile methods advocate cross-functional teams responsible for product quality, yet the notion of Release Testing (post-development, end-to-end regression testing) as a risk reduction strategy stubbornly lives on.

However, from a Continuous Delivery perspective Release Testing is Risk Management Theatre – a costly practice that delivers little value. Why is this?

In this talk, Steve Smith will discuss why Release Testing is an antipattern, and offer an alternative risk reduction strategy.

software-craftsmanshipSteve Smith is an Agile consultant and Continuous Delivery specialist at Always Agile Consulting Ltd. Steve is a regular speaker at Skills Matter for the London Continuous Delivery group, and has spoken at conferences such as Agile Horizons and QCon New York about Continuous Delivery.  His interests are cricket, travel, and gin.  www.alwaysagileconsulting.com/blog

peterpilgrimPeter Pilgrim – Agile Testing Practices with Java Platform Applications

This talk covers the modern agile development practices for Java developer on the JVM. We will understand how digital Java engineers use testing frameworks and tools to build quality applications. We will approach this process from a technical and an infrastructure perspective. This discussion will focus on the development practice, clean code and code complete, from an agile point of view.

software-craftsmanshipPeter Pilgrim is an independent contractor, a professional software developer, designer and architect. Since 1998 he has worked in the financial services industry, investment banking mainly, developing Information Technology for clients.

He is a well-known specialist in Java Enterprise Edition (Java EE) technology, focused on the server-side and the implementation of electronic commerce. Peter has built professional Java EE applications for Bluechip companies and top-tier investment banks including Lloyds Banking Group, UBS, Credit Suisse, and Royal Bank of Scotland. Peter is the 91st Oracle Java Champion (February 2007). He is a fan of Agile and TDD.

As well as extensive Java development experience, Peter is an early adopter of technologies and leading light for progression on the Java platform, especially by influencing the wider community. Peter gained valuable experience in alternative JVM languages such as JavaFX, Scala and Groovy. He has developed a number of JavaFX experimental custom controls.

Peter is a technical book and has recently published his first called, Java EE 7 Developer Handbook, by Packt Publishing. As conference speaker, he has been lucky enough to present at top-tier conferences such as Devoxx UK 2013, ACCU 2013 as well as JavaOne.

 JBRainsberger*BONUS * Joe Rainsberger – Legacy Code Retreat (Rescuing Legacy Code Without Fear)

Few forces limit your ability to deliver the way that legacy code does. At Code Retreat (http://www.coderetreat.com), you focus on the craft of software development by working on a very simple exercise with a wide variety of people and in a wide variety of ways. Legacy Code Retreat (http://www.legacycoderetreat.org) runs a little differently. We give you a code base to start from (in over 20 programming languages so far) and we guide you with the techniques that have helped us most in our work.

Join us for a Mini-Retreat, where you’ll dive into unfamiliar code head-first–code that’s just bad enough to annoy, but not so bad as to send you back to bed. You’ll try two key rescue techniques, we’ll discuss our experiences, and at least one of you will want to know to run your own Legacy Code Retreat. I’ll tell you how.

software-craftsmanshipBiography:: Consultant, coach, mentor and author, J. B. (Joe) Rainsberger helps both teams and individual programmers learn high-productivity techniques for delivering software. Teaching teams how to avoid unnecessary work, remain focused on what absolutely needs to be done, then do it quickly and effectively.

Joe helps software companies better satisfy their customers and the businesses they support. Over the years, he has learned to write valuable software, overcome many of his social deficiencies, and built a life that he loves. He has traveled the world sharing what he’s learned, hoping to help other people get what they want out of work and out of their lives.

Specialties:Personal finance planning, strategic planning for businesses, project portfolio management, Extreme programming, Agile software development, Programmer testing, Developer testing, JUnit, Java, J2EE, Ruby/Rails, Project management, Project planning, Conflict resolution, Team building, developing coaches

http://www.agiletutor.com :: http://www.jbrains.ca :: http://blog.thecodewhisperer.com
Free Your Mind to Do Great Work :: http://www.freeyourmind-dogreatwork.com

*Bonus* Track Extended BDD session

Seb RoseSeb Rose – Behavior Driven Development – BDD by Example

A practical introduction to using examples to specify software. You will learn to break down complex business requirements with your stakeholders using examples in their own language, giving you the tools to explore their ideas before you write any software.
We’ll use pens, cards and other bits of paper, so you won’t need to know any tools in advance, or even remember your laptop!

This workshop is based on our successful BDD training at Kickstart Academy, using exercises and examples that have been tested on hundreds of delegates.”

software-craftsmanshipBiography:: Coach, Designer, Analyst and Developer for over 30 years.

I have been involved in the full development lifecycle with experience that ranges from Architecture to Support, from BASIC to Ruby. Recently I have been helping teams adopt and refine their agile practices, with a particular focus on automated testing.

Regular speaker at conferences and occasional contributor to software journals. Contributing author to “”97 Things Every Programmer Should Know”” (O’Reilly). Currently writing The Cucumber-JVM Book for Pragmatic Programmers