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