CQuest America, Inc. v. Yahasoft, Inc.
Filing
36
OPINION entered by U.S. Magistrate Judge Tom Schanzle-Haskins. Plaintiff CQuest America, Inc.'s Motion for Rule 37(b) Sanctions 27 is ALLOWED in part and DENIED in part. Defendant Yahasoft, Inc., is hereby ordered to produce by 8/21/2015, the source code for its Yahasoft Early Intervention Data System (YEIDS) and all modifications to YEIDS that Yahasoft made pursuant to the Software Services Agreement between the parties. This material shall be produced in its native format, and shall be produced subject to the Protective Order entered 1/7/2015 24 . The Motion is otherwise DENIED. See written order. (LB, ilcd)
E-FILED
Thursday, 30 July, 2015 01:14:15 PM
Clerk, U.S. District Court, ILCD
IN THE UNITED STATES DISTRICT COURT
FOR THE CENTRAL DISTRICT OF ILLINOIS, SPRINGFIELD DIVISION
CQUEST AMERICA, INC.,
an Illinois not-for-profit
corporation,
Plaintiff,
v.
YAHASOFT, INC., a Georgia
business corporation,
Defendant.
)
)
)
)
)
)
)
)
)
)
)
)
No. 13-cv-3349
OPINION
TOM SCHANZLE-HASKINS, U.S. MAGISTRATE JUDGE:
This matter comes before the Court on Plaintiff CQuest America,
Inc.’s (CQuest) Motion for Rule 37(b) Sanctions (d/e 27) (Motion). This
Court held an evidentiary hearing on the Motion on July 24, 2015.1 The
parties appeared by counsel. After careful consideration of the Motion, the
submissions of the parties, and the evidence presented at the hearing, the
Court determines that the Motion should be ALLOWED in part. Defendant
Yahasoft, Inc. (Yahasoft), is hereby ordered to produce by August 21,
2015, the source code for its Yahasoft Early Intervention Data System
(YEIDS) and all modifications to YEIDS that Yahasoft made pursuant to the
1
This Order has been prepared without a transcript of the hearing. The hearing was recorded and a
recording of the hearing can be obtained from the Clerk’s Office and transcribed by the parties at their
own expense if necessary.
Page 1 of 16
Software Services Agreement (Agreement) between the parties. This
material shall be produced in its native format, and shall be produced
subject to the Protective Order entered January 7, 2015 (d/e 24) (Protective
Order). The Motion is otherwise DENIED.
BACKGROUND
CQuest had a contract with the Illinois Department of Human
Services (Department) to provide claims processing services for the
Department’s Early Intervention Program (Department Contract). On June
1, 2011, CQuest and Yahasoft entered into the Agreement. Under the
terms of the Agreement, Yahasoft agreed to provide a software system and
corresponding services to meet certain needs of the Department under the
Department Contract. Yahasoft agreed, in pertinent part, “to provide
development, implementation, customization and maintenance services for
the [YEIDS] on the terms and conditions set forth in the Agreement.”
Notice of Removal (d/e 1), Exhibit A, Complaint at Law (Complaint), Exhibit
A, Agreement, at 1. On June 13, 2013, CQuest sent Yahasoft a notice of
termination, in which CQuest stated that Yahasoft failed to perform its
obligations under the Agreement. Complaint, Exhibit B, Notice of
Termination of Software Services Agreement.
Page 2 of 16
On August 23, 2013, CQuest brought this action for breach of
contract against Yahasoft in Sangamon County, Illinois, Circuit Court.
Complaint. The Complaint was served on September 6, 2013. On October
7, 2013, Yahasoft removed this action to this Court. Notice of Removal
(d/e 1). Yahasoft denies that it breached the Agreement. Yahasoft has
also counterclaimed against CQuest for breach of contract. Yahasoft
alleges that the parties modified the Agreement, and Yahasoft was
performing the modified Agreement when CQuest breached the Agreement
by wrongfully failing to pay all sums due and owing prior to the termination
of the Agreement. Answer and Counterclaim (d/e 6),
at 6-10.
On November 7, 2014, CQuest filed an Emergency Motion to Compel
(d/e 16). CQuest asked the Court to compel Yahasoft to produce
documents responsive to its document requests numbered 16, 17, 18, and
19 (collectively the Document Requests). The Document Requests asked
Yahasoft to produce:
REQUEST NO. 16: Any and all system application source
code, and all documents related to system application source
code, which the Defendant created, developed, worked on, or
modified in connection with the Software Services Agreement.
Page 3 of 16
REQUEST NO. 17: All documents related to or reflecting
Illinois-specific database schema which the Defendant created,
developed, worked on, or modified in connection with the
Software Services Agreement.
REQUEST NO. 18: All documents containing or reflecting any
technical specifications which the Defendant used or referred to
when creating, developing, working on, or modifying source
code, database schema, or the Software.
REQUEST NO. 19: All documents containing or reflecting any
packaged executable which demonstrated the Software’s
capabilities, functions, and features as defined and required by
the contract. If the “packaged executable” is not a document but
a thing provide the “packaged executable” itself.
Emergency Motion to Compel, Exhibit A, Defendants’ Responses to
Plaintiff’s Request for Production of Documents and Things, ¶¶ 16-19.
On December 1, 2014, the Court allowed in part the Emergency
Motion to Compel. Opinion Regarding Plaintiff’s Emergency Motion to
Compel (d/e 19) (Opinion). The Court ordered Yahasoft to produce the
documents responsive to the Document Requests subject to a protective
order, but denied CQuest’s request for fees and costs. Opinion, at 8. The
Court directed the parties to prepare a protective order. Id.
The Opinion clearly indicated that the source code in question was
the source code held by Yahasoft. Yahasoft specifically argued, in its
Response in Opposition to Emergency Motion to Compel (d/e 18)
(Response), that the source code was “proprietary” to Yahasoft and that
Page 4 of 16
obtaining the source code could enable CQuest to re-engineer the source
code. The Response pointed out, under the Agreement CQuest could not
“reverse engineer, decompile or disassemble the software or publish it for
others to copy or resell the software”. The Opinion noted that the
Protective Order proposed by the parties would prohibit CQuest from taking
these actions. Hence, in the context used in the Opinion, it is clear that the
“source code” being discussed is the proprietary source code held by
Yahasoft.
On January 7, 2015, the Court entered the Protective Order. On
January 21, 2015, Yahasoft produced documents pursuant to the Opinion.
On January 28, 2015, the Court entered an agreed order to extend the
written discovery deadline from January 31, 2015, to March 31, 2015.
CQuest reviewed the documents produced and decided that the
production was not complete. On March 18, 2015, counsel for CQuest sent
an email to counsel for Yahasoft detailing the ways in which CQuest
believed the production was deficient. The email asked for Yahasoft to
provide a complete production by March 25, 2015. Motion, Exhibit E, Letter
dated March 18, 2015 sent by email and first class mail. Counsel for
Yahasoft responded the same day with an email which stated that they
needed until March 30, 2015, to speak with a representative of Yahasoft.
Page 5 of 16
Motion, ¶ 22. CQuest states that counsel for Yahasoft did not give any
further reason for the requested extension. Counsel for CQuest did not
respond to the requested extension.
CQuest filed the Motion on March 26, 2015, prior to the expiration of
the discovery deadline of March 31, 2015. The Scheduling Order (d/e 10)
in this case stated that discovery motions filed after the expiration of the
discovery deadline would not be considered by the Court. CQuest asked
for sanctions on the grounds that Yahasoft failed to comply with the
Opinion. CQuest summarized claimed failings in the Yahasoft response to
the Document Requests:
20. Around the same time, Plaintiff completed its review
of the documents Defendant provided on January 21. Plaintiff
concluded that the documents were incomplete in a number of
respects. Specifically:
a. The "source code" Defendant provided was not
source code, nor was it provided in native form.
Instead, Defendant provided a PDF purporting to
contain a log of the sections of code that
Defendant's developers changed. In doing so,
Defendant removed these changes from the context
which is vital to understanding the changes. It also
removed all metadata which could have told Plaintiff
who made which changes and when. The existing
metadata for the PDF shows that it was created on
January 13, 2015 by Roy Su.
b. Defendant did not provide database schema.
Instead, as with the source code, it provided a PDF
of a purported "change log." Again, these changes
Page 6 of 16
were presented without useful context and without
any metadata other than metadata showing that the
PDF was created on January 13 by Roy Su.
c. Defendant provided no documents which met the
definition of technical specifications.
d. Defendant provided a .dll file which is an
"executable," but it is not part of a package and will
not function properly without documentation,
instructions, or a database.
Motion, ¶ 20. The Motion, in its prayer for relief, asked for adverse findings
that would essentially establish liability, give an adverse inference
instruction at trial, and the award of CQuest attorney fees and costs.
Yahasoft responded that that Requests Nos. 16 and 17 only asked
for modifications to the source code and database schema, not Yahasoft’s
original YEIDS source code and schema. Yahasoft, therefore, only
produced the modifications, but not the originals. Yahasoft noted that
Request 17 specifically asked for the Illinois specific database schema, not
the database schema for the YEIDS base program. Yahasoft also
responded that the Requests did not ask for native format or metadata.
Yahasoft elected to provide the material in .pdf format. Yahasoft also
stated that it used an agile programming process that did not produce
metadata. Rather, Yahasoft logged changes and modifications on a
separate log called a Bug Report. Yahasoft provided the Bug Report to
Page 7 of 16
CQuest. Response of Defendant, Yahasoft, Inc., in Opposition to Motion
for Rule 37(b) Sanctions (d/e 28) (Response), at 5-8.
Yahasoft stated that it provided all the documents that contained
technical specifications in response to Request No. 18. Yahasoft also
stated that the agile programming method did not produce the type of
formal technical specifications that CQuest may have assumed would exist.
Response, at 8-9.
Additionally, Yahasoft argued that it fully responded to Request
No. 19 by providing the executable .dll file. Yahasoft stated that the
executable file “needs to be hosted on hardware and software with
complex, specific configurations necessary to run the file.” Response, at
9. Yahasoft did not provide this complex information, only the executable
file requested. Response, at 9-10.
The Court set the matter for an evidentiary hearing largely because of
the highly technical nature of the dispute. CQuest presented the testimony
of CQuest’s president and CEO Harold Davis, as well as Russell Hubner, a
software developer employed by CQuest. Yahasoft presented the
testimony of Yahasoft’s president Qingyi (Roy) Su.
The witnesses explained many of the technical terms used in the
document request. The testimony established that “source code” is the
Page 8 of 16
lines of instructions written in either a computer language or machine
language that tells a computer to perform the operations called for in a
given computer program, software package or application. A “database
schema” (schema) is a table, diagram or “blueprint” that shows how data is
stored or organized. “Native format” is the computer language or format
used to create something (e.g., a line of source code in its original
computer language, or Microsoft Word document in its original .docx file
format). “Metadata” is data about data. Metadata contains documentation
of the dates and times that changes occurred to other data or files.
“Technical specifications” are a detailed description of the specific functions
that computer software is supposed to perform. The technical
specifications define the inputs that will be provided and the outputs and
outcomes that the software will cause the computer to produce. Software
developers create software that will meet the specifications. A “packaged
executable” is a computer file or set of files that will run without other files.
The evidence presented at the hearing established that; (1) Yahasoft
produced .pdf copies of pieces or snippets of programming code that were
written under the Agreement to modify the YEIDS source code to apply to
Illinois, but did not produce the YEIDS source code itself; (2) Yahasoft
produced pieces of a schema that would modify the YEIDS schema to
Page 9 of 16
make an Illinois specific schema; (3) the Agreement was terminated before
Yahasoft completed the modifications to YEIDS for Illinois; (4) no Illinois
specific schema was ever produced; (5) the agile programming method
does not use a formal set of technical specifications, instead the technical
specifications were developed and modified as the software was
developed; (6) either Yahasoft personnel or CQuest personnel may have
written some of technical specifications; (7) Yahasoft produced all of the
technical specifications in its possession that existed at the time that the
Agreement was terminated; (8) the .dll file produced was an executable file
made for the project; (9) the .dll file was never placed into a package of
other files before the Agreement was terminated; (10) no Illinois specific
schema was completed by Yahasoft prior to termination of the Agreement;
and (11) CQuest personnel could not evaluate the work performed by
Yahasoft from the documents produced.
At the conclusion of the hearing, counsel for CQuest modified the
Motion. Counsel stated that CQuest wanted the relief requested, but asked
as an alternative relief, to order Yahasoft to produce the source code for
YEIDS and the modifications made under the Agreement in their native
format. CQuest’s counsel stated that CQuest sought this discovery to
evaluate the work done by Yahasoft under the Agreement. Counsel stated
Page 10 of 16
that CQuest needed the YEIDS source code and the modifications in native
format to evaluate the work.
ANALYSIS
This Court ordered Yahasoft to produce the documents in its
possession responsive to the Document Requests. CQuest claims that
Yahasoft failed to comply with this Court’s order. Yahasoft disagrees. The
Court addresses each Document Request separately.
Document Request No. 16.
Document Request No. 16 asked for, “Any and all system application
source code, and all documents related to system application source code,
which the Defendant created, developed, worked on, or modified in
connection with the Software Services Agreement.” (emphasis added)
This request encompasses the YEIDS source code related to the work
Yahasoft contracted to perform under the Agreement. Yahasoft
interpreted the request narrowly to include only the pieces of code that
reflected the modifications without the underlying code to be modified. Su’s
testimony on this point was somewhat unclear, but could be interpreted to
indicate that Yahasoft produced all of the YEIDS source code. However,
Yahasoft’s counsel stated that the YEIDS source code had not been
produced. The Court credits the testimony of Hubner and Davis on this
Page 11 of 16
point. Yahasoft only produced edited pieces of code that reflected
proposed modifications without the underlying YEIDS source code to be
modified. That finding is also consistent with the representations in
Yahasoft’s Response. See Response, at 5-8.
Yahasoft’s narrow reading of Request No. 16 is incorrect. Yahasoft
was required to produce the YEIDS source code and the modifications that
Yahasoft made to that code under the Agreement. Yahasoft, therefore,
violated the Opinion by not producing the entire YEIDS source code.
Request No. 16, however, did not state the format that the code was to be
produced and did not ask for metadata. Thus, Yahasoft did not violate the
Opinion by electing to produce documents in .pdf format and did not violate
the Opinion by not producing metadata.
Document Request No. 17 asked for, “All documents related to or
reflecting Illinois-specific database schema which the Defendant created,
developed, worked on, or modified in connection with the Software
Services Agreement.” Su testified that Yahasoft had not created an Illinoisspecific database schema by the time that the Agreement was terminated.
Su testified that Yahasoft produced the pieces of the Illinois database
schema that had been developed to date. Request No. 17 also did not
request either metadata or native format. The Court finds that Yahasoft did
Page 12 of 16
not violate the Opinion by its production of documents in response to
Request No. 17.
Document Request No. 18, asked for “All documents containing or
reflecting any technical specifications which the Defendant used or referred
to when creating, developing, working on, or modifying source code,
database schema, or the Software.” Su testified that all documents that
contained technical specifications were produced. CQuest’s witness
Hubner agreed that the agile programming method did not begin with a
formal set of technical specifications. Rather the agile programming
method developed the technical specifications as part of the development
process. In light of this testimony, the Court finds that Yahasoft produced
the documents responsive to Request No. 18.
Document Request No. 19, asked for, “All documents containing or
reflecting any packaged executable which demonstrated the Software’s
capabilities, functions, and features as defined and required by the
contract. If the ‘packaged executable’ is not a document but a thing provide
the ‘packaged executable’ itself.” Su testified that Yahasoft prepared the
.dll file that was produced, but did not put that file into a package with other
files before the Agreement was terminated. No contradictory evidence was
Page 13 of 16
presented. The Court finds that Yahasoft produced the documents
responsive to Request No. 19.
The Court has broad discretion to determine the appropriate sanction
for Yahasoft’s failure to comply with the Opinion’s order to respond fully to
Request No. 16. Melendez v. Illinois Bell Telephone Co., 79 F.3d 661, 671
(7th Cir. 1996). Any sanction should be proportionate to the circumstance
surrounding the failure to comply. Melendez, 79 F.3d at 672; see United
States v. Dish Network, L.L.C., 292 F.R.D. 593, 595 (C.D. ill. 2013). The
Court should consider: (1) the nature of the breach of its duty to produce
documents; (2) the party’s culpability for the breach; and (3) the prejudice
caused by the breach. Zang v. Alliance Fin. Servs. of Illinois, Ltd., 875
F.Supp.2d 865, 885 (N.D. Ill. 2010).
The Court, in its discretion, declines to order the relief requested in
the written Motion. The Motion proposes a sanction that would, in effect,
find Yahasoft liable and would be disproportionate to the failure to follow
the Opinion in this case. Yahasoft responded to Request No. 16, but did so
based on its incorrect interpretation of the Request. Yahasoft responded to
the remainder of the Document Requests. Yahasoft’s counsel also asked
for five additional days to discuss CQuest’s objections to the production
(from March 25 to March 30, 2015), but CQuest did not respond to the
Page 14 of 16
request. CQuest did not ask for an explanation; CQuest did not tell
Yahasoft that it would not wait the additional five days. Yahasoft just filed
the Motion on March 26. Without a response, counsel for Yahasoft may
have believed that CQuest did not object to the requested extension.
In addition, CQuest filed a Motion for Summary Judgment (d/e 34)
without the production of these documents. The failure to produce these
documents did not deny CQuest the ability to request summary judgment.
This indicates that the prejudice from the failure to produce these
documents may have been limited. Under these circumstances, the Court
finds that the requested sanctions are not appropriate.
The Court, however, will order the relief that counsel requested in the
alternative at the hearing. The Court will require Yahasoft to comply with
the Court’s prior Opinion. The production of the documents in native format
goes beyond the original request and provides an appropriate sanction for
Yahasoft’s initial failure to follow this Court’s prior Opinion. Counsel for
CQuest stated that the information sought in discovery to evaluate the work
performed by Yahasoft, and the YEIDS source code and the modifications
in native format would allow CQuest to perform this evaluation. The Court,
therefore, will grant the requested alternative relief.
Page 15 of 16
The Court finds that an award of attorney fees and costs is not just
under the circumstances of this case. See Fed. R. Civ. P. 37(b)(2)(C).
THEREFORE, Plaintiff CQuest America, Inc.’s Motion for Rule 37(b)
Sanctions (d/e 27) is ALLOWED in part and DENIED in part. Defendant
Yahasoft, Inc., is hereby ordered to produce by August 21, 2015, the
source code for its Yahasoft Early Intervention Data System (YEIDS) and
all modifications to YEIDS that Yahasoft made pursuant to the Software
Services Agreement between the parties. This material shall be produced
in its native format, and shall be produced subject to the Protective Order
entered January 7, 2015 (d/e 24). The Motion is otherwise DENIED.
ENTER: July 30, 2015
s/ Tom Schanzle-Haskins
UNITED STATES MAGISTRATE JUDGE
Page 16 of 16
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?