|
Notes from presentations are available on this site (if the presenter has provided
us with his/her materials). Simply go to the PROGRAM link and click on the session. |
Agile Development for Enterprise Software: Anecdotes of Adoption
Jamie Dinkelacker (Google Inc.)
Tutorials · Enterprise Agile
Friday, 08:30, 1 hour 30 minutes | Grand Ballroom South
Download Presentation
Agile2007 Submission
>
Agile Anecodtes for Enterprise Software
Developing enterprise software is a challenging endeavor. Myriad competing
forces converge on engineering, all with urgent demands, yet with minimal
visibility into the totality of requests nor the significant time loses they
occur. This is a maelstrom -- it is worse than chaos. Nonetheless, product must
be shipped via a coordination of many diverse contributors, stakeholders, allied
roles, all of whom have contrasting time lines, conflicting priorities, and
particular perspectives. The purpose of this talk is to describe the adoption of
agile practices, based mainly on the tenets of Scrum, in support of creating
enterprise products that combine hardware and software.
Target Audience
This talk is targeted at anyone who has a stake in successfully
delivering enterprise software, irrespective of the size of the organization nor
whether they're in product development or IT services. It provides real
experiences about tailoring agile practices for a particular situation and how
the adoption of agile practices follows from adopting a mindset of lean
development and continuous improvement. Attendees are expected to leave the talk
having heard direct experiences regarding successful agile adoption amidst the
complexity of enterprise software.
Outline
After much deliberation, an iteration duration of
two weeks was chosen. This results from extant practices in code reviews,
allowances for 20% time projects, the complexity of the codebase, the durations
necessary for testing software on large corpora of mixed documents. This will be
a brief story on why the fortnight time frame was selected.
We work with a very advanced codebase which
reflects a complex and broad architecture. Many diverse domains are represented
in every product release (e.g., crawling, indexing, interaction, serving,
security, OS, etc.). The marriage between software and hardware also requires
special skill and testing. Hence, each product results from the work of numerous
allied professionals -- some have hard and fast deadlines such as managing a
manufacturing supply chain, others can react rapidly to whatever code change is
needed. This will be a brief story of how these multifunction teams work and
self-organize around the backlog, and keep each other on track.
A gaggle of stakeholders are present
in enterprise software whose interests need to be balanced in the long run.
These include release engineering, quality assurance, documentation, support
organizations, hardware manufacturing, operations, and product management. All
these stakeholders have distinct values and priorities and each puts direct
demands on engineering's time. Drawing everyone together is a delicate balancing
act that is never stable. This is a brief story about balancing these roles such
that forward progress continues.
Prioritizing sessions are necessary for establishing a backlog
that is respected. Near-daily "scrum-ish" meetings keep everyone engaged and
fosters the emergence of a community of practice around the code base and coding
practices, as well as progress on the backlog. Thursday is a "meeting free day"
so team members spontaneously began the "eScrums" to convey to each other their
current situations. This will be a short story on how meetings are used, the
records that are kept, and the dialog that is fostered and how this fosters the
evolution of a community of practice.
It is necessary for the program manager / scrum master to
vigorously defend the backlog once it is prioritized. It's all too common for
stakeholders to seek to add to it, attempt to redirect team members to pet
projects, or re-purpose the iteration. Many competing stakeholders all have
legitimate claims, but engineering resources are highly constrained. This will
be several anecdotes about the backlog, how it is presented, explained,
defended, and most importantly, finished.
We've instituted the practice of delivering working code through the vehicle of
biweekly demos -- and with a multifunction team, there often more than one item
to be shown, time permitting. The demo is seen as an event and a broad array of
interested parties are invited. The purposes for this include: creating a
distinct marker of forward progress, providing an empirical framework for
subsequent planning and prioritizing conversations, and ensuring that allied
roles that may be moving at a different pace or presently servicing another
project, get to see the working state of things. A few anecdotes about managing
the sociology of the demos and the participants will be presented.
Biography of the Presenter
Jamie Dinkelacker is a program manager for Enterprise Engineering at Google Inc.
He is responsible for the upcoming software releases for the Google Search
Appliance, the Google Mini, and the enterprise platforms and OS group. He is a
member of Google's Agile Leadership. He has been managing software development
for over 15 years in Silicon Valley at companies such as Apple, Netscape, and
Hewlett Packard Labs. Prior to Google, Jamie was a consulting professor of
software management at Carnegie Mellon University's West Coast campus. He has
focused on lean development and organizational processes for two decades. Jamie
holds a bachelors degree in management science and a masters in communication
research, both from Rensselaer Polytechnic Institute, and a PhD in communication
research from Michigan State University. He is an experienced public speaker,
and worked in broadcasting and live musical performance for many years. His
personal page is at http://sunarcher.org/jamie/.






