This is a public Hive  publicRSS

Posts

  • Are you a solo developer? How are you implementing Agile?100%
    blog entry posted 05/27/08 by Nick Kirkes
    title:
    Are you a solo developer? How are you implementing Agile?
    entry:

    I'm curious to know how other solo/freelance developers are implementing Agile practices into their business?

    more:

    As a part-time freelancer, a good part of my days (and nights) are spent working on projects where I'm often the only developer.  I may have a project manager to work with, but they typically act more as a stakeholder and less of an actual project/resource manager.

    As I'm a recent Agile convert (read "noob"), I've been starting to incorporate Scrum into my personal project management (the morning standups are really, really fast).  It helps that my full-time employer is pushing Scrum so I have been gaining experience from within a standard development team as well. 

    In these freelance projects, the Scrum roles are consolidated to the developer and the project owner (wouldn't the primary developer also be the Scrum Master?).  Besides the shortened communication path, the sprint cycling and backlog management has been a very effective change for me when working with my business sponsors and their constantly updated priorities and timelines.

    So, what are other folks doing to add Agility to their solo-business? Scrum or otherwise...

  • Interview with Ryan Martens, CTO Rally Software Development3100%
    blog entry posted 03/31/08 by Chris.Spagnuolo
    title:
    Interview with Ryan Martens, CTO Rally Software Development
    entry:

    imageAs part of my continuing interview series with thought leaders in the agile industry, here is an interview with Ryan Martens, CTO of Rally Software Development.  Ryan is a devout member of the software industry since the early 1980’s. In the mid-90’s, Ryan moved into consulting and re-engineering using Internet technologies with two different companies and numerous clients. His last start-up was acquired by BEA Systems where Ryan directed product management for BEA’s Portal. Since 2002, Ryan has focused his efforts on changing the software industry through Rally Software. Every day, Ryan drives Rally toward becoming a sustainable business, while working to help customers realize the benefits of software agility. Ryan is a board member on the Agile Alliance, Colorado Conservation Trust, Entrepreneurs’ Foundation of Colorado and the Knight Foundation, as well as being a husband, father and farmer in Boulder, Colorado. 

     Aside from all of this goodness, Ryan is just a flat out great guy, a good friend, and very approachable.  Our team works closely with him and his folks at Rally to bring agile practices to the forefront of our company's development activities.  I'd like to offer my thanks to Ryan for all the help he's given us and for taking the time out of his busy schedule to share his insights about agile software development.

    Q. You have had the opportunity to work with many software development teams in your career.  Is there something special that seems to define or set apart high-performance agile teams?

    A. Cool tools/technologies, cool customers, trust and collaboration have made for fun, high performing teams in my career at 9 software companies and two consulting firms. Being successful enough to be able to continue to play the fun game was the reward. With regards to the special things that set apart high-performance teams, I do not claim to be the expert. Like most, I knew it when I was in it. But thanks to an Agile University instructor and friend, Christopher Avery, we have the research to really put our finger on answers to that question. His research (see great-teams.com) points to three top things that I would totally concur with:

    • Trust
    • Goodwill/Collaboration
    • Clarity in Purpose

    clip_image002

    Q. The flip side of that coin is equally important.  What would say are the common pitfalls that cause agile teams to fail or be ineffective?

    A. I assume you can plot teams on a normal distribution curve, and the great ones and the ones that fail make up the tip and tail of the curve. The ones that fail violate the things that make a great team. Another friend Luke Hohmann, Enthiosys.com, describes the anti-pattern as a “J-O-B.” Whenever it just feels like work, stuff-for-money, or you’re working with people who are painful, it becomes a J-O-B. When it becomes a JOB, you lose the determination to inspect and adapt agile, and you plateau as an agile amateur and ultimately fall back and typically apart.

    Q. There are many agile tools in the market place today.  What are your thoughts on the necessity and value of tooling for agile teams?

    A. All teams need agile tools, techniques and methods to reinforce the structure and discipline of agile. In the talk that Ron Jefferies and I gave at Agile 2007, we talked about three types of “tools.” There are tools that help you reduce the cost of iterating, tools that help increase your visibility within and across teams, and role-specific tools that help accomplish specific tasks. Of course, there is a continuum of low to high tech in all of these categories.

    • Tools that help you reduce the cost of iterating a check-in, a story, or an entire increment include testing tools, mock-up tools, development frameworks, refactoring IDE’s, and testing frameworks that help you reduce your batch sizes. As your batch sizes of running tested features decrease, your agility level increases.
    • Tools that help you increase your visibility across the lifecycle like task boards, agile project management and integrated build tools increase in value as the project grows larger. These tools build collaboration, measurement, discipline and trust to make performance more objective.
    • Role-specific tools like backlog prioritization, specific types of test tools, and modeling tools help make steps in the agile process more effective. The need for these is varied based on the people in those roles and the technology in use of the project.

    You have to think of the tools, techniques and methods as working to support building trust, collaboration and clarity in purpose as well agility.

    Q. Your company actively promotes agile practices for software development.  How has Rally adopted agile practices and what value have you recognized from it?

    A. As we have grown, we have matured our agile practices and disciplines to manage the growth in development, the business and our customer base. We followed an incremental adoption approach to agile, and the value we’ve recognized has steadily increased. Here are the rough descriptions of the transitions that our team went through.

    Step 1 Started Out Iterating – Pull together a new team of 8 into a state of iteration “flow.” We set a two week iteration cycle and worked to stabilize the process so that we could deliver a consistent level of iteration acceptance. We used internal demos to steer our iterations and we gained increasing alignment, component-level quality and company-level visibility. However, we had little feedback that we were building something that was “really” valuable and our testing practices were not good enough to achieve 100% iteration acceptance.

    Step 2 Increased our Agility to “Pull” – This came after we had a handful of customers and we moved the single team into a “pull” state. This included roadmap planning based on feedback, release planning to steer iterations and better acceptance testing tools and techniques. We used customer feedback to help prioritize and shape our backlog and better automation to reduce the size of defect pile we had to clean-up before release. We worked hard at this state to get to a zero-defect mentality both inside the iteration and with regards to overall technical debt. As a result, we achieved a consistent level of 90% iteration and 100% release acceptance levels.

    Step 3 Scaled to Multiple Scrum Teams - We split the 20 person team that was working in a state of “pull” into multiple scrum teams to make meetings and communication more effective. We instituted scrum-of-scrum and product council meetings and built out the integrated build management system. We also instituted a stop-the-line philosophy with regard to broken builds. Set a goal of 90% successful fully integrated builds. We gained velocity in the individual teams, but struggled with the new hierarchy to steer a multi-team program. We broadened our product portfolio to include two products.

    Step 4 Extended Agility Outside the Dev Team – We extended agility out to support and closed the loop with regard to feedback and defect management. By using our Agility Suite to link Salesforce.com and Rally, we tracked the lifecycle and cycle time of customer request. As a result, we gained customer intimacy and trust through increased communication and visibility into our backlog.

    Step 5 Vision and Roadmapping – We then extended agility up to synchronize vision and roadmap across the company. Increased our discipline in business planning to help guide and synchronize our product vision and roadmap planning efforts. Also baked hack-a-thons into our regular release calendar on the last week of every release. We gained better alignment across the company and better day-to-day decision making across a distributed company of 75+ employees.

    Step 6 Pull System Testing Forward into the Nightly Build - Working to move performance and security suites into the nightly process for all product editions and deployment options. Refactoring acceptance test regression suites to run in parallel and reduce run time by a factor of 10. Increasing the quality of the system and reducing cost of iterating with a faster regression suite.

    Q. How does Rally gather and prioritize user stories or requirements from their large user community?

    A. We prioritize at multiple levels and with multiple tools:

    Daily tasks based on stand-up and any issues in production

    • Iteration stories, every 2 weeks, based on iteration rank of ready items from the current release and any patch releases
    • Release epics, every 8 weeks, based on value rank from roadmap, critical deals, market pressures, feature request voting by customers, hack-a-thon efforts and technical debt
    • Product roadmap themes, every 6 months, based on strategic rank from market rhythms, market threats, market opportunities and the stage of each individual product in its lifecycle
    • Product line resource allocation, every 6 months, based on vision, profit and loss, core purpose and business SWOT across the portfolio

    Q. In terms of the scalability of Scrum and agile, what major differences have you observed between small-team scrum implementations and large distributed multi-team Scrum implementations?

    A. The major difference between small teams and large distributed teams is the forced level of discipline. Many small teams can implement agile somewhat. With limited complexities, these teams can run with less discipline and fewer skilled “craftsmen” and still regularly ship quality software.

    Large teams must increase their agile disciplines to manage the scale and distribution complexities or risk falling back to old ways. As a result, the level of tooling to manage cross-team communication, dependencies and signaling teams is a big difference.

    Q. For organizations that are just starting out on their agile journey, what advice can you give in terms of cultural shifts they may need to make to support their agile teams?

    A. Your blog post from mid-January said it best - take baby steps, celebrate the success and don’t bank all your savings from agile successes. Make sure to reinvest parts of your savings back into a continuous quest to learn and get better. This is a game of regular and continuous improvement.

    Internally, we’ve seen great success by adopting agile practices using agile techniques (incremental, iterative, fully inclusive, guided by inspection and adaptation). Don’t try to bite off too much too fast.

    Q. Your organization actively engages in and promotes Green IT practices.  Can you briefly discuss simple things every IT organization can do to green their business?

    A. I think greening is just like adopting agile. We need to get our linear business process to become more feedback driven and sustainable. In this regard, the simplest things are not necessarily the right things. To green, you must get on a curve of incremental adoption. The right thing to do is to get folks from around the company to volunteer, set regular meetings, charter the group, baseline your issues and start picking off the visible, impactful and easy items. You need to build success and demonstrate value. It is really easy to “greenwash,” just like it is easy to “agilewash.”

    Some easy things all of us can do:

    • CF bulbs
    • Motion lights
    • HVAC timers
    • PC power management software
    • Building upgrades with the help of owner and city zoning
    • Purchase Renewable Energy Credits for your server farm or travel
    • Flex hours to support car pooling
    • Work at home solutions

    Q. How do you see agile practices contributing to the greening effort?

    A. As I stated above, adopting agile and greening are both incremental improvement journeys, so teams that are on the expert curve to agility are in a good place to be successful in greening. The driving principles behind agile are the Lean principles of:

    • Eliminate waste
    • Empower teams
    • Amplify learning
    • Build integrity in
    • See the whole
    • Deliver fast
    • Delay decisions

    These are the same driving principles necessary to really create a sustainable company or industry. Fundamentally, I believe we have two perceptions wrong in the high-technology world.

        1. We have product mentality that drives us to follow a linear product lifecycle of taking materials, making products, transferring ownership and having customers discard them as waste. By moving software to a service model driven by agile, we can shift the power to software service providers and begin to change the entire high-technology industry to a more sustainable service model.
        2. We believe building software is a deterministic process and should be managed with traditional critical path methods of project management.

    I have submitted this as a topic to Agile 2008. If you want to hear it, please jump in and add a comment here - http://submissions.agile2008.org/node/2100.

    Q. In general terms, what do you think the future holds for agile software development?

    A. Huge growth! This approach to software development is critical in a world with:

    • Higher customer expectations for immediate action and quality
    • Embedded computing everywhere
    • The computer as collaboration environment
    • Sustainable businesses networks
    • More employees in software/IT because it is a sustainable and globally distributed market

    A look beyond agile at the program level and into business agility and reliable innovation

    • Closer connection to “the customer” through Web 2.0 communities
    • Better tools to get the cost of iterating and current set-based development down
    • Extended into other knowledge work areas
  • The Cooper Syndrome
    blog entry posted 03/20/08 by Chris.Spagnuolo
    title:
    The Cooper Syndrome
    entry:

    image Yesterday's keynote speaker at the ESRI Developers Summit was Alan Cooper.  Cooper is the author of The Inmates are Running the Asylum and About Face.  His talk was entitled Post Industrial Management.  Mainly, he discussed how to get non-technical people to have success and achieve their goals with software products.   He did make some very interesting and valid points regarding the management and executive view of software development.  In particular, he emphasized that organizational structure and technologies that worked in the past are failing today in the post-industrial bit-centric world.  I completely agree on this point.  Most of what passes for management today is based on industrial management, but the industrial age is over.  We need a new wave of executives to find the right organizational cultures and management tactics to support the new post-industrial knowledge workers.

    He also hit on one of the topics that I really think is an issue in software management today and that is the difference between effectiveness and efficiency in software development.  I have written about this before and feel very passionate about it, and it's worth mentioning again.  Cooper provided a quote from Peter Drucker that I think really summarizes this argument very well:

    Effectiveness is more important that efficiency.  Business can decline and even fail at the same time that process reform is dramatically improving efficiency by saving money for the company.

    I would agree and would argue along with Cooper that ignoring effectiveness to focus on cost reduction is a primary cause of software construction failures.

    Cooper also made some great analogies to describe the way software is developed.  He doesn't see software development as an industrial activity.  He believes it's more like a pre-industrial craft in that things are made one at a time, they're not formulaic, and they are complicated and nuanced.  But, he also see's it as a post-industrial craft with more pieces, built by disparate teams, with abstracted notions and massive interaction between the parts.  He described the post-industrial craft of software development as existing in a brittle environment with invisible or intangible products, and working in a world of rapidly evolving tools.  I agree with most of that, except I'd like to believe that the products we produce aren't invisible to our end users.

    I really liked the points discussed above.  However, I found the remainder of his talk to be a little off-base and very biased to a waterfall or modified waterfall approach to software development.  In addition to promoting a waterfall approach, he made several misstatements about how agile teams work and plan.  His first comment was about planning.  He advocated that to successfully manage software projects, you must have detailed written plans.  He also claimed that contrary to engineers' claims, requirements don't change.  He went on to slam agile practices by saying that agile practitioners say that "We shouldn't plan because things change so rapidly".  Anyone who has managed a software project using agile practices knows this is a huge waterfallacy (a fallacy about agile spread around by waterfall advocates).  Agile teams do plan at many different levels.  In fact, studies show that over the life of a project, agile teams do more planning that traditional development teams...they just do it iteratively.

    Where Cooper really began to diverge from an agile approach to software development was in his description of what he called The Software Construction Blueprint.  Here are the required elements of Cooper's "blueprint":

    1. A narrative description of user personas and scenarios
    2. A behavioral overview in narrative form
    3. Detailed form and behavior specifications document
    4. Detailed code examples showing how software will work
    5. Detailed schedule and test plan

    According to Cooper, by definition, blueprints are buildable and biddable.  If you build the blueprint described above, Cooper wholeheartedly believes that you can give a fixed price bid that you are confident in.  Now, I don't know about you, but I've worked on many projects that produced blueprints or whatever you want to call it, but it was heavy up-front requirements analyses.  They were not successful!  On top of that, our customers are not paying us for all of these narratives and specifications...they're paying us for working software.  Now, according to Cooper, an interaction designer builds this entire blueprint and distills everything anyone needs to know about building the software and hands off the design to a production team that actually builds the software.  Because the interaction designer does his job and divine's every requirement exactly, there should be no questions or problems negotiating the software development minefield on the part of the production team

    I have several issues with this line of thinking.  First and foremost, I believe this sets up serious silos within the development organization.  It says that the production team has no input on design and design has no real input on production beyond initial design.  I really believe that teams shouldn't have different titles and divided responsibilities.  The team is the team, period. Break down these silos and strive for more cross-functional teams.  It builds a better understanding of the various project roles and makes for more effective teams. 

    A side issue I have to throw out there is the fact that Cooper is an interaction designer and really came across as selling his services in the keynote (something I found rather distasteful).  Afterward, someone asked Cooper if he or his organization ever builds what they've designed.  He answered "No, we don't".  I won't elaborate here, but I'm pretty sure you're thinking what I'm thinking.

    The bigger issue with his line of thinking is that all requirements can be defined up front and that they don't change over time.  We've all worked software projects before and we all know this isn't true.  Customers essentially have some idea of what they want, but as the software is developed and demonstrated, they begin to understand what they really want.  In agile, we can address those new ideas or changes without any worry that our big upfront design and planning would have been wasted.  But, after asking Mr. Cooper about customer involvement in the production phase of his development model, I completely understood why he believes that requirements don't change.  My question was simple, "Where in the production process do you share completed functionality with the customer and how do you manage the change that is inherent when a client begins looking at what has been developed?"  Aside from the relative hostility with which he answered this question, it was evident that in his model, there is no communication or collaboration with the customer in the production phase.  Apparently, it is possible for an interaction designer to not only define every last requirement up front, but they also have the innate capability to anticipate every change the client would make and addresses them in the blueprint.  I guess it would stand to reason that if you ignore your customers and not allow their voice to be heard in the production phase, you'd think requirements don't change too!

    What really perturbed me was that Cooper said he doesn't believe that the customer even knows what they want, and that the interaction designer knows better than anyone what they need.  I take real umbrage with this assertion.  Essentially, his opinion was ignore your customers, you know what they need.  This to me is a real problem in the software industry.  This kind of thinking is exactly what leads to the 65% of features in most software that are rarely or never used (Check out the Standish Group's CHAOS Report).  Having someone of Cooper's stature stand up and advocate this is not going to do anything good for the software development industry.  And, considering the already low rate of agile adoption in the GIS development world, the last thing that we needed to hear in a keynote session were these toxic, old-school notions of software development.  I've been searching for a term to describe this way of thinking and thanks to the keynote speech at the Dev Summit this week, I think I have one now...The Cooper Syndrome.  Maybe at next year's Dev Summit, Dave Bouwman, myself, or someone else can give the agile counterpoint to the Cooper Syndrome.

    If you want some more insight on the keynote, check out Brian Certain's blog post on the keynote.

  • If ya don't like scrum, don't do it!4100%
    blog entry posted 03/13/08 by Ashwin
    title:
    If ya don't like scrum, don't do it!
    entry:
    I must confess that I have learned the hard way that scrum may not be suited for or welcomed by everyone. I, as the scrum master, have already sat through two retrospectives which basically turned out to be a platform for playing the blame game.

    I can't go in to the details, but based on a request from my boss, I had to work with an unconvinced (about scrum) and non-involved product owner who botched up the majority of effort (I say majority since there were other issues too, but none as big as the one stated).

    Since it was 'his' project, I couldn't give him the boot given that I was a consultant scrum master for this team. So, at the end of the second sprint (this team is still in trials and they didn't meet the done definition in both sprints), I have come to accept that some people simply cannot adapt to the mindset needed to work inside the scrum framework.

    I have decided not to recommend another sprint for this team and that its better for them to continue to work the 'control-tower' way with the product owner in charge.

    So, do you folks think I took the right decision?
  • What are CIO's thinking about agile? Or are they...100%
    idea posted 03/07/08 by Chris.Spagnuolo
    title:
    What are CIO's thinking about agile? Or are they thinking?
    summary:

    OK, maybe it's just me that finds this funny, but a recent survey by Stelligent of CIO's found the following:

    • - 72% of CIO's said that NO, they did not have a solid understanding of Agile Development Methodologies.
    • - 72% of CIO's said YES, they are open to adopting agile methods.

    Now I don't know about you, but if I don't have a "solid understanding" of something, I'm generally not inclined to be open to adopting it!  I think I'd do a bit more research first.  Could this be the buzzword effect: "We have to adopt agile...it's the latest and greatest" while in their head they're thinking "What is agile anyway? I keep hearing about it".

    These same CIO's went on to add their opinions on the importance for organizations to adopt agile methods:

    • - 29% said extremely important, 50% said important, and 14% said somewhat important.

    Hmmm..."It's very important that we adopt something I don't really understand."  Again, maybe it's just me, but I find these results rather funny...or scary depending on your point of view! 

  • Fighting fires the agile way1100%
    blog entry posted 03/05/08 by Chris.Spagnuolo
    title:
    Fighting fires the agile way
    entry:

    image Let's face it, no matter where you work, fires flare up from time to time.  Some are serious and need to be addressed, some are just smoldering and can be put off for a short time, and some are just people yelling fire when there is no fire.  Some organizations are perpetually in fire drill mode and can't break the habit.  So, if you're an agile organization and your agile teams are committed to completing their iteration tasks, how do you fight these fires without interrupting your agile teams?  Even if you allow a buffer of time within your iteration planning for handling unexpected requests, you still run the risk of distracting your development teams with potentially harmful context switching. 

    An interesting solution may be to assemble an agile fire fighting team.  Essentially, the team would be composed of developers from different project teams.  The fire fighting team would be assembled for two-week iterations (synchronized with your project iterations) and team members would rotate in and out of the team.  One team member would be the fire captain.  The fire captain is responsible for handling fire drill requests, triaging them, prioritizing them, and working with the fire fighting team to task them out. During their rotation on the fire fighting team, team members respond to urgent requests and work on them the same way they would any other task in an iteration, committing to address them by the conclusion of the iteration.  What if there are no fires to fight?  Well, don't get too excited...it's not off to the beach for the fire fighting team.  If there are no fires, team members can address defects that may exist on their current project backlogs, they can work on documentation tasks (I knew you'd love that), or they can use the time as part of their hackathon innovation allowance

    My personal preference is that organizations work as hard as they can to move beyond the fire drill mode.  I think it is harmful to your development teams, reduces overall quality and value you are delivering to your customers, and ultimately it will impact you organization in a negative way. That said, if you can't wean yourself off the fire drill mentality, consider putting together a fire fighting team.

  • If scrum only had a heart
    blog entry posted 03/04/08 by Chris.Spagnuolo
    title:
    If scrum only had a heart
    entry:

    I've heard people say that scrum teams don't have a heart.  We plow through backlogs with our heads down.  We finish a project.  We start another and plow through the next backlog.  Story, plan, task, sprint, demo, retrospect, repeat.  Story, plan, task, sprint, demo, retrospect, repeat.  Where's the heart?  When do scrum teams look beyond these super focused iteration based tasks and think about innovation.  I agree with this assessment.  I think that agile and scrum teams can get stuck in this rut.  Well, we've all heard about the Google 20%...20% of time spent working on innovation.  I like that, but can most organizations really afford 20% of our time to do free thinking?  Probably not, we're not all making billions of dollars like Google.  But that doesn't mean we can't do something about this dilemma.  Personally, I like something like a hackfest or hackathon.  Maybe after 6 weeks of focused development, your team gets a week to do some focused play.  A one week iteration...tell us what you're going to work on...be innovative, do something cool and commit to it.  At the end of the week, same old same old...do a review.  Everyone DEMONSTRATES their cool idea.  Not a diagram, not a slideshow...demo something you can show us. 

    I think that unless you're completely dominant in your market space, you need to be doing something like this to keep you innovative and on the competitive edge.  It's the old innovation curves again.  You want to always be anticipating or defining what the next thing is.  If you don't, you slide down the laggard side of the innovation curve and risk becoming irrelevant.  If you slide down that curve, it's very difficult to get back up to that next innovation curve.  So, give your teams time to innovate...it's good for your organization's future, it's good for your customers, and it's good for the professional growth and health of your development teams.

    image
  • Got impediment?
    blog entry posted 03/03/08 by Chris.Spagnuolo
    title:
    Got impediment?
    entry:

    On a daily basis, agile teams should be answering three basic questions: (1) What did you work on yesterday? (2) What are you working on today? and (3) Do you have any impediments to accomplishing your tasks?  That third one is a key question, and one that is answered differently depending on the maturity of your team.  What is an impediment anyway?  It can be a multitude of things, from organizational issues to technical resources, from physical impediments to technical ones.  But how good is your team at identifying impediments and voicing them?  I think that depends on the maturity of the team.  There are always the easy impediments that are surfaced when you first start doing agile.  It's the subtle impediments that are tougher to identify.

    I heard something recently from one of our agile teams when I listened in on a few of their daily stand-up meetings. For three meetings in a row, the same developer reported that he worked the same task all three days and was planning on working on it again.  One of the other developers picked up on this and said, "You only estimated 6 hours for that thing.  Are you having trouble with it?  Is there something we can do to help you out?"  There are two things I really liked about this comment.  First it showed concern about the estimate, but there was no blame attached.  It wasn't "Hey, you said it was going to take 6 hours and now you're 3 days in.  Are you really working or are you playing around?"  It expressed real concern.  And secondly, it asked the right question: "Are you having a problem with accomplishing your task?".  Even though the first developer wasn't reporting an impediment, the second was making sure than there wasn't an impediment.  This led to a discussion between the developers about why this task was taking so long.  It turned out that the first developer was waiting on live data (not staged) from one of our clients and couldn't make much progress without the live data.  I was really glad to hear this conversation take place between the developers.  It clearly illustrated the maturity of the team members to work collaboratively to identify impediments to reaching their iteration goal.   

  • More about agile meetings
    blog entry posted 02/29/08 by Chris.Spagnuolo
    title:
    More about agile meetings
    entry:

    I received several e-mail comments on my last post on agile meetings.  The most common was not about the cost of the meeting time, but about the inability of people to make all of the meetings.  Some of the comments suggested having a wiki or something similar to share the results of each meeting with team members who could not attend the daily stand ups etc.  Others suggested recording the meetings using conference calls or Webex-type recordings.  I would have to voice my opinion that I don't think either of these are good ideas.  The daily stand up is an essential synchronization point for the team and should be attended by everyone everyday...unless there are really extenuating circumstances.  Planning meetings, reviews and retrospectives are equally important and demand the attendance of all team members.

    There are three key points I'd like to make about documenting agile meeting minutes.  First, I believe that the more you enable people to not attend agile meetings the more you encourage the behavior.  If team members have no place to read about the meeting or hear a recording, they're forced to attend the live meetings.  If team members can simply miss a meeting and read a wiki entry about the meeting, while adding their own update to the wiki, you've enabled and encouraged the behavior of missing meetings. 

    Secondly, in agile development, we focus on developing working software, not creating documentation.  I believe this extends to meeting minutes.  If we time-box a daily stand-up to 15 minutes, that should be all we spend on the meeting.  If we're required to document the meeting for those that missed it, we're spending valuable development time writing up the meeting minutes.

    My final point is in regards to a collaborative, tight knit team.  If we enable people to miss meetings, we begin to degrade the collaborative team environment that agile practices thrive upon.  The daily stand-ups and other meetings are a chance for the team to communicate with each other.  It encourages a collaborative team environment.  If team members are enabled to regularly miss meetings, they're less likely to feel a part of the team and less likely to commit to the team goal each iteration.

    So, to wrap this up....don't enable people to miss meetings.  These meetings are crucial to the success or failure of your agile practices.

  • The shape of things to come2
    blog entry posted 02/21/08 by Chris.Spagnuolo
    title:
    The shape of things to come
    entry:

    Yesterday, I wrote about backlogs and what your team includes in them.  Well, it seems that backlogs are on my mind a lot this week.  Today, I was working on a backlog for a new project and was considering what should be in it.  How far ahead should I be looking and what should the granularity of the stories be?  This brought to mind the idea of planning horizons and prioritization. 

    The backlog I assembled is for the rollout of agile practices throughout our company's enterprise.  So, I have some things that require immediate attention and some that I know we won't be considering for a few months.  What I decided was to create a backlog with several planning horizons embedded in it.  The near term horizon has stories that are well defined.  The medium range horizon (2-3 months out) has stories that are defined but are still kind of fuzzy.  And the long range horizon (3-6 months or more out) has stories that are really just headlines.  As we move ahead in time, I'll work to increase the granularity of the medium and long range stories as they get closer to implementation.  We do this on all of our agile projects.  What is does is effectively reduce the waste of spending too much upfront time defining the details of a story that may or may not ever be implemented.

    The next thing I had to do was start prioritizing the stories.  Instead of spending too much time prioritizing the entire list, I actually went through the list and did a top ten list of stories.  I know that we aren't going to work through more than 10 stories in the next 4 weeks, so I think that prioritizing beyond that can be wasteful as well.  As we complete stories on the top ten list, we'll move new stories into the top ten to keep it constantly stocked. 

    I think that the use of both of these ideas keeps the backlog in alignment with value production and reduce waste.