Last week I attended the SAFe Summit held in Washington DC, and the SAFe Agile Software Engineering course run by Ken Pugh. Ken is a professional with nearly 50 years experience in the software industry (yes, he started in the 1960’s and you can tell how passionate he is about software development, almost as much as he loves hiking). He is the author of the book, Lean Agile Acceptance Test Driven Development, which I highly recommend.
I believe attending such courses is important, because while many people consider software development to be an “art”, it can’t simply escape its roots in engineering. In order to improve quality, development teams and leaders need to know and apply best practices that include and go beyond leadership, facilitation, empathy and change management. Such courses help us develop these skills.
Starting the event we first defined what is software engineering and how it is extended by Agile development, and in particular Extreme Programming (XP). We reviewed the contribution of Lean to Agile Software Engineering (ASE), Lean UX and the concept of the Minimum Marketable Feature (MMF). Finally we checked architectural concepts and how to design elements to cover the famous T of the acronym INVEST which defines a high quality product backlog: Testability (the other characteristics in the acronym are independent, negotiable, valuable, estimate-able, and small).
We discussed in detail the importance of having a “test-first” mindset. For me this was something of an aha! moment, because it is not something that is normally covered in Scrum courses and is something where I personally see a lot of value. As Ken mentioned in the course, “the tests come to be part of the system documentation”.
We examined the intersection between Agile Software Engineering (ASE) and DevOps. This is a positive point for Scaled Agile because the combination helps maintain consistency among their courses. Following this, we discussed Behavior-Driven Development (BDD) – and how it covers requirements specification or user stories acceptance criteria with BDD and Acceptance Test Driven Development (ATDD). We reviewed techniques such as personas, estimation, story mapping, how to divide stories, as well as covering something new that I think is valuable: including a phase of identifying assumptions and risks in each iteration planning. This provides discipline and alignment on stakeholders expectations.
This is just a very brief summary of a fascinating course that I really recommend for Agile practitioners. You can continue reading a full outline of all the activities of the event on my LinkedIn blog here. I look forward to responding to any questions you may have!