SlideShare a Scribd company logo
1 of 9
Download to read offline
Manage People & Projects




   It’s All in
 How You
             Slice
    Design your project in
      working layers to avoid
     half-baked incremental
   releases. BY JEFF PATTON                                        SUPPOSE FOR A MOMENT YOU’RE IN CHARGE OF

                                                                   development at BigNewIdea Software. You’ve
                                                                   adopted an Agile development approach that
                                                                   suggests releasing your software in smaller
                                                                   incremental releases is a good idea.
             BigNewIdea’s marketing folks and business managers exclaim excitedly, “If we build the highest-
             value features first, the users will love our first release!” You develop for a few months, always
             shifting the highest-value features to the top of the stack. You eventually release a well-built, rela-
             tively bug-free release. First responses from people using the software seem positive. “This looks
             really good!” they say. “It’s got all these features we’ve wanted for a long time!” But strangely,
             sales seem to be slower than expected. Salespeople find that many customers who have pur-
                                                                                                                       TOM SCHIERLITZ/GETTY IMAGES




             chased the software aren’t actually using it. “What’s wrong?” marketing asks through question-
             naires and expensive focus groups. The reply: “What you have is fine, but there’s not enough here



  16   BETTER SOFTWARE   JANUARY 2005     www.stickyminds.com
It
     FPO
Manage People & Projects


   for me to get my job done. I still have to        as domain experts, testers, and user inter-      around in your model. I’ve found it’s easy
   do much of my work manually. I have to            face designers. Choose people who have           to merge features originating in a spread-
   transfer information from my paperwork            some ideas on how the software will earn         sheet with a word processor document
   to the software and back again. Some-             your company money—your stakehold-               that will print them on precut 3×5 cards
   times I can’t even figure out a paper             ers. Choose people who know something            or business cards. This way, the cards are
   workaround. I’ll wait for the next release        about how long this work will take to            easy to read and work well within a card-
   to see if you get farther along.”                 build—a developer or two. Four to eight          modeling exercise. Leave room under the
                                                                                                      feature statement for the details we’ll add
                                                                                                      in Steps 2 and 3.
   [When releasing] software incrementally,                                                               Suppose I’m building some software
   how do you choose a first                                                                          for small retailers. I know that their busi-
                                                                                                      ness processes go a bit like this (notice
   bundle of features that is both high value                                                         that each one starts with an action verb):

   and immediately useful?                                                                            s   Create purchase order for vendor

       You expected that all those high-value        people total is a good number. Use the           s   Receive shipment from vendor
   features would make a great product, but          creation of the model as an opportunity
   it turned out you needed some of those            to elicit discussion about the features be-      s   Create tags for received items
   low-value features to hold everything to-         ing built.
   gether—to make the product useful to                                                               s   Sell items
   those trying to accomplish work with the          STEP 1: COLLECT FEATURES
   software. If you still want to release the        With the prep work done, it’s time to            s   Return and refund items
   software incrementally, how do you                start assembling the model. The first step
   choose a first bundle of features that is         is to answer the question “What does our         s   Analyze sales
   both high value and immediately useful?           software do?” You should start with a
                                                             user-centric list of features. De-       STEP 2: ADD DETAILS
                                                             pending on your situation, this          To help you model these features, let’s
                                                             might be trickier than it sounds.        note three important details on the
                                                                 My definition of a good feature      cards: who uses the feature, how often
        Key                                                  is one that is expressed from a          the feature is used, and how valuable the
        Ingredients                                          user’s perspective. For example, if I    feature is.
                                                             were building new software for a             First, for each feature, detail the kind
        2–3   large sheets poster paper                      retail store, a feature might be “sell   of user who uses it. When describing this
        3–4   packs markers                                  items at point of sale” as opposed       feature, you likely envisioned someone
        1     roll tape                                      to “the system supports EAN-13           using it—who was he? You can identify
        1–2   packs 3×5 index cards                          barcodes.” There’s a difference          him with a job title, a role name, a per-
                                                             there that I hope is not so subtle.      sona, or in any other way most appropri-
        Plus, the fundamental element of all good
                                                             The first feature describes an activ-    ate for your system. (See this issue’s
        meetings: food.
                                                             ity done by a person; the second         StickyNotes for more on roles.)
                                                             describes an attribute of an object.         Looking back at my set of retail store
                                                             Look for features that start with or     features, I know that the same person
                                                             include some action verb; that’s a       usually doesn’t do all this stuff. I know
   In this article, we’ll walk through a sim-        good sign. When describing your soft-            that the work is divided between mer-
   ple, collaborative, card-based planning           ware, it helps to indicate how it will be        chandise buyers, stock receivers, cus-
   model that does just that.                        used rather than how it might look or the        tomer consultants, and sales analysts. I
                                                     details of its implementation. Keeping           note each user under the feature state-
   PREP WORK                                         your focus on the usefulness of the soft-
   Before you begin, you need to choose a            ware at this stage helps to ensure that the
   good cross section of folks to participate        bits of software released incrementally                      create po
   in creating the model. While the model            will be useful.                                             for vendor
   could be prepared by one person, I                    If you’re not already describing fea-
   wouldn’t recommend it. Having a mix of            tures for your software in a user-centric              (merchandise buyer)
   people will help increase understanding           way, you may need to spend a little time                frequency: weekly
   of the software throughout the team.              reframing your features.                                  value: medium
   Choose people familiar with the users                 Write the features on 3×5 cards or on
   and functionality of your software, such          something else that you can easily move          Figure 1: A completed feature card.


   18     BETTER SOFTWARE        JANUARY 2005       www.stickyminds.com
Manage People & Projects




   Tips for Success
   When assembling the batch of features for your project, pay at-        release or a prior one. I’ve found that if I slice releases horizontal-
   tention to the following details to help ensure success.               ly starting from the top of the model down, I rarely run into de-
       When using use cases, focus first on those where the actors        pendencies I haven’t already resolved in a previous release.
   are a single user and the system. Avoid planning with use cases            Sometimes folks suggest features that aren’t really about users
   that describe the internal workings of the system. Avoid use cas-      and the functionality they need. Features like “migrate to an Oracle
   es that describe business processes at a very high level; make         database” or “change the look and feel to match our new brand-
   them what author Alistair Cockburn calls “sea level system scope       ing.” These sorts of features don’t work well in this type of model.
   use cases.”                                                                When talking about certain features, you might find it’s tough
       If you’re using user stories, include a user of the feature in a   to defer some of them completely. When slicing off a set of fea-
   concise story statement, such as the one author Mike Cohn cred-        tures to release, discuss how usable that release will be. For each
   its practitioner Rachel Davies with inventing: As a [type of user] I   user of the system ask if she will be able to do her work with this
   want [some particular feature] so that [some benefit is received].     subset of features. For each important feature left out, is there a
   For example: “As a bank customer I want to view my current ac-         paper process or software workaround that allows her to live
   count balance so that I know my recent deposit went through.”          without the feature—no matter how annoying that might be?
       The completed model shows us features arranged in the order        Could the feature be split into a crude minimal version for earlier
   they’re needed by people and business processes, but this really       release and a more elaborate version for later release?
   only gives us an indication of dependence. As you slice off releas-        See this issue’s StickyNotes for some reading that will help
   es, scan each feature for dependencies that might not be in this       ensure a good outcome.




ment he is involved with.                         but nothing about value. You’ll find with           sheets and tape them together to form a
    Next, note how frequently you be-             a good mixed collaborative group, you’ll            broad poster.
lieve each feature will be used. You can          be able to quickly fill in all these details.           Draw a horizontal line across the top
use simple notation like high, medium, or         You’ll notice lots of good discussion               of the page and label it usage sequence.
low. I use a little more precise continu-         while doing it.                                         Draw a line on the left side of the
um, writing under the user on the feature            When writing your features on cards,             page from top to bottom and label it crit-
card either hourly, daily, weekly, month-         the same information should appear in               icality. Label the top endpoint of this line
ly, or quarterly.                                 the same place all the time. This makes             always used, the bottom endpoint sel-
    Finally, for each feature, note its value     the cards easy to read when placed in the           dom used. The resulting diagram should
to the purchasers of this system. If your         model. They might start to look like                look like the one in Figure 2.
company has a good understanding of               playing cards in a game. That’s good.                   You now need to place features in the
where ROI comes from on this system,              Building the model should feel a bit like           model according to usage sequence and
this may not be too hard—but for the rest         you’re playing a game.                              criticality. By using the features we wrote
of us, this is usually a subjective judg-                                                             out for our retail software earlier, we’ve
ment. Using high, medium, and low will            STEP 3: PLACE CARDS IN                              already listed them in the order the fea-
work fine for our use today. I’ll write the       SEQUENTIAL ORDER                                    tures will be used. PO creation happens
value under the frequency on each card.           To build this model, lay a few sheets of            before shipments are received from the
    When all of these details have been           poster paper on a large worktable. This             vendor. Tags are created before the items
added, one of the feature cards might             model is generally wide, so arrange                 are put on the shelf and sold. Sales are
look like the one in Figure 1.
    When trying this at home, make                                                            Usage Sequence
adding these details a collaborative activ-        always
                                                    used
ity. Assuming you’ve got your features
written or otherwise printed on cards,
                                                     Criticality




spread those cards out on the table. Take
turns picking up cards and adding user,
frequency, and value. If you’ve got a
good mixed group, you’ll notice that
some folks have strong opinions about              seldom
some of these details. Some folks may               used
know a bit about the user and frequency,          Figure 2: The model starts with an x and a y axis.


                                                                          www.stickyminds.com          JANUARY 2005        BETTER SOFTWARE          19
Manage People & Projects


   analyzed after some items are sold.                                    a manner as possible, place the cards in                         placed with vendors informally over the
   That’s what I mean by usage sequence.                                  your model by usage sequence, with fea-                          phone without a purchase order being
       In reality, it may not seem so cut and                             tures used early on the left and later on                        created in the system. So in those cases,
   dried. If we really look at a retail store,                            the right. Have them overlap features                            we’ll receive the items into inventory
   we might find buyers on the phone plac-                                that might happen at about the same                              without a PO. This is generally the ex-
   ing orders at the same time receiving                                  point in time. If someone gets confused                          ception, but it happens and should be
   clerks are in the back room receiving and                              about the position of a feature, suggest                         supported. So our feature “create PO for
                                                                                                                                           vendor” is important to our system and
                                                                                                                                           is used frequently, but not always.
   In reality, it may not seem so cut and                                                                                                      As a group, adjust vertical positioning
   dried. . . . It looks like all these features                                                                                           of your cards based on how critical they
                                                                                                                                           are to the business process. If the feature
   are being used simultane-                                                                                                               is always done, place it on the top. If the
                                                                                                                                           feature is often —but not always—done,
   ously and indeed they are.                                                                                                              place it a bit below the top line. If it’s sel-
                                                                                                                                           dom done, place it toward the bottom. If
   tagging. If the store’s open, we hope cus-                             that he look at the feature and its imme-                        you’ve got enough people working on
   tomers will be on the retail floor happily                             diate neighbors. It’s sometimes easier to                        the model simultaneously, this may start
   buying our products and customer con-                                  answer the question “does this happen                            to look like a game of Twister. You’ll ob-
   sultants will be ringing them up. It looks                             before that” than to try to take every-                          serve people moving cards down only to
   like all these features are being used si-                             thing into account at once.                                      see them adjusted back up by someone
   multaneously and indeed they are. So                                      If we arranged our feature cards in se-                       else. Use these conflicting card move-
   when sequencing them in your model,                                    quence, it might look a bit like the dia-                        ments to elicit discussions on why some-
   arrange them in the order that seems log-                              gram in Figure 3.                                                one might believe a particular feature is
   ical when explaining to others the busi-                                                                                                more critical than another feature.
   ness process. If you explain the business                              STEP 4: GROUP BY                                                     If we adjust our features for criticality,
   process starting with the selling part,                                FREQUENCY                                                        our model might look a bit like the one
   that’s OK, put that feature first. We want                             For each of these features, how critical to                      in Figure 4.
   this model to help us tell stories about                               our business is it that someone actually
   our software, so arrange them in an or-                                uses it? Let’s look at our retail features:                      STEP 5: NOTE LOGICAL
   der that makes it easy to tell stories.                                When working with the business people                            BREAKS IN WORKFLOW
       Distribute the cards among partici-                                who know how their business is run,                              If your system is anything like those I’ve
   pants. Then have everyone, in as orderly                               they inform us that orders often are                             worked on, you’ll have knitted together a
                                                                                                                                           few distinct processes done by different
                                                                    Usage Sequence                                                         people at different times. When you look
    always
                                                                                                                                           across your model from left to right, you
     used                   create po          receive shipment        create tags for         sell items             analyze sales        might start to see logical breaks in the
                           for vendor            from vendor           received items
                         (merchandise buyer)     (stock receiver)       (stock receiver)
                                                                                           (customer consultant)
                                                                                             frequency: hourly
                                                                                                                         (sales analyst)
                                                                                                                      frequency: monthly
                                                                                                                                           workflow. Remember how for each fea-
                          frequency: weekly      frequency: daily       frequency: daily        value: high                value: high
                                                                                                 return and                                ture you noted a type of user or role that
      Criticality




                            value: medium           value: high          value: medium
                                                                                                refund items
                                                                                              (customer consultant)                        primarily used the feature? You’ll find
                                                                                                 frequency: daily
                                                                                                  value: medium
                                                                                                                                           that these breaks often occur when there’s
                                                                                                                                           a role change. Reading left to right you’ll
                                                                                                                                           see some features are used by one role,
    seldom
     used                                                                                                                                  then you’ll see a change to another role
   Figure 3: The features cards are first arranged by sequence.                                                                            with some features used by this next role.
                                                                                                                                               As a group, discuss where you see
                                                                    Usage Sequence                                                         breaks or pauses in the business process.
    always                                                                                                                                 Then, at each break draw a vertical line,
     used                                      receive shipment
                                                 from vendor
                                                                                               sell items                                  dividing the model into something that
                                                                                           (customer consultant)
                                                 (stock receiver)                            frequency: hourly                             looks a bit like swim lanes. Label the re-
                                                 frequency: daily                               value: high
      Criticality




                                                    value: high                                                                            sulting columns for each process as
                                                                                                                                           shown in Figure 5. If you’re finding it
                            create po
                           for vendor
                                                                       create tags for
                                                                       received items
                                                                                             return and
                                                                                            refund items
                                                                                                                      analyze sales        hard to divide the model in this way, dis-
                                                                                                                         (sales analyst)
                         (merchandise buyer)                            (stock receiver)   (customer consultant)      frequency: monthly
                                                                                                                           value: high
                                                                                                                                           cuss why. Is there really only one type of
                          frequency: weekly                             frequency: daily      frequency: daily

    seldom
                            value: medium                                value: medium         value: medium
                                                                                                                                           user doing one process? Or, do we have
     used                                                                                                                                  different user’s features mixed up in the
   Figure 4: The sequential feature cards are then staggered according to criticality.                                                     same timeline?

   20               BETTER SOFTWARE            JANUARY 2005             www.stickyminds.com
page 21
full-page ad
     SQE
Manage People & Projects


      This is all quite interesting so far, but                                                                Usage Sequence
   what are you learning about how to               always            BUYING                            RECEIVING                        SELLING              ANALYZING
   build releases for your software? Let’s           used
                                                                                          receive shipment                                sell items
   take a closer look.                                                                      from vendor                               (customer consultant)
                                                                                            (stock receiver)                            frequency: hourly




                                                      Criticality
                                                                                            frequency: daily                               value: high

   STEP 6: MARK THE FIRST                                                                      value: high



   SYSTEM SPAN                                                         create po                                  create tags for       return and             analyze sales
   Now we’re going to divide the model                                for vendor                                  received items       refund items               (sales analyst)
                                                                    (merchandise buyer)                            (stock receiver)   (customer consultant)    frequency: monthly
   into what I call system spans. (The Pop-                          frequency: weekly                             frequency: daily      frequency: daily           value: high
                                                    seldom             value: medium                                value: medium         value: medium
   pendiecks introduced me to the term               used
   “span” in their book Lean Software De-           Figure 5: The model is vertically divided into business processes.
   velopment.) A system span is a set of fea-
   tures that group together logically and                                                                     Usage Sequence
   that cut through the business processes          always            BUYING                            RECEIVING                        SELLING              ANALYZING
                                                     used
   horizontally from start to finish.                                                     receive shipment                                sell items
                                                                                            from vendor
       The first span should be the smallest                                                (stock receiver)
                                                                                                                                      (customer consultant)
                                                                                                                                        frequency: hourly
                                                      Criticality


   set of features necessary to be minimally                                                frequency: daily
                                                                                               value: high
                                                                                                                                           value: high


   useful in a business context. In our mod-                                                                                                                  System Span
   el, it turns out that the very top row (re-
                                                                       create po                                  create tags for       return and             analyze sales
   ceiving and selling items) is the first, most                      for vendor                                  received items       refund items               (sales analyst)
                                                                    (merchandise buyer)                            (stock receiver)   (customer consultant)    frequency: monthly
   minimal system span. This will be true of        seldom
                                                                     frequency: weekly
                                                                       value: medium
                                                                                                                   frequency: daily
                                                                                                                    value: medium
                                                                                                                                         frequency: daily
                                                                                                                                          value: medium
                                                                                                                                                                    value: high


   your model, too. Draw a line under the            used
   top row of your model to indicate the            Figure 6: The first system span represents the smallest set of features necessary to
   features that make up this first system          be minimally useful in a business context.
   span, as shown in Figure 6.
       The first span represents the most           built any functionality to support the                           the “big picture” helps them estimate a
   concise set of features that tunnel              merchandise buyer or the sales analyst.                          little better. (See this issue’s StickyNotes
   through the system’s functionality from          Ultimately, we know that supporting                              for more guidance on quick estimation
   end to end—the bare bones minimum                those folks with some functionality is im-                       techniques.)
   anyone could legitimately do and still           portant. But, because the work they’re                               Once you have rough estimates, add
   use the system. This small span should           doing doesn’t always happen, we can de-                          up the estimates for the features above
   always be your first release, but it need        fer it at least for a little while.                              the line marking the first span. This is
   not be the first public release of your              After drawing the line in your model                         how long it should take to build.
   software. Getting this part completed            are there roles and business processes
   and released, even if only to internal test      that are omitted? Talk about them as a                           STEP 8: SLICE AND SERVE
   environments, forces resolution of both          group.                                                           The plan may now be “sliced” horizon-
   the functional and technical framework                                                                            tally into subsequent system spans, or
   of your application. Your testers will be        STEP 7: FILL IN BUILD                                            spanning releases. Well, sort of horizon-
   able to see if the application hangs to-         ESTIMATES                                                        tally. Choose features below the marked
   gether coherently. Your architects will          OK, so building a first span is a good                           first span that group together logically.
   be able to validate the tech-stack func-         idea, but how long will it take? If you’ve                       Choose enough features such that the
                                                                                                                     estimated elapsed development days fit
                                                                                                                     within an appropriate release date. This
   A system span is a set of features that                                                                           may cause you to draw lines that wan-
   group together logically                                                                                          der up and down to catch and miss fea-
                                                                                                                     tures while traversing the model from
   and that cut through the business                                                                                 left to right. Lines drawn through the
                                                                                                                     plan make it start to look like a haphaz-
   processes horizontally from start to finish.                                                                      ard layer cake.
                                                                                                                         At this point in the collaborative ac-
   tions as expected and may begin work-            got developers participating in this exer-                       tivity, the business people responsible
   ing on load tests to validate scalability.       cise, and you should, this is a good time                        for the release should step forward. Let
   The team can begin to relax knowing              for them to start giving development es-                         them use their best judgment to decide
   that from here on in they’re adding              timates for each feature. Write the time                         what features best make up a release. If
   more features to a system that can be re-        estimates in days or weeks directly on                           you’re an observer, ask questions so you
   leased and likely used.                          the cards. Very rough estimates will do                          understand why one feature rather than
      Notice how in the example we’ve not           fine. Developers may find that seeing                                              (Continued on page 40)

   22   BETTER SOFTWARE        JANUARY 2005        www.stickyminds.com
page 23
 full-page ad
SPI Dynamics
Manage People & Projects


   (Continued from page 22)
   another finds its way into an earlier re-
   lease.
       Responsible business people continue
   to slice your “cake” into appropriate re-
   leases. When choosing features to fill a
   release, you may want to consider the
   features with the highest value first. You                                           hi-res
   may also want to consider building up
   support for a particular type of user or
                                                                                         TK
   business process. In a release, you might
   try completing all the valuable features in
   one of your business process columns.
   This will result in some funny-shaped
   lines stretching from left to right.
       After slicing the model into releases,
   you should be able to see how many re-
   leases it will take to build this software     Figure 7: A real-life model is much more complex and spans several business
   and what might be contained in each            processes.
   release.
       Now, let’s get real. Most software         shown in Figure 7. Notice in this model     THE RESULTS
   worth writing has more than six features.      that software spans several business        Because you’ve arranged features in se-
   Depending on the granularity of your           processes. Notice how the releases cut      quential order, you now understand what
   features, you’ll likely have dozens. With      from left to right in some funny jagged     features depend on one another. Because
   a reasonable number of features your           lines that catch the features the planner   you’ve arranged them by criticality, the
   plan will likely look like the photo           intended for each release.                  important features are now emphasized
                                                                                              at the top of the plan. Because you’ve di-
                                                                                              vided the features into business process-
                                                                                              es, you have a better idea of the function-
                                                                                              ality that supports each major business
                                                                                              process in your software. You have deter-
                                                                                              mined the minimal feature span that lets
                                                                                              you get your system up and running, end
                                                                                              to end, as soon as possible. All this infor-
                                                                                              mation is provided in one convenient pic-
                                                                                              ture. By employing a little common
                                                                                              sense, we should be able to carve off the
                                                                                              smallest possible releases that will still be
                                      1/3                                                     useful to the people who ultimately re-
                                                                                              ceive those releases.
                                    square                                                        Incremental release may be one of the
                                                                                              more valuable aspects of the various Ag-
                                      left                                                    ile development methodologies. An early
                                                                                              release can help capture market share,
                                                                                              generate early return on investment, and

                                       Rally                                                  reduce money risked on software devel-
                                                                                              opment. A strong early release can in-
                                                                                              crease those benefits immensely. The
                                                                                              model we’ve built can give you a better
                                                                                              picture of your software’s features and
                                                                                              help your organization construct the
                                                                                              most useful and coherent early release
                                                                                              possible. {end}

                                                                                              Jeff Patton leads teams of Agile develop-
                                                                                              ers to build the best software possible.
                                                                                              He proudly works at ThoughtWorks.

   40   BETTER SOFTWARE       JANUARY 2005       www.stickyminds.com

More Related Content

Similar to How you slice_it

Business value through requirements
Business value through requirementsBusiness value through requirements
Business value through requirementsDevon Goda
 
Can Agile Work for this Project?
Can Agile Work for this Project?Can Agile Work for this Project?
Can Agile Work for this Project?Cognizant
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startupsOleg Podsechin
 
Building Better Products Using User Story Mapping
Building Better Products Using User Story MappingBuilding Better Products Using User Story Mapping
Building Better Products Using User Story MappingIT Weekend
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)FarjanaAhmed3
 
Managing a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days IrelandManaging a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days IrelandEmma Jane Hogbin Westby
 
Workflow diagramming and information architecture
Workflow diagramming and information architectureWorkflow diagramming and information architecture
Workflow diagramming and information architectureDianna Miller
 
Embarcadero Technologies' AppWave Modernizes PC Desktops with App Store Conve...
Embarcadero Technologies' AppWave Modernizes PC Desktops with App Store Conve...Embarcadero Technologies' AppWave Modernizes PC Desktops with App Store Conve...
Embarcadero Technologies' AppWave Modernizes PC Desktops with App Store Conve...Dana Gardner
 
Testers and developers think differently
Testers and developers think differentlyTesters and developers think differently
Testers and developers think differentlyNuthan Kumar
 
How to Best Develop a Product by PlateRate Founder
How to Best Develop a Product by PlateRate FounderHow to Best Develop a Product by PlateRate Founder
How to Best Develop a Product by PlateRate FounderProduct School
 
Fallon Brainfood x Planning-ness 2010: How To Plan Apps
Fallon Brainfood x Planning-ness 2010: How To Plan AppsFallon Brainfood x Planning-ness 2010: How To Plan Apps
Fallon Brainfood x Planning-ness 2010: How To Plan AppsAki Spicer
 
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdfHow to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdfMarie Weaver
 
Rocket jones 4 stage process
Rocket jones 4 stage processRocket jones 4 stage process
Rocket jones 4 stage processZachary Ostin
 

Similar to How you slice_it (20)

Project scope preparation
Project scope preparationProject scope preparation
Project scope preparation
 
Business value through requirements
Business value through requirementsBusiness value through requirements
Business value through requirements
 
Can Agile Work for this Project?
Can Agile Work for this Project?Can Agile Work for this Project?
Can Agile Work for this Project?
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startups
 
Building Better Products Using User Story Mapping
Building Better Products Using User Story MappingBuilding Better Products Using User Story Mapping
Building Better Products Using User Story Mapping
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
Managing a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days IrelandManaging a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days Ireland
 
Workflow diagramming and information architecture
Workflow diagramming and information architectureWorkflow diagramming and information architecture
Workflow diagramming and information architecture
 
Embarcadero Technologies' AppWave Modernizes PC Desktops with App Store Conve...
Embarcadero Technologies' AppWave Modernizes PC Desktops with App Store Conve...Embarcadero Technologies' AppWave Modernizes PC Desktops with App Store Conve...
Embarcadero Technologies' AppWave Modernizes PC Desktops with App Store Conve...
 
Testers and developers think differently
Testers and developers think differentlyTesters and developers think differently
Testers and developers think differently
 
How to Best Develop a Product by PlateRate Founder
How to Best Develop a Product by PlateRate FounderHow to Best Develop a Product by PlateRate Founder
How to Best Develop a Product by PlateRate Founder
 
Go With The Flow
Go With The FlowGo With The Flow
Go With The Flow
 
Fallon Brainfood x Planning-ness 2010: How To Plan Apps
Fallon Brainfood x Planning-ness 2010: How To Plan AppsFallon Brainfood x Planning-ness 2010: How To Plan Apps
Fallon Brainfood x Planning-ness 2010: How To Plan Apps
 
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdfHow to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
 
User Stories
User StoriesUser Stories
User Stories
 
User Stories
User StoriesUser Stories
User Stories
 
User Stories
User StoriesUser Stories
User Stories
 
Rocket jones 4 stage process
Rocket jones 4 stage processRocket jones 4 stage process
Rocket jones 4 stage process
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
A plumber's guide to SaaS
A plumber's guide to SaaSA plumber's guide to SaaS
A plumber's guide to SaaS
 

Recently uploaded

Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 

Recently uploaded (20)

The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 

How you slice_it

  • 1. Manage People & Projects It’s All in How You Slice Design your project in working layers to avoid half-baked incremental releases. BY JEFF PATTON SUPPOSE FOR A MOMENT YOU’RE IN CHARGE OF development at BigNewIdea Software. You’ve adopted an Agile development approach that suggests releasing your software in smaller incremental releases is a good idea. BigNewIdea’s marketing folks and business managers exclaim excitedly, “If we build the highest- value features first, the users will love our first release!” You develop for a few months, always shifting the highest-value features to the top of the stack. You eventually release a well-built, rela- tively bug-free release. First responses from people using the software seem positive. “This looks really good!” they say. “It’s got all these features we’ve wanted for a long time!” But strangely, sales seem to be slower than expected. Salespeople find that many customers who have pur- TOM SCHIERLITZ/GETTY IMAGES chased the software aren’t actually using it. “What’s wrong?” marketing asks through question- naires and expensive focus groups. The reply: “What you have is fine, but there’s not enough here 16 BETTER SOFTWARE JANUARY 2005 www.stickyminds.com
  • 2. It FPO
  • 3. Manage People & Projects for me to get my job done. I still have to as domain experts, testers, and user inter- around in your model. I’ve found it’s easy do much of my work manually. I have to face designers. Choose people who have to merge features originating in a spread- transfer information from my paperwork some ideas on how the software will earn sheet with a word processor document to the software and back again. Some- your company money—your stakehold- that will print them on precut 3×5 cards times I can’t even figure out a paper ers. Choose people who know something or business cards. This way, the cards are workaround. I’ll wait for the next release about how long this work will take to easy to read and work well within a card- to see if you get farther along.” build—a developer or two. Four to eight modeling exercise. Leave room under the feature statement for the details we’ll add in Steps 2 and 3. [When releasing] software incrementally, Suppose I’m building some software how do you choose a first for small retailers. I know that their busi- ness processes go a bit like this (notice bundle of features that is both high value that each one starts with an action verb): and immediately useful? s Create purchase order for vendor You expected that all those high-value people total is a good number. Use the s Receive shipment from vendor features would make a great product, but creation of the model as an opportunity it turned out you needed some of those to elicit discussion about the features be- s Create tags for received items low-value features to hold everything to- ing built. gether—to make the product useful to s Sell items those trying to accomplish work with the STEP 1: COLLECT FEATURES software. If you still want to release the With the prep work done, it’s time to s Return and refund items software incrementally, how do you start assembling the model. The first step choose a first bundle of features that is is to answer the question “What does our s Analyze sales both high value and immediately useful? software do?” You should start with a user-centric list of features. De- STEP 2: ADD DETAILS pending on your situation, this To help you model these features, let’s might be trickier than it sounds. note three important details on the My definition of a good feature cards: who uses the feature, how often Key is one that is expressed from a the feature is used, and how valuable the Ingredients user’s perspective. For example, if I feature is. were building new software for a First, for each feature, detail the kind 2–3 large sheets poster paper retail store, a feature might be “sell of user who uses it. When describing this 3–4 packs markers items at point of sale” as opposed feature, you likely envisioned someone 1 roll tape to “the system supports EAN-13 using it—who was he? You can identify 1–2 packs 3×5 index cards barcodes.” There’s a difference him with a job title, a role name, a per- there that I hope is not so subtle. sona, or in any other way most appropri- Plus, the fundamental element of all good The first feature describes an activ- ate for your system. (See this issue’s meetings: food. ity done by a person; the second StickyNotes for more on roles.) describes an attribute of an object. Looking back at my set of retail store Look for features that start with or features, I know that the same person include some action verb; that’s a usually doesn’t do all this stuff. I know In this article, we’ll walk through a sim- good sign. When describing your soft- that the work is divided between mer- ple, collaborative, card-based planning ware, it helps to indicate how it will be chandise buyers, stock receivers, cus- model that does just that. used rather than how it might look or the tomer consultants, and sales analysts. I details of its implementation. Keeping note each user under the feature state- PREP WORK your focus on the usefulness of the soft- Before you begin, you need to choose a ware at this stage helps to ensure that the good cross section of folks to participate bits of software released incrementally create po in creating the model. While the model will be useful. for vendor could be prepared by one person, I If you’re not already describing fea- wouldn’t recommend it. Having a mix of tures for your software in a user-centric (merchandise buyer) people will help increase understanding way, you may need to spend a little time frequency: weekly of the software throughout the team. reframing your features. value: medium Choose people familiar with the users Write the features on 3×5 cards or on and functionality of your software, such something else that you can easily move Figure 1: A completed feature card. 18 BETTER SOFTWARE JANUARY 2005 www.stickyminds.com
  • 4. Manage People & Projects Tips for Success When assembling the batch of features for your project, pay at- release or a prior one. I’ve found that if I slice releases horizontal- tention to the following details to help ensure success. ly starting from the top of the model down, I rarely run into de- When using use cases, focus first on those where the actors pendencies I haven’t already resolved in a previous release. are a single user and the system. Avoid planning with use cases Sometimes folks suggest features that aren’t really about users that describe the internal workings of the system. Avoid use cas- and the functionality they need. Features like “migrate to an Oracle es that describe business processes at a very high level; make database” or “change the look and feel to match our new brand- them what author Alistair Cockburn calls “sea level system scope ing.” These sorts of features don’t work well in this type of model. use cases.” When talking about certain features, you might find it’s tough If you’re using user stories, include a user of the feature in a to defer some of them completely. When slicing off a set of fea- concise story statement, such as the one author Mike Cohn cred- tures to release, discuss how usable that release will be. For each its practitioner Rachel Davies with inventing: As a [type of user] I user of the system ask if she will be able to do her work with this want [some particular feature] so that [some benefit is received]. subset of features. For each important feature left out, is there a For example: “As a bank customer I want to view my current ac- paper process or software workaround that allows her to live count balance so that I know my recent deposit went through.” without the feature—no matter how annoying that might be? The completed model shows us features arranged in the order Could the feature be split into a crude minimal version for earlier they’re needed by people and business processes, but this really release and a more elaborate version for later release? only gives us an indication of dependence. As you slice off releas- See this issue’s StickyNotes for some reading that will help es, scan each feature for dependencies that might not be in this ensure a good outcome. ment he is involved with. but nothing about value. You’ll find with sheets and tape them together to form a Next, note how frequently you be- a good mixed collaborative group, you’ll broad poster. lieve each feature will be used. You can be able to quickly fill in all these details. Draw a horizontal line across the top use simple notation like high, medium, or You’ll notice lots of good discussion of the page and label it usage sequence. low. I use a little more precise continu- while doing it. Draw a line on the left side of the um, writing under the user on the feature When writing your features on cards, page from top to bottom and label it crit- card either hourly, daily, weekly, month- the same information should appear in icality. Label the top endpoint of this line ly, or quarterly. the same place all the time. This makes always used, the bottom endpoint sel- Finally, for each feature, note its value the cards easy to read when placed in the dom used. The resulting diagram should to the purchasers of this system. If your model. They might start to look like look like the one in Figure 2. company has a good understanding of playing cards in a game. That’s good. You now need to place features in the where ROI comes from on this system, Building the model should feel a bit like model according to usage sequence and this may not be too hard—but for the rest you’re playing a game. criticality. By using the features we wrote of us, this is usually a subjective judg- out for our retail software earlier, we’ve ment. Using high, medium, and low will STEP 3: PLACE CARDS IN already listed them in the order the fea- work fine for our use today. I’ll write the SEQUENTIAL ORDER tures will be used. PO creation happens value under the frequency on each card. To build this model, lay a few sheets of before shipments are received from the When all of these details have been poster paper on a large worktable. This vendor. Tags are created before the items added, one of the feature cards might model is generally wide, so arrange are put on the shelf and sold. Sales are look like the one in Figure 1. When trying this at home, make Usage Sequence adding these details a collaborative activ- always used ity. Assuming you’ve got your features written or otherwise printed on cards, Criticality spread those cards out on the table. Take turns picking up cards and adding user, frequency, and value. If you’ve got a good mixed group, you’ll notice that some folks have strong opinions about seldom some of these details. Some folks may used know a bit about the user and frequency, Figure 2: The model starts with an x and a y axis. www.stickyminds.com JANUARY 2005 BETTER SOFTWARE 19
  • 5. Manage People & Projects analyzed after some items are sold. a manner as possible, place the cards in placed with vendors informally over the That’s what I mean by usage sequence. your model by usage sequence, with fea- phone without a purchase order being In reality, it may not seem so cut and tures used early on the left and later on created in the system. So in those cases, dried. If we really look at a retail store, the right. Have them overlap features we’ll receive the items into inventory we might find buyers on the phone plac- that might happen at about the same without a PO. This is generally the ex- ing orders at the same time receiving point in time. If someone gets confused ception, but it happens and should be clerks are in the back room receiving and about the position of a feature, suggest supported. So our feature “create PO for vendor” is important to our system and is used frequently, but not always. In reality, it may not seem so cut and As a group, adjust vertical positioning dried. . . . It looks like all these features of your cards based on how critical they are to the business process. If the feature are being used simultane- is always done, place it on the top. If the feature is often —but not always—done, ously and indeed they are. place it a bit below the top line. If it’s sel- dom done, place it toward the bottom. If tagging. If the store’s open, we hope cus- that he look at the feature and its imme- you’ve got enough people working on tomers will be on the retail floor happily diate neighbors. It’s sometimes easier to the model simultaneously, this may start buying our products and customer con- answer the question “does this happen to look like a game of Twister. You’ll ob- sultants will be ringing them up. It looks before that” than to try to take every- serve people moving cards down only to like all these features are being used si- thing into account at once. see them adjusted back up by someone multaneously and indeed they are. So If we arranged our feature cards in se- else. Use these conflicting card move- when sequencing them in your model, quence, it might look a bit like the dia- ments to elicit discussions on why some- arrange them in the order that seems log- gram in Figure 3. one might believe a particular feature is ical when explaining to others the busi- more critical than another feature. ness process. If you explain the business STEP 4: GROUP BY If we adjust our features for criticality, process starting with the selling part, FREQUENCY our model might look a bit like the one that’s OK, put that feature first. We want For each of these features, how critical to in Figure 4. this model to help us tell stories about our business is it that someone actually our software, so arrange them in an or- uses it? Let’s look at our retail features: STEP 5: NOTE LOGICAL der that makes it easy to tell stories. When working with the business people BREAKS IN WORKFLOW Distribute the cards among partici- who know how their business is run, If your system is anything like those I’ve pants. Then have everyone, in as orderly they inform us that orders often are worked on, you’ll have knitted together a few distinct processes done by different Usage Sequence people at different times. When you look always across your model from left to right, you used create po receive shipment create tags for sell items analyze sales might start to see logical breaks in the for vendor from vendor received items (merchandise buyer) (stock receiver) (stock receiver) (customer consultant) frequency: hourly (sales analyst) frequency: monthly workflow. Remember how for each fea- frequency: weekly frequency: daily frequency: daily value: high value: high return and ture you noted a type of user or role that Criticality value: medium value: high value: medium refund items (customer consultant) primarily used the feature? You’ll find frequency: daily value: medium that these breaks often occur when there’s a role change. Reading left to right you’ll see some features are used by one role, seldom used then you’ll see a change to another role Figure 3: The features cards are first arranged by sequence. with some features used by this next role. As a group, discuss where you see Usage Sequence breaks or pauses in the business process. always Then, at each break draw a vertical line, used receive shipment from vendor sell items dividing the model into something that (customer consultant) (stock receiver) frequency: hourly looks a bit like swim lanes. Label the re- frequency: daily value: high Criticality value: high sulting columns for each process as shown in Figure 5. If you’re finding it create po for vendor create tags for received items return and refund items analyze sales hard to divide the model in this way, dis- (sales analyst) (merchandise buyer) (stock receiver) (customer consultant) frequency: monthly value: high cuss why. Is there really only one type of frequency: weekly frequency: daily frequency: daily seldom value: medium value: medium value: medium user doing one process? Or, do we have used different user’s features mixed up in the Figure 4: The sequential feature cards are then staggered according to criticality. same timeline? 20 BETTER SOFTWARE JANUARY 2005 www.stickyminds.com
  • 7. Manage People & Projects This is all quite interesting so far, but Usage Sequence what are you learning about how to always BUYING RECEIVING SELLING ANALYZING build releases for your software? Let’s used receive shipment sell items take a closer look. from vendor (customer consultant) (stock receiver) frequency: hourly Criticality frequency: daily value: high STEP 6: MARK THE FIRST value: high SYSTEM SPAN create po create tags for return and analyze sales Now we’re going to divide the model for vendor received items refund items (sales analyst) (merchandise buyer) (stock receiver) (customer consultant) frequency: monthly into what I call system spans. (The Pop- frequency: weekly frequency: daily frequency: daily value: high seldom value: medium value: medium value: medium pendiecks introduced me to the term used “span” in their book Lean Software De- Figure 5: The model is vertically divided into business processes. velopment.) A system span is a set of fea- tures that group together logically and Usage Sequence that cut through the business processes always BUYING RECEIVING SELLING ANALYZING used horizontally from start to finish. receive shipment sell items from vendor The first span should be the smallest (stock receiver) (customer consultant) frequency: hourly Criticality set of features necessary to be minimally frequency: daily value: high value: high useful in a business context. In our mod- System Span el, it turns out that the very top row (re- create po create tags for return and analyze sales ceiving and selling items) is the first, most for vendor received items refund items (sales analyst) (merchandise buyer) (stock receiver) (customer consultant) frequency: monthly minimal system span. This will be true of seldom frequency: weekly value: medium frequency: daily value: medium frequency: daily value: medium value: high your model, too. Draw a line under the used top row of your model to indicate the Figure 6: The first system span represents the smallest set of features necessary to features that make up this first system be minimally useful in a business context. span, as shown in Figure 6. The first span represents the most built any functionality to support the the “big picture” helps them estimate a concise set of features that tunnel merchandise buyer or the sales analyst. little better. (See this issue’s StickyNotes through the system’s functionality from Ultimately, we know that supporting for more guidance on quick estimation end to end—the bare bones minimum those folks with some functionality is im- techniques.) anyone could legitimately do and still portant. But, because the work they’re Once you have rough estimates, add use the system. This small span should doing doesn’t always happen, we can de- up the estimates for the features above always be your first release, but it need fer it at least for a little while. the line marking the first span. This is not be the first public release of your After drawing the line in your model how long it should take to build. software. Getting this part completed are there roles and business processes and released, even if only to internal test that are omitted? Talk about them as a STEP 8: SLICE AND SERVE environments, forces resolution of both group. The plan may now be “sliced” horizon- the functional and technical framework tally into subsequent system spans, or of your application. Your testers will be STEP 7: FILL IN BUILD spanning releases. Well, sort of horizon- able to see if the application hangs to- ESTIMATES tally. Choose features below the marked gether coherently. Your architects will OK, so building a first span is a good first span that group together logically. be able to validate the tech-stack func- idea, but how long will it take? If you’ve Choose enough features such that the estimated elapsed development days fit within an appropriate release date. This A system span is a set of features that may cause you to draw lines that wan- group together logically der up and down to catch and miss fea- tures while traversing the model from and that cut through the business left to right. Lines drawn through the plan make it start to look like a haphaz- processes horizontally from start to finish. ard layer cake. At this point in the collaborative ac- tions as expected and may begin work- got developers participating in this exer- tivity, the business people responsible ing on load tests to validate scalability. cise, and you should, this is a good time for the release should step forward. Let The team can begin to relax knowing for them to start giving development es- them use their best judgment to decide that from here on in they’re adding timates for each feature. Write the time what features best make up a release. If more features to a system that can be re- estimates in days or weeks directly on you’re an observer, ask questions so you leased and likely used. the cards. Very rough estimates will do understand why one feature rather than Notice how in the example we’ve not fine. Developers may find that seeing (Continued on page 40) 22 BETTER SOFTWARE JANUARY 2005 www.stickyminds.com
  • 8. page 23 full-page ad SPI Dynamics
  • 9. Manage People & Projects (Continued from page 22) another finds its way into an earlier re- lease. Responsible business people continue to slice your “cake” into appropriate re- leases. When choosing features to fill a release, you may want to consider the features with the highest value first. You hi-res may also want to consider building up support for a particular type of user or TK business process. In a release, you might try completing all the valuable features in one of your business process columns. This will result in some funny-shaped lines stretching from left to right. After slicing the model into releases, you should be able to see how many re- leases it will take to build this software Figure 7: A real-life model is much more complex and spans several business and what might be contained in each processes. release. Now, let’s get real. Most software shown in Figure 7. Notice in this model THE RESULTS worth writing has more than six features. that software spans several business Because you’ve arranged features in se- Depending on the granularity of your processes. Notice how the releases cut quential order, you now understand what features, you’ll likely have dozens. With from left to right in some funny jagged features depend on one another. Because a reasonable number of features your lines that catch the features the planner you’ve arranged them by criticality, the plan will likely look like the photo intended for each release. important features are now emphasized at the top of the plan. Because you’ve di- vided the features into business process- es, you have a better idea of the function- ality that supports each major business process in your software. You have deter- mined the minimal feature span that lets you get your system up and running, end to end, as soon as possible. All this infor- mation is provided in one convenient pic- ture. By employing a little common sense, we should be able to carve off the smallest possible releases that will still be 1/3 useful to the people who ultimately re- ceive those releases. square Incremental release may be one of the more valuable aspects of the various Ag- left ile development methodologies. An early release can help capture market share, generate early return on investment, and Rally reduce money risked on software devel- opment. A strong early release can in- crease those benefits immensely. The model we’ve built can give you a better picture of your software’s features and help your organization construct the most useful and coherent early release possible. {end} Jeff Patton leads teams of Agile develop- ers to build the best software possible. He proudly works at ThoughtWorks. 40 BETTER SOFTWARE JANUARY 2005 www.stickyminds.com