IEX Corp. v. Blue Pumpkin Software, Inc. , 122 F. App'x 458 ( 2005 )


Menu:
  •                    NOTE: Pursuant to Fed. Cir. R. 47.6, this disposition
    is not citable as precedent. It is a public record.
    United States Court of Appeals for the Federal Circuit
    04-1068, -1094
    IEX CORPORATION,
    Plaintiff-Appellant,
    v.
    BLUE PUMPKIN SOFTWARE, INC.,
    Defendant-Cross Appellant.
    __________________________
    DECIDED: February 2, 2005
    __________________________
    Before NEWMAN, CLEVENGER and BRYSON, Circuit Judges.
    CLEVENGER, Circuit Judge.
    Plaintiff-Appellant IEX Corporation ("IEX") appeals the decision of the United
    States District Court for the Eastern District of Texas granting summary judgment of
    noninfringement of 
    U.S. Patent No. 6,044,355
     ("the '355 patent") in favor of Defendant-
    Cross Appellant Blue Pumpkin Software, Inc. ("Blue Pumpkin"). See IEX Corp. v. Blue
    Pumpkin Software, Inc., No. 4:01-CV-16 (E.D. Tex. Oct. 9, 2003) ("Final Judgment").
    Blue Pumpkin cross-appeals the district court's dismissal of Blue Pumpkin's
    counterclaims for patent invalidity and unenforceability and for attorney's fees.    It
    requests that its claims be reinstated and remanded for consideration if the district
    court's summary judgment is reversed. Because the district court improperly construed
    the claims of the patent at issue, we vacate the district court's summary judgment of
    noninfringement and remand for further consideration. We also reinstate and remand
    Blue Pumpkin's invalidity, unenforceability and attorney's fees claims.
    I
    IEX is the holder of the '355 patent, entitled "Skills-Based Scheduling For
    Telephone Call Centers."        A telephone call center is a collection of agents,
    telecommunication equipment, and management software, organized for the sole
    purpose of handling customer contact through telephone calls. As calls are received,
    they are identified by an automatic call distributor ("ACD") according to type (e.g., sales
    calls, service calls) and are either delivered to a waiting agent or are queued pending
    agent availability. In a typical "queue/team" model, agents are divided into teams, with
    each team handling a particular call type. If the ACD receives a sales call, for example,
    that call is directed to the sales call team and is either taken immediately by a sales call
    agent or is queued until one becomes available. Because agents within a particular
    team are interchangeable for purposes of handling calls, teams are scheduled
    independently.
    Skills-based routing systems depart from the "queue/team" model in that each
    incoming call is determined to require a particular skill or number of skills (e.g., sales
    experience, service experience) and is directed by the ACD to an agent with the
    required skill set. Teams are no longer formed around a specific call type, but are
    instead comprised of agents having a particular skill set. An agent with both sales and
    service experience, for example, is not limited to a sales call team or a service call
    team, but instead may be connected to both sales and service queues. Likewise, an
    agent with sales and billing experience may be connected to the sales and billing
    04-1068, -1094                           2
    queues.       Because various combinations of skill sets can overlap in a skills-based
    environment, call centers can no longer consider call types in isolation for purposes of
    scheduling, thus complicating the task of scheduling call center agents for work.
    A
    The invention of the '355 patent is designed to simplify the scheduling process
    within a skills-based environment.       The patent claims an iterative approach to
    "generating agent schedules for a telephone call center operation based on the 'skill'
    profiles of the agent population." '355 patent, col. 1, ll. 9-11. A representative diagram
    from the patent illustrating the claimed iteration is shown below.
    
    Id.
     Fig. 1.
    As claimed, the invention generates net staffing data that generally defines the
    total number of additional agents needed to handle a call type during a particular time
    interval. See 
    id.
     col. 5, ll. 46-56. The invention also generates skills group availability
    04-1068, -1094                           3
    data, which is a percentage estimate of the number of agents available to handle a call
    type during a particular time interval. See 
    id.
     col. 5, l. 66-col. 6, l. 8. Using these
    numbers, the invention utilizes a commercially available "scheduler" to generate an
    agent work schedule. See 
    id.
     col. 6, ll. 16-23. The invention then runs a call handling
    simulation on the schedule based on a call distribution algorithm and historic call data.
    If variables such as the average speed of answer, the number of calls abandoned by
    the caller and the idle time logged for each agent, fall below pre-determined
    expectations, the invention adjusts the net staffing data and skills group availability data,
    and uses the modified values to create a new schedule. See 
    id.
     col. 6, l. 37-col. 7, l. 38.
    The method repeats this iteration until it reaches the desired scheduling results.
    B
    IEX sued Blue Pumpkin on January 12, 2001, claiming that two Blue Pumpkin
    products—Director Essential and Director Enterprise1—infringed the '355 patent. Two
    of the claims in suit, and the only two at issue on appeal, are independent claims 1 and
    19. They recite:
    1. A method, using a computer, of determining an efficient
    schedule for a plurality of scheduled agents in a telephone call center,
    each of the plurality of scheduled agents having a combination of defined
    skills and wherein the plurality of scheduled agents may be organized into
    skill groups each including all scheduled agents having a particular
    combination of skills, comprising the steps of:
    (a) generating net staffing data per call type defining, for each time
    interval to be scheduled, an estimate of a difference between a
    given staffing level and a staffing level needed to meet a current
    call handling requirement;
    1
    The differences between these products are immaterial for purposes of
    this appeal.
    04-1068, -1094                            4
    (b) generating skills group availability data per call type defining, for
    each combination of skill group and time interval to be scheduled,
    an estimate of a percentage of scheduled agents from each skill
    group that are available to handle a call;
    (c) using the net staffing data and the skills group availability data to
    generate a schedule for each of the plurality of scheduled agents;
    (d) running a call handling simulation against the schedule;
    (e) adjusting the net staffing data and the skills availability data as a
    result of the call handling simulation, and
    (f) repeating steps (c)-(e) until an output schedule occurs.
    ...
    19. A computer program product in a computer-readable medium
    for use in a computer for determining an efficient schedule for a plurality of
    scheduled agents in a telephone call center, each of the plurality of
    scheduled agents having a combination of defined skills and wherein the
    plurality of scheduled agents may be organized into skill groups each
    including all scheduled agents having a particular combination of skills, the
    computer program product comprising:
    first means for generating net staffing data per call type defining, for
    each time interval to be scheduled, an estimate of a difference
    between a given staffing level and a staffing level needed to meet a
    current call handling requirement;
    second means for generating skills group availability data per call type
    defining, for each combination of skill group and time interval to be
    scheduled, an estimate of a percentage of scheduled agents from
    each skill group that are available to handle a call;
    third means responsive to the first and second means for generating a
    schedule for each of the plurality of scheduled agents;
    fourth means for running a call handling simulation against the
    schedule; and
    fifth means responsive to the fourth means for refining the net staffing
    array and the skills availability data as a result of the call handling
    simulation for a subsequent iteration.
    
    Id.
     col. 11, ll. 15-40; col. 12, l. 66-col. 13, l. 26.
    04-1068, -1094                                5
    The district court referred the case to a Magistrate Judge for a recommendation
    regarding claim construction.       After a hearing on March 19, 2002, pursuant to
    Markman v. Westview Instruments, Inc., 
    52 F.3d 967
     (Fed. Cir. 1995), aff'd, 
    517 U.S. 370
     (1996), the Magistrate Judge recommended, inter alia, that "skill group" be
    construed as "one or more agents, each agent having a particular sub-combination of
    skills," and "skills group availability data" as "a current estimate for the availability a call
    type should expect for scheduled agents in a skill group." IEX Corp. v. Blue Pumpkin
    Software, Inc., No. 4:01-CV-16, at 4 (E.D. Tex. May 29, 2002) ("Claim Construction
    R&R").    On March 12, 2003, the district court adopted the Magistrate Judge's
    construction of "skills group availability data" but found "after an examination of all of the
    intrinsic evidence, that a more appropriate construction [for 'skill group'] is 'a group of
    agents with each agent having a particular sub-combination of skills.'" IEX Corp. v. Blue
    Pumpkin Software, Inc., No. 4:01-CV-16, at 3 (E.D. Tex. Mar. 12, 2003) ("First Order").
    On April 8, 2003, Blue Pumpkin filed a motion for summary judgment of
    noninfringement, which the district court again referred to a Magistrate Judge. IEX
    responded to the motion with what it characterizes as evidence of infringement,
    including a declaration and reports by IEX's expert Joseph McAlexander. On July 8,
    2003, the Magistrate Judge stated that "the process [claimed in the '355 patent] does
    not identify skill groups after application, but only before application" and that "each
    agent within the skill group [must] possess the same skills." IEX Corp. v. Blue Pumpkin
    Software, Inc., No. 4:01-CV-16, at 8, 11 (E.D. Tex. July 8, 2003) ("Infringement R&R").
    The Magistrate Judge then agreed with Blue Pumpkin that its products do not calculate
    skills group availability data or maintain any variable separately for each combination of
    04-1068, -1094                             6
    skill group, call type, and time interval. See id. at 13. The Magistrate Judge finally
    observed that Blue Pumpkin's products are "agent focused not skill group focused," id.
    at 9-10, and concluded that Blue Pumpkin's products do not infringe the '355 patent,
    either literally or pursuant to the doctrine of equivalents.     The Magistrate Judge
    recommended that Blue Pumpkin's motion for summary judgment of noninfringement be
    granted. See id. at 14.
    On July 10, 2003, Blue Pumpkin filed a notice of newly discovered evidence.
    The evidence consisted of deposition testimony by Mr. McAlexander, Michael Tanner,
    another IEX expert, and Paul Leamon, a named inventor of the '355 patent. On July 21,
    2003, IEX filed an objection to the Magistrate Judge's summary judgment
    recommendation, pursuant to Fed. R. Civ. P. 72. In the exchange of motions and
    subsequent responses, IEX submitted additional declarations and an "infringement
    claim chart" prepared by Mr. McAlexander. On September 17, 2003, the district court
    held a hearing regarding IEX's objections. In a memorandum dated October 10, 2003,
    the district court adopted the Magistrate Judge's recommendations in their entirety but
    did not discuss IEX's most recent expert evidence submissions. See IEX Corp. v. Blue
    Pumpkin Software, Inc., No. 4:01-CV-16, at 3 (E.D. Tex. Oct. 9, 2003) ("Second
    Order").
    IEX appeals from the district court's final judgment granting summary judgment of
    noninfringement in favor of Blue Pumpkin.       See Final Judgment at 1.     We have
    jurisdiction over the appeal pursuant to 
    28 U.S.C. § 1295
    (a)(1) (2000).
    04-1068, -1094                          7
    II
    We review without deference the district court's grant of summary judgment. See
    Merck & Co., Inc. v. Mylan Pharms., Inc., 
    190 F.3d 1335
    , 1338 (Fed. Cir. 1999).
    Summary judgment is proper if after drawing all reasonable factual inferences in favor of
    the nonmoving party, see Anderson v. Liberty Lobby, Inc., 
    477 U.S. 242
    , 255 (1986),
    "the pleadings, depositions, answers to interrogatories, and admissions on file, together
    with the affidavits, if any, show that there is no genuine issue as to any material fact and
    that the moving party is entitled to a judgment as a matter of law," Fed. R. Civ. P. 56(c).
    Summary judgment is not proper where "the evidence is such that a reasonable jury
    could return a verdict for the non-moving party." Anderson, 
    477 U.S. at 248
    .
    "An infringement analysis is a two-step process in which the court first
    determines, as a matter of law, the correct claim scope, and then the fact-finder
    compares the properly construed claim to the accused device to determine, as a matter
    of fact, whether all of the claim limitations are present, either literally or by a substantial
    equivalent in the accused device." Rexnord Corp. v. Laitram Corp., 
    274 F.3d 1336
    ,
    1341 (Fed. Cir. 2001); see also Johnson Worldwide Assoc., Inc. v. Zebco Corp.,
    
    175 F.3d 985
    , 988 (Fed. Cir. 1999). We thus will decide without deference whether the
    district court was correct in its judgment that no reasonable jury could find, either literally
    or by application of the doctrine of equivalents, each and every limitation recited in the
    properly construed claims in the accused device. See Middleton, Inc. v. Minn. Mining
    and Mfg. Co., 
    311 F.3d 1384
    , 1387 (Fed. Cir. 2002).
    04-1068, -1094                             8
    III
    On appeal, IEX argues that the district court relied on incorrect claim
    constructions in granting summary judgment of noninfringement, and that it failed to
    recognize that IEX's expert testimony creates a genuine issue of material fact regarding
    infringement. We address each contention in turn.
    A
    IEX disputes the district court's actual Markman conclusions as well as the
    court's apparent reliance on additional limitations pertaining to "skill group" at the
    summary judgment stage of the proceedings. In addition, Blue Pumpkin now asserts
    several additional limitations applicable to "skills group availability data" that it initially
    advanced in summary judgment briefing but that were not expressly relied upon by the
    Magistrate Judge in recommending summary judgment.
    Because "it is the claims of the patent which define the invention," Altoona Publix
    Theatres v. Am. Tri-Ergon Corp., 
    294 U.S. 477
    , 487 (1935), in construing the claims we
    look first and foremost to the claim language, see Rexnord, 
    274 F.3d at 1341
    . While the
    terms of the patent claims are generally accorded their ordinary and accustomed
    meaning to one of ordinary skill in the relevant art, see Innova/Pure Water, Inc. v. Safari
    Water Filtration Sys., Inc., 
    381 F.3d 1111
    , 1116 (Fed. Cir. 2004), we must also examine
    the remaining intrinsic evidence—the rest of the specification and the prosecution
    history—"to determine whether the patentee has set forth an explicit definition of a term
    contrary to its ordinary meaning, has disclaimed subject matter, or has otherwise limited
    the scope of the claims," Day Int'l, Inc. v. Reeves Bros., Inc., 
    260 F.3d 1343
    , 1348 (Fed.
    04-1068, -1094                             9
    Cir. 2001). With these claim construction principles in mind, we begin with the district
    court's treatment of "skill group."
    Skill Group
    Despite a rather clear statement in the patent's written description that "[o]ne or
    more agents are . . . organized into 'skill groups,'" '355 patent, col. 5, ll. 7-9, the district
    court declined to accept the Magistrate Judge's "one or more" construction and instead
    determined that "skill group" referred to "a group of agents." First Order at 3. An
    interpretation that excludes a preferred embodiment is rarely, if ever, correct.           See
    Vitronics Corp. v. Conceptronic, Inc., 
    90 F.3d 1576
    , 1583 (Fed. Cir. 1996). But while
    IEX asserts in briefing to this court that the patent does not rule out the possibility that a
    particular skill group might contain only one member depending on the circumstances, it
    represented to the district court that "[a]t no time . . . has IEX ever accused the Blue
    Pumpkin products of infringing based on such a theory." (J.A. at 1645.) Rather, IEX
    now contends that its theory of infringement has always been that Blue Pumpkin
    organizes agents into skill groups typically containing many members. It comes as no
    surprise, then, that IEX does not expressly challenge the district court's "group of
    agents" construction on appeal.2         Nonetheless, "skill group" correctly interpreted
    includes a group of one or more agents, and the district court erred when it construed
    "skill group" to require more than one agent.
    2
    Counsel for IEX went so far as to assert at oral argument that "[w]ithin the
    scope of this appeal, the consequences of that single versus multiple agent really aren't
    relevant because we've produced infringement proof showing that the skill groups in
    Blue Pumpkin's product are comprised of multiple agents. So it doesn't matter, we're
    not relying on saying that a group is a single agent."
    04-1068, -1094                            10
    Next, IEX disputes two additional limitations that it alleges were read into the
    phrase "skill group" by the Magistrate Judge upon recommending summary judgment.
    First, the Magistrate Judge stated that "each agent within the skill group [must] possess
    the same skills." Infringement R&R at 11. In reviewing this construction, we note at the
    outset that both parties at various times throughout the litigation have framed the
    question as whether skill groups can overlap, but this perspective is unhelpful. There is
    no doubt that skill groups can overlap insomuch as group A can include, for hypothetical
    purposes, agents with skills 1, 2 and 3, and group B can include agents with skills 2, 3
    and 5. The patent expressly says as much. See '355 patent, col. 5, ll. 9-12. The
    question instead is whether the patent requires that each skill group include only agents
    having identical skills, e.g., whether the patent precludes the inclusion of an agent with
    skills 1, 2, 3 and 4 within our hypothetical group A. We think that it does not.
    Claims 1 and 19 both specify that each skill group includes "all scheduled agents
    having a particular combination of skills." 
    Id.
     col. 11, ll. 20-21; col. 13, ll. 5-6. The
    written description explains that a skill group includes all agents with a particular
    combination, or a particular subcombination, of skills. See 
    id.
     col. 2, ll. 43-44 ("All
    agents having a particular combination of skills may be deemed a 'skill group.'"); col. 3,
    ll. 32-35 ("The plurality of scheduled agents are organized into 'skill groups' with each
    group including all scheduled agents having a particular combination of skills."); col. 5,
    ll. 7-9 ("One or more agents are then organized into 'skill groups,' each including all
    scheduled agents having a particular sub-combination of skills."). If accorded their plain
    meaning, these statements require only that all agents within a skill group have a
    04-1068, -1094                           11
    particular combination of skills in common, not that they each have identical skills.3 In
    other words, an agent with skills 1, 2, 3 and 4 has the same combination of skills as
    those within our hypothetical group A, that combination being skills 1, 2 and 3.
    To be sure, the patent's written description specifies that "[i]n the preferred
    embodiment, skill priorities are included when organizing agents into skill groups; in a
    particular skill group, all agents have the same skills at the same priority levels." 
    Id.
     col.
    5, ll. 15-18 (emphasis added).         But patent scope is not confined to preferred
    embodiments disclosed in the patent's written description, Cordis Corp. v. Medtronic
    AVE, Inc., 
    339 F.3d 1352
    , 1365 (Fed. Cir. 2003), and in any event, the patent makes
    clear that the claimed method "requires only that the skill group divisions in the agent
    population be understood and available to the method," '355 patent, col. 9, ll. 8-10. A
    call center using the claimed method thus has some flexibility in defining a "skill group"
    to include all agents having a particular combination of skills or all agents having
    identical skills, so long as that definition is made known to the claimed method.
    Second, the Magistrate Judge stated in his summary judgment recommendation
    that the "[k]ey to the success of the program is that there be some identification of
    agents with skills before the process can work. In another [sic] words, the process does
    not identify skill groups after application, but only before application." Infringement R&R
    at 8. Though this statement is somewhat ambiguous, IEX suggests that it was made in
    response to Blue Pumpkin's summary judgment argument that the '355 patent claims
    require that "the skill group availability data for each skill group must be calculated
    3
    Despite Blue Pumpkin's argument to the contrary, we find nothing in the
    prosecution history that requires the "identical skills" construction adopted by the district
    court.
    04-1068, -1094                            12
    before agents are placed into the schedule." (J.A. at 1383.) We cannot be certain from
    the Magistrate Judge's statement that he intended to imply that the '355 patent
    precluded the input of an initial schedule into the method prior to the creation of skills
    group availability data. We nonetheless address the issue to clarify the district court's
    task upon remand.
    It is true that the method claimed in the patent generates net staffing data and
    skills group availability data, which it ultimately uses as inputs into the generation of a
    work schedule. It is also true that skills group availability data is an estimate of a
    percentage of scheduled agents from each skill group that are available to handle a call.
    It therefore seems logical to assume that in order for the claimed invention to compile
    skills group availability data, skill groups must exist in some form. This assumption,
    however, begs a rather large question reminiscent of the famed chicken and egg
    controversy. How can the invention of the '355 patent generate net staffing data based
    in part on the given staffing level for a particular time period, and skills group availability
    data that define a skill group's availability for that time period, without first having agents
    actually scheduled during the relevant time period? In other words, which comes first,
    the skill groups used to generate skills group availability data and thus a schedule, or
    some form of the schedule itself, which implicitly defines certain parameters needed to
    develop net staffing data and skills group availability data?
    The patent solves this problem in the preferred embodiment by allowing rough
    estimates for the net staffing data and skills group availability data. '355 patent, col. 5,
    ll. 51-53 ("The initial estimates for net staff values need not be extremely accurate, as
    they are refined in later iterations of the method as will be described."); col. 6, ll. 8-12
    04-1068, -1094                            13
    ("The initial estimates for values in this array need not be extremely accurate, as they
    are refined in later iterations of the method as will be described. Thus, for example, the
    initial estimate may be '0' for any skill group that is not eligible at all for a call type, and
    '1/2' otherwise."). But nothing in the claims themselves or in the written description
    precludes the use of an initial schedule as an input into the iteration.            In fact, by
    referencing "scheduled agents" in the preamble, claims 1 and 19 seem to contemplate
    this very thing. See 
    id.
     col. 11, ll. 15-21; col. 12, l. 66-col. 13, l. 6. We thus hold that the
    '355 patent does not preclude the method's use of an initial schedule prior to the
    creation of skills group availability data.
    Skills Group Availability Data
    We next address the parties' contentions regarding "skills group availability data."
    The Magistrate Judge construed the phrase to mean "a current estimate for the
    availability a call type should expect for scheduled agents in a skill group."           Claim
    Construction R&R at 4. The district court adopted this construction, First Order at 4,
    and neither the Magistrate Judge nor the district court expressly modified it during the
    summary judgment stage of the proceedings. Nevertheless, Blue Pumpkin advances
    three additional "skills group availability data" limitations that it contends are required by
    the '355 patent claims.
    Blue Pumpkin first argues that the claim limitations "generating skills group
    availability data per call type, defining for each combination of skill group and time
    interval . . . a percentage" and "using . . . the skills group availability data to generate a
    schedule for each of the plurality of scheduled agents" requires that for a given call type
    and time interval, the claimed method calculates a single percentage value for each skill
    04-1068, -1094                                14
    group, which it then uses in scheduling calculations for every agent in the group. Blue
    Pumpkin highlights the word "a" in the language as evidence that its proposed
    construction embodies the ordinary meaning of the language.                To the contrary, an
    indefinite article, such as "a," in patent parlance means "one or more" in open-ended
    claims containing the transitional phrase "comprising." KCJ Corp. v. Kinetic Concepts,
    Inc., 
    223 F.3d 1351
    , 1356 (Fed. Cir. 2000). "Unless the claim is specific as to the
    number of elements, the article 'a' receives a singular interpretation only in rare
    circumstances when the patentee evinces a clear intent to so limit the article." 
    Id.
     An
    estimate, as is set forth in the claims, is thus presumed to mean one or more estimates.
    Blue Pumpkin argues that the specification supports a single value but points to
    only two particular sentences in the patent's written description. See '355 patent, col. 6,
    ll. 11-12 ("the initial estimate may be '0' for any skill group that is not eligible at all for a
    call type, and '1/2' otherwise"); col. 8, ll. 5-9 ("With respect to skill group availability . . .
    [t]he simulator . . . . increments a counter for the call type the agent is handling and the
    agent's skill group."). Neither necessarily limits the claimed invention to a single value
    or provides a context from which the court could find a clear intent on the part of the
    patentee to limit the article "a" to singular form.
    Blue Pumpkin next argues that the skills group availability data must remain
    constant throughout scheduling. IEX offers little argument to the contrary and instead
    contends that changes to the skills group availability data after scheduling but before
    simulation are irrelevant because the data will be modified after the simulation. We
    agree with both parties. The patent contemplates that skills group availability data will
    remain constant in a given iteration until after generation of a schedule.
    04-1068, -1094                             15
    Blue Pumpkin finally argues somewhat vaguely that the patent claims require
    that separate values of skills group availability data be generated for each combination
    of skill group, call type, and time interval. We agree: the claims are susceptible to no
    other reasonable interpretation.
    B
    IEX contends that in addition to the claim construction errors, the district court
    also erred in failing to recognize that IEX's expert testimony, particularly that from
    Mr. McAlexander, creates a genuine issue of material fact regarding infringement that
    precludes summary judgment.
    According to Mr. McAlexander, Blue Pumpkin's products utilize a function called
    "DoSBSchedule," which is located in a file called "sbsched.cpp" and which generally
    performs skills based scheduling by scheduling available agents into queues
    corresponding to particular call types, depending on the skills that each agent
    possesses.    (J.A. at 1307, 1592.)      Mr. McAlexander conceded that skills group
    information in Blue Pumpkin's software code does not exist in arrays (J.A. at 1592), as
    is disclosed by the patent as a preferred technique. See '355 patent, col. 5, l. 66-col. 6,
    l. 26. Mr. McAlexander opined, however, that Blue Pumpkin's products instead organize
    skills group information into complex data structures called "object attributes."       He
    stated:
    To locate the associated "object attributes" which together define a skill
    group, the Blue Pumpkin code explicitly calls the function
    "GetBestSlotAndPerson( )" in the file "sbsched.cpp" at line 1693. . . . This
    function modifies an object "gSchedule" to reflect the new employee
    added to the schedule. The combination of the "gSchedule" object and
    the employee object attributes of scheduled employees define a skill
    group. Each skill group thus defined comprises those employees (agents)
    having a particular sub-combination of skills (attributes).
    04-1068, -1094                          16
    (J.A. at 1592.)
    Mr. McAlexander further described how Blue Pumpkin's products generate net
    staffing data and skills group availability data:
    The preprocessing portion of the code in "DoSBSchedule()" generates
    both the "net staffing data" and "skills group availability data" per call type
    and       interval   in     respectively     "schedAddEmployee()"           and
    "AddShftToScoring()". . . . In "schedAddEmployee()," the method calls
    "AddDude()" to operate on and change attribute "e_need," giving an
    estimate of the difference between a given staffing level and the staffing
    level needed to meet a call handling requirement.                             In
    "AddShftToScoring()," the method generates in "AddDude()" an estimate
    of the percentage of time available for an agent to handle a call,
    calculating a "score" during the "While loop" for each individual agent,
    calling "CalculateCurrentGuess," and keeping a running sum of the data
    values in an attribute named, "m_dCurrentGuess" for each call type and
    interval.
    (J.A. at 1593.)
    Mr. McAlexander also stated that Blue Pumpkin's products review and score
    each agent to be scheduled one at a time. Each agent's score
    is compared to the best previous score and either is discarded if not as
    good as the previous score or replaces the previous score if better. After
    all individual agents are scored, the best score is selected and only that
    individual agent scheduled and added to the group. After all agents are
    scored and the best selected and added, a simulation is run against the
    schedule in DoSBSchedule, and the "net staffing data" "e_need" and
    "skills group availability data" "m_dCurrentGuess["] are adjusted. The
    process . . . is repeated, again selecting from an array of names only that
    individual agent having the best score for addition to the group.
    
    Id.
     According to Mr. McAlexander, upon satisfying predetermined criteria the iteration
    stops and Blue Pumpkin's products generate a final output schedule. 
    Id.
    While Mr. McAlexander's description of Blue Pumpkin's products is no model of
    clarity, Blue Pumpkin itself has never advanced a particularly straightforward
    04-1068, -1094                            17
    explanation of how its products generate a work schedule from start to finish.4
    According to Blue Pumpkin and its expert, Dr. Illah R. Nourbakhsh, Blue Pumpkin's
    products "schedule each agent on an individual basis, without organizing agents into
    skill groups for calculation or any other purposes." (J.A. at 561.) When considering a
    particular agent for scheduling, Blue Pumpkin's products score various scheduling
    options for each agent to be scheduled. The score depends in part on a variable called
    m_dCurrentGuess, which is calculated for each call type and time interval. The variable
    m_dCurrentGuess is based on a combination of other variables, including MINIMUM
    and MAXIMUM. When Blue Pumpkin's products consider a new agent for inclusion into
    the schedule, the MINIMUM and MAXIMUM variables are incremented and in turn
    modify m_dCurrentGuess. A separate m_dCurrentGuess value is thus generated for
    each instance of a candidate schedule, such that no two agents share an identical
    m_dCurrentGuess value, and multiple m_dCurrentGuess values are calculated to
    determine a single agent's schedule. (J.A. at 562-63.) As each new agent is added to
    the   schedule,   the   m_dCurrentGuess      variable   grows   incrementally.      The
    m_dCurrentGuess variable thus shows at any given time the amount of work directed
    4
    Blue Pumpkin was asked at oral argument to describe how its products
    function. Counsel replied:
    What Blue Pumpkin's software does is it determines which agents should
    work at what time in the call center. A separate piece of equipment called
    the ACD, an automatic call distributor, which is different from what's
    claimed here, the automatic call distributor is what routes the calls, and
    routes the calls to particular agents depending on what skills they have.
    What the scheduler does is it figures up which agents should be working
    at what time.
    Counsel's explanation does little to distinguish Blue Pumpkin's products from the
    invention claimed in the '355 patent.
    04-1068, -1094                         18
    towards a particular call type and time interval. A large value for the m_dCurrentGuess
    variable signifies a large number of agents utilized by that call type during the pertinent
    time interval.
    Contrary     to   IEX's   assertions,    Dr.   Nourbakhsh      stated    that   the
    GetBestSlotAndPerson function places agents into the schedule. (J.A. at 1751.) The
    G_Schedule object identifies all of the agents placed and provides nothing more than
    the times that agents will begin their shifts. 
    Id.
     Neither the G_Schedule object nor the
    Employee object identifies agents by the call type served during a particular time
    interval.   
    Id.
       No information in Blue Pumpkin's source code is ever used during
    scheduling to identify the agents serving a particular call type and time interval
    combination. 
    Id.
    From this confusing exchange of explanations as to how Blue Pumpkin's
    products function, the district court adopted the conclusion reached by the Magistrate
    Judge—"Blue Pumpkin's products are agent focused not skill group focused."
    Infringement R&R at 9-10; see also Second Order at 3 ("The Court has concluded that
    the findings and conclusions of the Magistrate Judge are correct . . . ."). But neither the
    Magistrate Judge nor the district court explained in greater detail why IEX's evidence
    from Mr. McAlexander did not create a genuine dispute of material fact. We have
    recognized in the past that "to know the reasoning a district court used in deciding to
    grant summary judgment facilitates the task of a reviewing court." Cable Elec. Prods.,
    Inc. v. Genmark, Inc., 
    770 F.2d 1015
    , 1020 (Fed. Cir. 1985), overruled on other grounds
    by Midwest Indus., Inc. v. Karavan Trailers, Inc., 
    175 F.3d 1356
    , 1358-61 (Fed. Cir.
    1999) (en banc). That principle is equally applicable here.
    04-1068, -1094                          19
    It may very well be that even after accepting Mr. McAlexander's testimony as true
    and drawing all reasonable inferences in IEX's favor, see Anderson, 
    477 U.S. at 255
    ,
    IEX's evidence from Mr. McAlexander still falls short of establishing a genuine dispute of
    material fact regarding infringement. We cannot be certain that this is so, however, and
    think it better to remand the case back to the district court for further consideration in
    light of the claim constructions set forth in this opinion.
    IV
    In conclusion, the district court erred in relying on incorrect claim constructions in
    granting Blue Pumpkin's motion for summary judgment, though the extent to which it did
    so is not entirely clear from the Magistrate Judge's recommendation or the district
    court's memorandum adopting that recommendation. The district court also did not fully
    articulate its reasons for rejecting IEX's expert evidence, particularly that from
    Mr. McAlexander.      Accordingly, we vacate the district court's grant of summary
    judgment in favor of Blue Pumpkin and remand for further consideration in light of the
    claim constructions set forth in this opinion.       We also reinstate and remand Blue
    Pumpkin's invalidity, unenforceability and attorney's fees claims.
    COSTS
    No costs.
    04-1068, -1094                            20