Speakers
- Clifford Berg
- David Bock
- Scott Davis
- Rick DeNatale
- Esther Derby
- Robert Fischer
- Neal Ford
- Chad Fowler
- Andrew Glover
- Stuart Halloway
- David Hussman
- Yehuda Katz
- Rich Kilmer
- Carl Lerche
- Matthew McCullough
- Joe O'Brien
- Andrea O. K. Wright
- Russ Olsen
- Bob Payne
- Christopher Redinger
- Johanna Rothman
- Brian Sam-Bodden
- Ken Sipe
- Brian Sletten
- Kevin Smith
- Venkat Subramaniam
- Nathaniel Talbott
- Laurie Williams
Kirk Knoernschild
Software Developer & Mentor
In 2002, Kirk wrote the book Java Design: Objects, UML, and Process, published by Addison-Wesley. He has also written numerous whitepapers and articles, including The Agile Developer column for The Agile Journal. Kirk is the founder of Extensible Java, a growing resource of component design pattern heuristics for Java that can easily be applied to most other platforms, including .Net. Kirk has trained thousands of software professionals, teaching courses on UML, Java J2EE technology, object-oriented development, component based development, software architecture, and software process. He enjoys hacking in a variety of languages, including Java, .Net, Ruby, and PHP.
Blog
OSGi Discontent - No Migration Path!
Posted Wednesday, March 25, 2009
OSGi has emerged as the de fact more »Presentations
Grass Roots Agile
We have been taught that the best way to solve the tough challenges inherent to software development is by stabilizing requirements early, followed by implementation and verification. Yet we continue to fail. We fail not because we do not try. more »Big Teams & Agility
We know agile methods work for small teams. But applying agile practices on larger software development efforts is difficult. There is no one-size-fits-all magic agile method we can apply. more »Agile Architecture
Developing large software systems is inherently difficult. Because of this, we attempt to make the right architectural decisions early due to the significant anticipated cost affiliated with making incorrect decisions. But this contradicts agile practices more »We have been taught that the best way to solve the tough challenges inherent to software development is by stabilizing requirements early, followed by implementation and verification. Yet we continue to fail. We fail not because we do not try. We undergo complex process improvement efforts. We create detailed artifacts. We follow detailed plans. We establish steering committees and hire teams of architects. We fail because the approach is flawed. This session examines what teams can do to increase agility in traditional environments, and presents techniques that help drive agile bottom up.
In this session, Iâll talk about what development teams can do to increase their agility in traditional waterfall environments, and will present techniques that help drive agile bottom up. Iâll talk about the key steps involved in increasing development agility. Topics include: ⢠Agile and the political ramifications of the term. ⢠Examining why organizations fail in their process improvement efforts. ⢠Increasing agility by attacking process pain points. ⢠Starting the project the right way by writing code early. ⢠Infrastructure and lightweight tools that help increase agility. ⢠Bridging newly adopted agile practices to existing organizational processes. ⢠Effective team structure and organization for large teams (> 100 people). ⢠Starting small, gaining momentum, and avoiding big process improvement efforts. ⢠Practices offering the greatest reward for the least risk. The purpose of this session is to provide actionable items that will allow attendees to immediately inject practices that increase development agility.
We know agile methods work for small teams. But applying agile practices on larger software development efforts is difficult. There is no one-size-fits-all magic agile method we can apply. The experience of the team, the organizational culture, existing processes, and much more affect how we can increase agility on large teams. This session explores how agile has been applied on team in excess of 100 developers, which practices work well, and which don't. The result might surprise you!
In this session, Iâll talk about how agile practices can be used on large teams, and which practices work best and which don't. Topics include: ⢠Structure of the teams ⢠The role of roles and responsibilities ⢠How iterations hinder progress ⢠Necessary infrastructure components supporting the development lifecycle ⢠Establishing continuous flow and developing rhythm ⢠Bridging newly adopted agile practices to existing organizational processes. ⢠The absolute, #1, required, necessary practice! ⢠The importance of architecture The purpose of this session is to provide actionable items that will allow attendees to improve the agility of large development efforts.
Developing large software systems is inherently difficult. Because of this, we attempt to make the right architectural decisions early due to the significant anticipated cost affiliated with making incorrect decisions. But this contradicts agile practices which have taught us to embrace change. So how do agile and architecture come together? Conceptually, the goal of agile architecture must be to eliminate the architectural significance of change by crafting software that can easily adapt to change. Ultimately, an agile architecture is a modular architecture. This session presents patterns for modularizing large software systems.
In this session, I'll talk about what development teams can do to increase architectural resiliency of their software applications. Topics include: ââ¬Â¢ Where and when architecture is important ââ¬Â¢ Exploring modularity ââ¬Â¢ How to design modular applications today ââ¬Â¢ The importance of insulating design decisions ââ¬Â¢ Identifying a system's joints and why it's important ââ¬Â¢ Preventing software rot through dependency management ââ¬Â¢ Patterns to increase architectural resiliency through modularity The purpose of this session is to provide actionable items that will allow attendees to immediately inject practices that increase development agility.