TOM SCHANZLE-HASKINS, 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.
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."
On August 23, 2013, CQuest brought this action for breach of contract against Yahasoft in Sangamon County, Illinois, Circuit Court.
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:
On December 1, 2014, the Court allowed in part the Emergency Motion to Compel.
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 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.
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:
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 CQuest.
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.
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."
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 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 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 that CQuest needed the YEIDS source code and the modifications in native format to evaluate the work.
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 asked for, "Any and all system application source code, and all documents
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 Illinois-specific 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 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 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.
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 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.
The Court finds that an award of attorney fees and costs is not just under the circumstances of this case.
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.