CQuest America, Inc. v. Yahasoft, Inc., No. 3:2013cv03349 - Document 36 (C.D. Ill. 2015)

Court Description: 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)
Download PDF
CQuest America, Inc. v. Yahasoft, Inc. Doc. 36 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 Dockets.Justia.com 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