, Michael Feathers
Over the course of this conference our stage has covered what it takes to succeed when practicing agile software development with legacy systems. The last session of our stage brings some of speakers back together as a panel. You should come prepared to ask questions and help us (as a community) summarize the key insights and ongoing questions concerning agile software development with legacy systems.
Technical debt - we all seem to have it. So how bad is it? Is it growing or shrinking? Are we talking about it? Are we doing anything about it?
Technical debt is primarily a process problem. The technical problem is a symptom. The purpose of this session is to provide some practical tools and techniques for dealing with the process problem.
Success in object-oriented agile development is currently being achieved with a technique known as test driven development (TDD). In database development however, TDD practices are not wide-spread and development teams struggle with applying the TDD principles to the SQL language. This is a problem, because it leads to poorly tested code. In turn, not having the appropriate test cases, makes it difficult to improve your existing database design. Not implementing TDD practices in the database, overtime, leads to a decaying architecture and can hinder the evolution of the overall
Have you ever been told “Agile works great for UI, but just doesn’t work for large scale systems architecture”? In this experience report, I will review a real world project to redesign a successful large scale ecommerce system that became plagued with growing pains. After the team initially ran to the comfort of a long term waterfall project, cost overruns and escalating problems necessitated a new approach. Enter in Scrum and a focus on iterations and frequent customer feedback, and a once failed project turned into a blazing success.
, Gil Broza
We will present many hard-to-test c++ idioms and multiple refactorings for making the code testable. Students who need to test and refactor legacy C++ code as they transition to test-driven development, will learn techniques to help them do this work safely and with minimal changes in the performance. We’ll cover several legacy idioms in which code is initially not accessible by tests. We’ll fix these and other testability problems with refactorings like “Extract Method” or “Extract Class”, and C++-specific techniques involving the preprocessor, “friend”, and changing access Levels.
Strategies for adopting healthy automated testing practices, tools, and skills.
, Ainsley Nies
Can you imagine applying agility to a huge legacy code base over a decade old, supported by 100+ geographically distributed developers, working on thousands of classes and millions of lines of code?
In this talk we share the stories of experience with three clients – the expected, the unexpected and what was learned, and how we enabled them to go from fragile to agile. We will cover our approach and the key practices we discovered to be invaluable for success with large Legacy applications.
Now that Agile has crossed Moore’s technology adoption chasm we’re finding that we need to address many of the scaling issues that we’ve mostly ignored until now. There is more to scaling agile than addressing the need of large or distributed teams. This presentation overviews the challenges and issues which the agile community must address in order to scale agile techniques and philosophies to meet the needs of modern organizations. Experiences and potential solutions from within IBM and several customers will be discussed, including both what works and what doesn’t.