Agile Product Development at Xerox
Description
Transcription of the B901 podcast that was held with 2 Xerox Agile Experts from Xerox.
Shared by: business901
Categories
Tags
-
Stats
- views:
- 1418
- posted:
- 2/17/2010
- language:
- English
- pages:
- 18
Document Sample


Agile Product Development
at Xerox
Guests were Helen DeNero and Patrick Waara
Business901 Podcast
Transcript
Helen DeNero: Helen is the Program Manager for Design for Lean
Six Sigma for Software at Xerox Corporation and is responsible for
the training of Lean/Agile tools and methods across the corporation.
She has a BS in computer science from Rochester Institute of
Technology, and has been with Xerox for 30 years. While at Xerox,
Helen has held numerous positions within product development,
including software development on the DocuTech products, Product
Integration Management on FreeFlow Print Server, and Manager of
Customer and Service Support for the Production Systems Group
products. She is also a Lean Six Sigma Black Belt Candidate
Patrick Waara: Pat has been with Xerox for nearly 25 years. He has
both a BS and an MS in computer science from Michigan Technological
University. He has held a variety of jobs at Xerox, including developing
user interface systems for Xerox's DocuTech and Systems Architect for
Xerox's iGen3, all dealing with software development and systems. Pat
also works at St. Joseph's Neighborhood Center, which provides medical,
counseling, dental, and social services to the uninsured, where he
utilizes his software and Lean Six Sigma skills to support their IT and
process infrastructure that he installed during a Xerox sponsored leave of
absence. He is currently a Software Design for Lean Six Sigma Master
Black Belt Candidate and a Lean Six Sigma Black Belt Candidate where
he is teaching Lean, Six Sigma, and Agile techniques to Xerox's software
development community improving software development capability.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Joe Dager: Thanks everyone for joining us. This is Joe Dager, the host of Business901
podcast. Participating in the program today is two Xerox people; Patrick Waara and Helen
DeNero. Helen is the program manager for Design for Lean Six Sigma Software at Xerox
Corporation. Patrick is currently teaching Lean, Six Sigma, and Agile techniques to
Xerox's software development community. Patrick, could you explain to me your role at
Xerox?
Patrick Waara: Sure. My main responsibility is primarily for teaching our classes, and
for doing our internal coaching. So, all the Software Design for Lean Six Sigma that we
have, I do the first wave of our Green Belt training, and then when there is other
coaching that needs to be done, I am the first person they come to.
Joe: Helen, could you explain your role?
Helen DeNero: I am responsible for the program management of this program within
Xerox. What that means is I work with the development organizations to make sure that
they're software developers are trained sufficiently in these techniques. I lead a team
that also looks at what is required to keep Xerox moving forward in the Lean and Agile
domain.
Joe: When did Xerox start using the Agile, and why did they start using it?
Helen: It started actually back in August of 2003. First Laverne, she had sponsored a
Lean Six Sigma Project to address improving the development and engineering
productivity. As a result of that project, Design for Lean Six Sigma was launched at
Xerox. We began with the electromechanical community in late 2004, and then expanded
that to the software community in mid 2005.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Since then we have also included Inbound Marketing, late 2006. We are now beginning
a program for Systems Engineering. Since the launch of the software, DFLSS Program,
in mid 2000, which was targeted at certification for Green Belts, there are different
levels of competency. The Green Belt Program began in mid 2005. Since then we have
trained over 700 software developers.
In that program, it consists of two and half weeks of in-class instruction, and additional
training on project work and coaching. Of these 700 trained developers, about 60% of
them have received their Green Belt Certification, and the rest of them are in process.
In late 2008, we launched the software Black Belt Program. That is much more in-depth
programming then the Green Belt Program. It consists of about four and half weeks of
in class instruction, followed by about nine months of practice work, at which time the
students are working with the instructor. They are being evaluated constantly by that
master instructor.
So, there is a series of proficiencies that the students have to demonstrate in order to
become Black Belt certified. Since we started that program, we have trained 21
developers. They are all in the process of getting their certification.
Patrick: I think that answers the question of how the program started. When we
started looking at the content and what we thought was important to train our software
people in, we realized it was really centered on a lot of Lean principles and Lean
practices. The Agile practices really are embodiments of a lot of those Lean principles.
So, when we started looking at that content, that's really how we went to Lean and
Agile as the predominant content for it. We also do Six Sigma content in there as well,
and at the level that is appropriate for a software development.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Joe: You're one of the earliest adaptors of Agile out there, aren't you?
Patrick: I wouldn't say that. Agile has been around for quite a long time. It's growing in
popularity I think. It's also growing, in terms of how to scale it to larger organizations.
Agile started with smaller communities of developers, and it really focused on how you
can be productive with a smaller group. Over time, larger organizations have been
adopting a lot of the agile practices, and figuring out how to apply those in a larger
enterprise context.
Joe: How does the agile process work at Xerox? Can you do that, an overview?
Patrick: Do you mean the way we train it, or how we actually utilize these tools and
techniques?
Joe: How do you utilize the tools and techniques?
Patrick: There are really two planks to this, I think. When we talk about agility, we're
talking about business agility. There are really two things you need to be an agile
business. You have to have agile processes, and you have to be technically agile. So, our
agile processes really look at our software development process, and try to make sure
that we can be as responsive to change as we possibly can. Our customer requirements
are constantly changing, so we need to be able to respond to them.
The process that we use to do that, most of Xerox has been adopting Scrum as their
agile project management technique. Scrum is a relatively simple project management
process, but it really gives a lot of opportunities to be responsive, to give feedback, and
to adapt a change, and also to have it built into continuous improvement.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
We can have very agile processes that allow us to respond to our customers, but also in
order to be responsive to your customers; your software has to be agile as well. You need
to be able to write and design your software, so that it can easily change when your
requirements change.
If you have a lot of high coupling, things can get very brittle that way. Our technical
aspects of this really look at understanding good design, and making sure we have unit
tests in there. When you do changes, you do so knowing if you broke something or not.
So, when we do our training, we have the two planks. You have to have agile processes,
and you have to be technically agile, so that your whole business can be agile.
Joe: Does it take a different type of software developer to like Agile?
Helen: I don't know that it really takes a different type of software developer; it is really
I think more of just learning different skills and techniques.
Joe: I always picture the software developer, the guy sitting there who is doing the
coding in the little corner by himself. Agile is something that becomes more of a
community type, more of a team effort.
Helen: That's one of the things that we've worked closely with our developers to
overcome is that cultural change as you described, working in the corner in their own little
cubicle, to being able to work more collaboratively with their Scrum team in a more open
environment, sharing ideas and working pair wise.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Patrick: I think our experience has been that even those folks who traditionally like to
be off on their own, and like to work in their cube or whatever, have really grown to enjoy
the community spirit. Because you come in, and you start working with a group of people
and it's just a much friendlier atmosphere. It has been well received, I think in general.
Helen: I have to say, that initially there was a little bit of reluctance to it. The more
success we have with it, the more other engineers are becoming more open and willing to
try it, and to do it.
Joe: You mentioned that you're using Agile in inbound marketing. How are you using
that?
Patrick: I don't think it is so much Agile in inbound marketing, but we have been using
the Design for Lean Six Sigma curriculum and techniques. A lot of our inbound marketing
focuses on a lot of Six Sigma parts, and understanding that you are looking at populations
and sample sizes, and making sure that you are really getting true voice of the customer,
and not just what your impression of it is. There is a lot of the more statistical analysis in
there.
But there is a feed into the other part as well in the sense that the product marketing
people and our product owners are understanding that they don't have to give us 100%
of the requirements upfront and then we're going to go off and come back a year and a
half later and hopefully do the product that they wanted.
They know they are able to now feed in the requirements as they get them and adjust
those priorities over time, because we are going to deliver the content iteratively and they
can get feedback and look to see if it's really the product they want and they can make
adjustments as we go.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Helen: Not only do we teach them that they are able to do it but it's the more desirable
way to do product development now.
Joe: How long of a cycle do you have? You develop something then you push it out to
the customer and that feedback cycle comes back. It's not a tomorrow thing and I know
it depends upon the project a lot, but what do you do in the meantime? Do you have
other projects going on while you're waiting for the feedback of the first one? Do you
have, as some people call them, stories that you're making as you're going through the
process?
Patrick: The iterations for the development teams are usually two to four weeks so
they'll deliver some level of content every two to four weeks. The feedback they're
getting is going to be from the product owner, product marketing, and any other
stakeholders who are interested in seeing the progress of that development. It's not
necessarily being released out to the customers that frequently but you're getting that
constant feedback and you're relying on your product marketing people to be giving you
the requirements of the actual customer and giving you the proper feedback.
When they believe the product is ready to meet their customers' needs, that's when you
go off and you actually release it to the customer so that they can get the product that
they were really looking for.
Joe: One of the things I'm thinking of is how software developers work as a team. You
talked a little bit in a note I saw from you about pair programming. How does pair
programming work?
Patrick: Pair programming is basically two programmers working on the same piece of
code together side by side, with the same machine though they might have two
monitors.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
There are a couple of really important things that happen with pair programming. One is
when you're working side by side like that you're getting instantaneous code review
rather than some programmer programming his code, scheduling a meeting, then having
a group of people review his code some weeks later.
When you do pair programming, you get that instantaneous feedback. It's another one of
these lean principles where we are trying to eliminate that waiting time, that waste, by
getting the instant feedback.
The other thing that happens with pair programming is you do sharing of information and
sharing of knowledge. So it's a great way to bring someone who's new to a particular
module and you might have the person who is an expert in the module. Working
together, they get this cross pollination of training and knowledge.
It's a great way to get that kind of feedback. The other thing when we do peer
programming is to do with the person who's not actually typing, we call them the co-pilot
and they keep the list of all the things they are working on.
They are the consciousness of the other person making sure they keep track of things:
don't forget we have to go back and do the refactoring, don't forget we have to do this,
or we might want to take a look at this design. They create that to-do list. So together
they work very closely to develop the particular module.
Joe: Doesn't one become more dominant than the other, one becomes a primary
programmer and one becomes a checker, or do they switch roles?
Patrick: No you switch pretty frequently. You wouldn't program for more than an hour
before you switch so you switch quite frequently back and forth.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Helen: And that just helps to perpetuate the knowledge sharing that Pat mentioned a
minute ago.
Joe: Is that similar to continuous integration or is it entirely different?
Patrick: It's pretty much different. Continuous integration is when you want to
integrate your software as often as possible because when you do that integration you
are gaining knowledge about whether or not your code is working with other peoples'
code. Continuous integration is making that integration happen all the time. Essentially
every time a programmer checks their code in, the continuous integration server is
going to take that new code, bring it over to its environment, build the software, and
run all the tests.
When the programmers are doing their programming they have unit test for all the
codes that they are actually writing. When they check it in, the continuous integration
server builds the code and runs the test to make sure nothing is broken.
Traditionally, what would happen is you do your integrations at the end of a long
development cycle. You develop code for three months then do your integrations. What
do you find out when you do your integrations? It doesn't work.
Helen: Everything is broken.
Patrick: Right, everything is broken. There were misunderstandings and lack of
communication. Then takes you a really long time to figure out why it broke and you
have to do all this debugging. When you do it continuously you get that feedback
immediately. Then you know exactly what broke because you have tests told you exactly
what broke. It just speeds up that whole cycle.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Joe: How do you know when it's good enough? I mean, how do you really know - as
you are sitting there doing Agile, it's the Lean thing of continuous improvement - how
do you know when you have exhausted it? When does the product release happen? As
you go through that process, how do you know when it's right, when it ends?
Helen: At the beginning of the process or at the beginning of the release, you define
what the requirements are for done, how good is good enough, what are the criteria for
the release. Then you have to meet that definition at every iteration. When you
implement the feature, has it met the definition of done for that feature? You
demonstrate it to the product owner at the end of every iteration and then again at the
end of every release. The product owner is the one who says whether or not it has met
their satisfaction.
Joe: Now, would you recommend Agile for everyone?
Patrick: I think there are a couple things that come into play; one is the kind of
product you are developing. Agile works better for some projects than others. Though I
think you can use these agile techniques on any project, it's just a better fit with some
than others. I think there are some cultural aspects in there as well - some companies
might not respond to Agile techniques as well as other companies. If you have a very
command and control culture, then Agile is going to be a real tension in there because
Agile gives a lot of control down to the developers. There's a lot of self-organization and
flexibility. If you have a very strong command and control culture, that's not going to fit
very well.
Helen: I think the other point that Pat mentioned earlier is the scalability. If you have a
very large development organization, it does take a lot to scale appropriately to make it
work. And that's some of what we have been working on at Xerox since the beginning.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Joe: I always hear Agile mentioned with Lean but I very seldom hear it mentioned with
Six Sigma. It seems that Six Sigma is a pretty integral part of Agile at Xerox. Is that
different than most or do you think it is quite common?
Helen: I don't know how common it is but it is something that we at Xerox intentionally
strove for - the integration of Lean with Six Sigma.
Patrick: I think you might not hear it called Six Sigma in a lot of other Agile
communities but if you listen to what they are talking about most Agile communities talk
a lot about appropriate measurements and metrics. If you look, a lot of people
misconstrue Agile as being no discipline, very loose, and that's not true at all. It's
actually a very disciplined process with a lot of good metrics and measures that
understand how you're progressing and what you're delivering. Are you delivering the
right amount of quality?
So, they may not call it Six Sigma, but it's really about understanding what it is you're
developing through a good sense of measures and metrics. To me, that's what Six Sigma
is all about, reducing your defects and your variation through good measures.
Joe: What's your typical size of teams that you have in an agile project?
Helen: Typically, we have about seven, plus or minus two. A typical team is comprised
of the product owner, the Scrum master, the developers, a tester, maybe a UI designer.
We try to make them as cross functional as possible.
Joe: You've mentioned Scrum. Can you give me just a brief definition of it?
Helen: Scrum is just a lightweight project management method for Agile or iterative
software development. Actually, it could be used for anything.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Patrick: Right, it doesn't have to be for software.
Helen: It doesn't have to be for software, but in our environment, that's what we use it
for.
Patrick: There are basically three roles and there are five events that occur in the
Scrum process. All of those roles and events have pretty critical purposes. In the
beginning, there's a sprint planning meeting, where the planning is done for that
particular sprint. What's going to get accomplished? That's really the responsibility of the
product owner. He defines the what, and then the team goes off and defines the how.
They come up with all the tasks that they need to do to deliver the what.
Then there's the sprint itself, where they're doing the actual work. Within there, there's a
daily Scrum where the team gets together and they answer three basic questions: What
did I do since the last sprint meeting? What am I going to do today? And, do I have any
impediments?
That synchronizes the team. Every day, the team gets synchronized. That meeting is a
maximum of a 15 minute meeting, so it's a very quick, brief thing. Get together,
synchronize, all right, let's get back to work.
Then, at the end of that iteration, you have a review. That review is, you basically have a
team comes back and says, "This is what we delivered. This is what we promised that we
were going to deliver. Here's what we delivered."
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Patrick: They demonstrate it to the product owner and any other key stakeholders,
whether its management or customers or whomever, that wants to watch the progress of
their development. You get another feedback, where the team gets the feedback from the
product owner, and are they doing, are they creating the right product? Because that's
the most important thing, respond to the changes that our customers are bringing to us;
we want to deliver the right product.
And then there's the... The last event is the retrospective, where the team gets together,
and looks at what worked in this last iteration, what didn't work so well that we can make
some changes.
So, there's a feedback loop, where you have this continuous improvement. So, not only
are you iteratively improving your product, but through the retrospective you're iteratively
improving the process to develop the product.
So, it's very lightweight, but if done right, it can be very effective in developing product
and your process at the same time.
Joe: When you're looking for software developers in the marketplace, do you hold an
agile background as an important feature for Xerox, to be hired at Xerox now?
Patrick: I think that's one of the questions that gets asked, is what kind of background
do you have, and a history of development. What are your design skills? Are you familiar
with certain design patterns? Interestingly now, we're finding as new college grads are
coming out, they are being trained in a lot of this now in university, so it's not some
underground thing. It's really becoming more and more mainstream.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Joe: Where do you think Agile will go in the future? In the next two or three or four
years, do you think that we'll develop more of that process? Is there something out there
that you're kind of playing with now that may replace it, or...?
Patrick: I think that, like anything, Agile is, since it's all about responding to change, it's
able to respond to changes in the environment, and new information, new techniques. So,
I think it... I don't think there will be some sort of revolutionary change, but I think it will
continue to evolve. I mean, if you look at Agile five or ten years ago, it doesn't look the
same now as it did then. It's evolved over time. There was the extreme program
movement.
They were very rigid about what techniques and things you had to do, and now it's a lot
looser. Now, it's more of a toolkit. You apply it as necessary. I think that as time goes on,
you'll continue to see that sort of evolution occurring.
Again, there are always some new kinds of things coming out. There are people talking
about Kanban software development, where they use Kanban techniques to do it. So,
there are different ideas that are always being floated, and I think the good ones will
stick, and the ones that aren't so good won't stick.
Helen: We are constantly looking at what's out there, and whether or not something
might fit within our environment.
Joe: Would either of you like to add anything to the conversation that I left off about
Agile and things that Xerox is doing?
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Patrick: I guess the only other thing that I think that we're finding that's really
interesting here within Xerox that has been a real challenge for us is dealing with agile
development and distributed environments. Because we're a global company, and our
developers are spread across multiple coasts and multiple continents. Implementing agile
techniques across that distributed environment is really interesting. Done right, it can be
extremely powerful, but it has a lot of very difficult challenges that you have to deal with.
And so, that's been one of my more interesting topics right now, is dealing with a lot of
those issues.
Joe: That 15 minute meeting in the morning, is it done virtually or in person?
Patrick: Traditionally, it's done in person. It's a stand up meeting, with folks coming in.
You stand up, you answer the three questions, and then you disperse. Doing it with
distributed teams, all of a sudden you have to come up with all these different virtual
ideas. If you have overlap in work hours, you can use video cameras or maybe just a
phone conference. Things like that. But when you're distributed across a twelve hour time
difference, then you have to come up with whole new sets of ideas and techniques of how
to do it.
That's the thing about Agile. It's all about continually looking at your environment, and
improving. It's basically a plan to check... act as sort of a process. You just have to make
your best guess. Try it, look at your results, and then change your behavior after what
you've learned.
Helen: Since the Scrum teams are fairly small, we try to structure them so that the
team members are collocated, so that we don't have to deal with those issues that you
just brought up.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Patrick: If possible, sometimes it's not possible, and sometimes it's... One of the
experiences I've been observing is that sometimes, actually, forcing the teams to spread
across the multiple coasts makes you face the issues that you have, and it can actually
expose those issues, and by exposing them, you're forced to solve them. Once solved, then
you actually are in a better position. Sometimes by forcing collocation, you are hiding the
rocks? There's value in exposing those rocks.
Joe: As I'm sitting here thinking about it, I envision a Venn diagram, that you could have
different teams across the globe that you could take a project, a three week project, and turn
it into a one week project, just because of the time zones.
Patrick: You can. You can really control that and do it well, you're absolutely right. You could
basically have your developers working 24 hours a day.
Joe: That would be for another discussion, probably.
Patrick: Absolutely. Not the same developers to work out.
Joe: I want to thank you very much Pat, Helen. I had an enjoyable conversation, and I look
forward to getting it posted. It will be on a Business901 iTunes store, so you can download it
to your iPod, if you'd like. And again, thank you very much.
Patrick: Thank you, Joe. It's been a lot of fun.
Helen: Thanks for the opportunity.
Agile Product
Development at Xerox Business901 Value Stream Mapping Expert Status
Joseph T. Dager
Lean Six Sigma Black Belt
Ph: 260-438-0411 Fax: 260-818-2022
Email: jtdager@business901.com
Web/Blog: http://www.business901.com
Twitter: @business901
What others say:
In the past 20 years, Joe and I have collaborated on many difficult issues. Joe's ability to combine his
expertise with "out of the box" thinking is unsurpassed. He has always delivered quickly, cost
effectively and with ingenuity. A brilliant mind that is always a pleasure to work with." James R.
Joe Dager is President of Business901, a progressive company providing direction in areas
such as Lean Marketing, Product Marketing, Product Launches and Re-Launches. As a Lean
Six Sigma Black Belt, Business901 provides and implements marketing, project and
performance planning methodologies in small businesses. The simplicity of a single flexible
model will create clarity for your staff and as a result better execution. My goal is to allow
you spend your time on the need versus the plan.
An example of how we may work: Business901 could start with a consulting style
utilizing an individual from your organization or a virtual assistance that is well versed in
our principles. We have capabilities to plug virtually any marketing function into your
process immediately. As proficiencies develop, Business901 moves into a coach’s role
supporting the process as needed. The goal of implementing a system is that the processes
will become a habit and not an event. Part of your marketing strategy is to learn and
implement these tools.
Be Productive, Be Visual Business901 Value Stream Mapping Expert Status
Get documents about "