Event proudly presented by:
And brought to you by
Martin's main interest is to understand how to design software systems, so as to maximize the productivity of development teams. In doing this he has looked to understand the patterns of good software design, and also the processes that support software design. He's become a big fan of agile approaches and the resulting focus on evolutionary software design.
While others have been debating whether Rails can scale to enterprise levels, we’ve been demonstrating it. ThoughtWorks is running one of the largest Rails projects in the world, for an “Enterprise”. This session discusses tactics, techniques, best practices, and other things we’ve learned from scaling rails development using agile techniques and tools. We discuss infrastructure, testing, messaging, optimization, performance, and the results of lots of lessons learned, including killer rock-scissors-paper tricks to help get you out of babysitting the view tests
In this talk, Jez discusses how DevOps can be implemented in large organizations. He will provide a selection of the common issues with DevOps adoption, such as managing risk, compliance with regulation and frameworks such as ITIL, and meeting auditing requirements. He will show that DevOps in fact improves the ability of organizations to meet the goals of good governance. He will also provide examples of how DevOps has been implemented in organizations such as Amazon, through moving from projects to products and providing infrastructure as a service, and the benefits this provides.
This talk will introduce the principles and practices of Continuous Delivery, an approach pioneered by companies like Facebook, Flickr and ThoughtWorks, that aims to make it possible for an organization to deliver frequently (weekly, daily or even hourly) and confidently. It uses idea to live (the time from idea being conceived until the feature is live) as a key metric, minimizing that metric across the whole path to production. A variety of activities are impacted from build/deploy to test automation to development practices. As organizations mature their Continuous Delivery capability, they start to have code that is always production releasable and business stakeholders pressing the release button as often as it makes business sense to do so. The talk will touch on systems thinking, build pipelining, trunk-based development and automation, automation, automation.
Technical Debt seriously affects a team's ability to support and maintain an application causing budget and time overruns, high defect counts and even project failures. Technical Debt is a fact of life that requires care and attention to manage effectively. Estimates vary significantly on the financial implications of Technical Debt but there is consensus that not actively managing Technical Debt causes the demise of many software projects. This session covers the types of Technical Debt, how the debts accrue over time and ways of objectively measuring and addressing debt as part of the software development lifecycle.
Change is upon us! Change is quickly becoming mandatory to stay relevant in our competitive market. Many organizations are embarking on programs of change to keep up with their competitors and are choosing Agile as a set of techniques to bring about necessary process change. This presentation discusses the reasons for adopting Agile, ThoughtWorks’ approach to getting started with a program of change and our 4 most common implementation models. We will discuss how to choose between these models, the pros and cons of each, and real-world examples of these implementations.
What does an organization moving away from big upfront design look like? How do you set up your teams for successful Agile design? How do you focus on the right idea to take to market? In this session we will explore pragmatic techniques in Agile design to get you moving in the right direction - faster - and all in one piece!
The CIO wants to be more responsive, and decides IT is "going Agile". The CFO wants consistent cash flow from operations, and is none too pleased to hear that Agile does away with long-range deterministic planning. That’s not an argument the CIO is going to win, so it comes as no surprise that Agile gets compromised when it goes corporate. By decoupling strategic IT from utility IT, creating an investment pipeline and applying greater rigor in portfolio management and application development governance, CIOs can create Agile IT in a firm driven by annual budget and planning cycles.
The ability to effectively leverage distributed teams to deliver great software is a critical capability for most organizations. However, more than 10 years from the dawn of large-scale distributed outsourcing, results remain, on the whole, sub-par. While a few smart organizations have learned how to set up, manage and utilize high-performing global delivery teams, most struggle to realize the expected benefits from their significant effort and investment. Success requires potentially disruptive changes to standard co-located delivery approaches. This session will share proven tactics to improve results and provide a framework attendees can use to come up with more tactics on their own.
Agile developers often have a negative view of “capital-a” Architects and “capital-a” Architecture (particularly the enterprise kind). This view is shortsighted. Andy discusses how to work with enterprise architects and retain your agility. Also addressed are non-functional requirements, and how an Agile Architect can make sure those are recognized and implemented. Finally, we'll discuss how always making the right decision at the right time given the available information can still get you into trouble, and some strategies to get your application back on track.
Organizations and teams start adopting Agile practices because they think these new methods will make them more responsive to changing requirements, do more with less, have fewer defects or get products built. After some time, tools and training are all that is left and the teams are the remnants of mechanical processes and the organization is back to where they started. Agile process adoption does not have to end this way. In this talk, Manu will call out ways by which you can determine if your organization is being Agile or just doing Agile.
Many software development teams, particularly in the wake of increasing adoption of Agile methods and Continuous Delivery, want to move from manual to increasingly automated functional regression suites. However, the path from manual tests to automated tests isn't straightforward. Many teams fail in the process or have trouble maintaining the tests they create in the long-term.
The "I" in INVEST tells us that our stories should not be dependent on anything else, so that we can realize the true benefits of the Agile approach. But projects of any reasonable size will undoubtedly hit situations where this is unavoidable, and those trying to follow the letter of the law will often become tangled up in trying to achieve this ideal. This talk explores some typically difficult situations, and techniques that will help you mitigate these without selling your Agile soul.
The essence of Agile is responsiveness to change, yet most organizations have implemented policies, processes and customs that are resistant to change or in some cases explicitly designed to limit change. Hence it is not uncommon for the recommendations of Agile change agents to meet "but we can't do that here." In this interactive session, Greg will help the audience explore many of the most frequently rejected recommendations and strategies to address them.