Agile Isn't Enough to Deliver Exceptional Software: An Interview with Sven Peters

[interview]
Summary:

In this interview, Sven Peters, the lead evangelist for Atlassian, discusses whether making software has become harder. He tackles whether being agile is enough in the current landscape and questions if we're sacrificing quality for the sake of speed.

Josiah Renaudin: Welcome back to another TechWell interview. Today I’m joined by Sven Peters, the lead evangelist for Atlassian and a keynote speaker at our upcoming Better Software West Conference. Sven, thank you very much for joining us. First, could you tell us a bit about your experience in the industry?

Sven Peters: In my twenty years of experience in the software development business, I've worked with a lot of technologies. Some don't exist anymore, but most are still out there—from embedded systems (what we now call IoT) to React for building web apps. Technology has changed a lot, but working with other people has been a constant in all of my projects.

Josiah Renaudin: Has software development gotten harder, or has it always been difficult to keep everyone in sync?

Sven Peters: Keeping everyone in sync has always been challenging, but it's gotten increasingly more complicated over the years as more people have been added to the process. For example, because software is now used by nearly everyone, UI/UX plays a much bigger role. That requires more designers. Additionally, software now runs on servers and users expect updates frequently. That requires software development teams to work more closely with IT and operations teams, support, marketing and many more.

Software today is a very collaborative effort between many teams, so it's incredibly important to keep everyone in sync and find a common language for getting work done across technical and non-technical teams

Josiah Renaudin: How tricky is it to deliver high-quality code at the breakneck speed people expect things to be developed in today? Are we sacrificing quality for the sake of speed?

Sven Peters: These days, we have much better tools to help with quality control. I remember times when manual testing was the only quality check of new software. Nowadays we write automated tests, do asynchronous code reviews, use pair programming, implement static code analysis, constantly monitor our services, roll out new software to a small subset of customers first and much more to prevent bugs reaching end users.

Is software less buggy now? I don't think so, but we find and fix problems much faster because we don't have such a long quality check phase anymore. Last month, for example, I had problems with an application from a large cloud app vendor. I contacted support and within just one hour the problem was fixed.

Importantly, I think we need to understand and carefully weigh the risks and benefits of shipping for speed. Not all issues can be fixed quickly. Security is incredibly important and needs to come first.

Josiah Renaudin: You argue that just being agile isn’t enough. Can you explain why that is, and what else teams need to do to succeed?

Sven Peters: Being agile is important. But often people mix doing Scrum, Kanban, or even daily stand-ups with being agile. Agile is a mindset that everyone involved in software development needs to understand.

The biggest problem is that it's quite an abstract concept. What do the principles and values mean for the day-to-day job of a developer? Doing things others haven't tried, coming up with new concepts for better engineering collaboration, or taking time to work on automating parts of QA helps software development teams be more effective. Every team, organization, and software product is different, and so should be your development.

Josiah Renaudin: How can you avoid meetings in order to speed things up? Does avoiding meetings hurt teamwork and collaboration at all?

Sven Peters: We all attend too many meetings. The first step in fixing this issue is considering whether every person on the invite list really needs to be part of a meeting. The second step is applying certain techniques to make meetings more effective, such as requiring an agenda, making sure people are properly prepared, encouraging a culture of staying focused and so on.

User Comments

1 comment
Tim Thompson's picture

Great interview and good insight. I disagree on a few things. Automation is important, but it is still too complicated especially in a web app world. Finding components on a page is incredibly tedious especially when content is created dynamically or there are interactions with graphical displays where the items shown on the graphic have unique IDs that are only valid for the current context. We all could benefit from much easier to use automation tools and I am not speaking about record and play, but about intelligent tools that parse through source code and create the page classes and abstractions to use for QA automation.

I also disagree on the "fix" aspect. Yes, we fail earlier and know about deficiencies long before release. But what I notice more and more that features always trump quality. If a business has the choice between adding more features or getting the current features into a better state the new features always take precedence. One reason is that customers pay for features, they do not pay for quality. That causes that many in management assume QA just happens and is seen as the constant roadblock between development and making sales. The result is bypassing and belittling QA. It clearly shows in the incredible amount of patheticly dysfunctional applications, starting from big software like Windows 10 down to the mindboggling amount of craptastic mobile apps.

Progress will be a bit slower when we spend more time on fixing issues and improving user experience, but we all will be so much better off.

May 27, 2016 - 7:36am

About the author

Upcoming Events

Sep 19
Sep 26
Oct 01
Oct 15