Agile Development: a report from Swansea Conn 2016
I attended the second running of Swansea Conn on Sept 12th and 13th, which advertised itself as an ‘Agile Development and Software Craftsmanship Conference’ at the home of Swansea City FC – the Liberty stadium in the heart of the city. Here are my highlights:
The excellent Simon Brown kicked off the event with a thought provoking talk about the role of Architecture in an Agile environment.
An overview of delivery methodologies was given followed by some discussion about the role of a Software Architect in Agile. His argument was that everyone needs to take responsibility for the architecture of the application not just the person with ‘Architect’ in their job title. This was certainly something I agree with. Also it is up to each member of the team to take responsibility for the system and not assume that someone else will. This was referred to as “Joint responsibility not no responsibility” – something that we can all remember in our day to day roles.
Simon also went on to talk about how much design we see in our Agile projects. Gone are the days when the system was designed in full before a single line of code was written, but how much should we do up front? He gave examples of teams he had worked in where they thought that just because they were doing Agile meant that they didn’t have to do any design!
What he did recommend is that you do small amounts of design frequently, with the ‘Architect’ taking “Continuous Technical leadership” and that you should embrace the concepts of the Agile methodology just as much during the design phase as you do in the delivery phase, learning from past experiences and improving as you go.
Overall a great start to the event.
Simon Brown kicking off Swansea Conn
Kainos’ very own Chris Cundill was then joined by Greg Simons (also ex Kainos) to reflect on their experiences setting up infrastructure in the Cloud. A lot of this was driven by their time when they worked together helping the DVLA in Swansea set up their systems.
They gave a great overview on the role of the Cloud to today’s applications and how it is, and will continue to enable organisations to get the best value out of their infrastructure.
It was impressive to see their demo that enabled an application to go from development complete to a fully deployed system with multiple nodes and load balancers in the Cloud in less than 5 minutes.
Key concepts around Speed, Safety and Scalability were emphasised during this talk. We should not be afraid to wipe away our cloud servers and continuously deploy versions of software multiple times each hour of the day. Continuous integration and deployment is no longer just for the application, it should apply to the infrastructure too.
This talk was followed on by another infrastructure talk, which also emphasised the need for multiple automated builds of infrastructure. This goes a long way to ensuring that all of our different systems such as development, test and production not only have the same version of the application deployed on them, but the same version of the infrastructure too. This may seem like an obvious thing to do, but very few organisations are fully embracing this concept.
On a different note, a talk was given by Robert Chatley from the Imperial College in London around how they are trying to change the way they deliver their IT courses so that they align better with what the industry needs. He explained what they teach in each year, and how his experience in the IT industry has helped align the courses to what is needed in the real world. It was interesting to see how they are trying to use the Agile approach to deliver a year’s course. Rather than have the traditional ten weeks of lectures, followed by an exam, they are trying to teach fewer lectures before setting smaller assessments and get feedback from the students to enable them to adapt and improve every two or three weeks. This sounded like an interesting although challenging concept. Hopefully next year Robert will let us know how it went!
Next up, Phil Parker from Equal Experts talked about “Continuous Security”. The key messages from this talk was that Security is something that should be considered from the outset of any project. It is not something that can be “tagged on” at a later date. Security should be built in from the start and developed just like any other part of the system. Early, automated and manual security checks should be built into the project’s lifecycle.
I really liked the examples of how systems may be vulnerable to attacks and how simple mistakes can have catastrophic effects. It really is up to the whole team to educate themselves in this area as it is one of the fastest moving areas in the industry.
Team dynamics was the theme of the next talk, with Jessica Rose describing how technical communities are like many other communities in the way they interact.
Comparisons between a group of developers and a group of Dr Who fans was given (!!) – both will passionately argue about things that they think matter to them, and care needs to be taken that time is not wasted on things that don’t really add any value.
Jessica stressed that good developers will have the ability to take a step back from their own viewpoint and try and see the other person’s point of view.
Communities can also be seen to adopt the traits of their leader; for example if the leader of a group is considered a kind and accommodating person then that group may well bear those traits too.
This was more of a ‘fluffy’ talk and not a techie one, but nevertheless it was interesting and a relatively easy start to the day!
One of the summary boards
There were two talks around improving skills of developers and the presenters questioned if some developers are significantly better than others.
How do we measure how good a developer is? Do we measure how fast they write their code? Or how good they are at debugging a problem? or maybe how they interact with the rest of the team? The truth is that there is no single simple way of measuring how good a developer is.
The myth that some developers are ten times better than others was explored. Indeed, there are great people out there but a lot of what is said around some developers being ten times better than others on the internet is just hearsay and depends on the context you are measuring within. More important than trying to find the ultimate developer is supporting the developers within your organisation; giving them the time, resources and support to become better developers.
The key point to these talks is that you must support your developers and make them feel valued. That way they will be the best that they can.
Next up was a talk trying to balance good code against fast delivery.
You want to get your product out to users, but you want to write clean code. Test your market fast but keep the product maintainable. Lean product development and software craftsmanship just can’t work together, right?
Alastair Smith and Elizabeth Ayer from Redgate Software Ltd explored both sides of the argument and the answers were pretty obvious really – whilst it may take longer to initially write cleaner, better code, this will pay off in the long run and your product owner will thank you when they realise that good clean code is easier to extend and maintain and will contain fewer bugs, ultimately delivering your product more efficiently.
Finally, there was a presentation about how to migrate Legacy systems to more modern architecture. This was interesting for me as I’m currently working at an organisation where this is particularly relevant.
There are many challenges to this including resistance to change from the technical team, maybe a lack of a clear understanding as to how the system currently behaves and sometimes a lack of automated tests for the system you are trying to migrate.
Some recommendations as to how to start migrating a system like this are to start small, build a team you can trust, develop flexible working patterns and introduce learning time. However, be careful not to introduce too much change at once as people may feel overwhelmed.
Also you should encourage knowledge sharing amongst the team, and look at things like remote working and pair programming. You should listen to the views of your team and enable people to fill roles they are comfortable with.
Moving a legacy system to a more modern codebase and architecture is a difficult process, but by introducing change slowly and with the by-in of the team is essential – this is definitively good advice that I can use in my workplace.
There were a couple of talks that I did go to that I have not talked about here, which were a bit disappointing, but overall the talks were of a very high standard. The venue was fantastic and I would thoroughly recommend Swansea Conn to any of my colleagues. It was great to catch up with friends from previous jobs as well as develop some new contacts. Roll on Swansea Conn 2017!
Sign up to the Kainos newsletter