MicroStrategy Inc. v. Li

PRESENT:   All the Justices

MICROSTRATEGY INCORPORATED

v.   Record No. 032239   OPINION BY JUSTICE BARBARA MILANO KEENAN
                                     September 17, 2004
WENFENG LI, ET AL.

             FROM THE CIRCUIT COURT OF FAIRFAX COUNTY
                       M. Langhorne Keith, Judge


      In this appeal, we consider whether the chancellor erred in

holding that the plaintiff failed to meet its burden of proving

that the defendants misappropriated certain trade secrets,

within the meaning of the Virginia Uniform Trade Secrets Act

(the Act), Code §§ 59.1-336 through –343.

      We will state the evidence in the light most favorable to

the defendants, Actuate Corporation (Actuate), Wenfeng "Wayne"

Li, and Xiaogang "Gary" Xue, the prevailing parties in the

circuit court.   Barner v. Chappell, 266 Va. 277, 283, 585 S.E.2d

590, 594 (2003); Jenkins v. Bay House Assocs., L.P., 266 Va. 39,

41, 581 S.E.2d 510, 511 (2003).   According to this evidence,

MicroStrategy Incorporated (MicroStrategy) and Actuate are

"indirect competitors" that design, license, and support highly

sophisticated computer software known as "business intelligence

software."

      Business intelligence software facilitates data retrieval

by allowing users to directly retrieve selected data from the

volumes of information stored and collected by a business.   The
data that these businesses collect are stored in computer

memories called "data warehouses."

     MicroStrategy competes primarily in an On Line Analytical

Processing (OLAP) "power-user" market.   OLAP is a feature that

allows users to sort or rearrange columns of data in a business

report and to "drill down" or engage in "data mining" within a

column to retrieve more specific data from the report.   Unlike

MicroStrategy, Actuate primarily competes in "a less

sophisticated market that does not require OLAP or other high-

end analytics."

     MicroStrategy's "flagship" product, "MicroStrategy 7," was

released in June 2000.   MicroStrategy spent about $35,000,000

and four years in the design and implementation of MicroStrategy

7, the sales of which represent the bulk of MicroStrategy's

revenue.   MicroStrategy 7 was not merely an enhancement of

MicroStrategy's previous software products, but was created

"from scratch" when MicroStrategy chose to "completely rewrite

its product" to address the structural limitations of its

existing software and to meet its customers' evolving needs.

     MicroStrategy 7 features an enhanced ability to deliver

information to a larger group of users and allows a greater

number of users to have simultaneous access to the stored

information.   MicroStrategy 7 has increased reliability through

the installation of a "failover function," which allows a


                                 2
computer server's data to be "seamlessly redistributed" to other

computer servers "with little or no disruption of service" in

the event that a server "crashes."     Customers who purchase

MicroStrategy 7 also are required to purchase a "commercial

relational database" to manage their data warehouse.

        Actuate's premier product, Actuate 6, was released in May

2002.    Unlike MicroStrategy 7, Actuate 6 did not result from the

development of a completely new software product, but was an

enhancement of Actuate's existing software.    The development of

Actuate 6 was "in the early planning stages" by the time

Actuate's previous product, Actuate 5, was released in December

2000.

        At "a high level," Actuate 5 and Actuate 6 are very similar

products, the "primary difference" being that Actuate 5's "core

servers" were combined into "a single process" for Actuate 6 and

the server in Actuate 6 "operates in a cluster environment."

Another major difference between Actuate 5 and Actuate 6 is the

inclusion in Actuate 6 of a proprietary database which, unlike

the software in MicroStrategy 7, allows customers to manage the

data warehouse without purchasing a commercial relational

database from a third party vendor.

        Both MicroStrategy and Actuate use the "C++" computer

programming language to write the underlying "source code" for

the design and implementation of their computer software


                                   3
products.   The C++ programming language is the "language of

choice for systems programming on nearly all major computing

platforms."

     MicroStrategy 7 and Actuate 6 both use "metadata" to

organize and identify the data stored in their customers' data

warehouses.   "Metadata," which also is referred to as "data

about data," is a relational database that contains information

about the data located in a data warehouse.   The metadata is

accessed through certain tables and indexes, which collectively

are known as the "schema."   The tables and indexes in the schema

provide the organizational structure for a product's metadata

and allow a user to locate more quickly information stored in

the user's data warehouse.

     The schema for the two companies' software products are

"quite different."   MicroStrategy 7 has a "homogeneous" schema

in which different objects are stored in the same ten tables.

Actuate 6, however, has a "heterogeneous" schema that stores

objects in 44 different tables.   The use of a "homogeneous"

versus a "heterogeneous" design resulted in "a number of

differences in the table structures for the two schemas" of

MicroStrategy 7 and Actuate 6.

     MicroStrategy and Actuate also both use "StrongPointers"

and "SmartPointers" (collectively, pointers) to combat "memory

leak," which is a commonly occurring problem in the operation of


                                  4
computer software programs.   Memory leak occurs when a software

program uses a portion of a computer's memory for a particular

operation and fails to release that memory back to the computer

once the operation is completed.       A "pointer" is a feature that

is written into a software program's source code and identifies

specific pieces of a computer's memory.      A "StrongPointer" is a

pointer that is designed to release a portion of a computer's

memory once that portion is no longer being used by the software

program.   A "SmartPointer" is a "more sophisticated" type of

pointer that releases the computer's memory once the "last

pointer to the memory has finished with the memory," similar to

a system in which the "last one out turns off the lights."

     In May 1996 and June 1997, respectively, MicroStrategy

hired Li and Xue as software engineers and assigned them to work

on the development of MicroStrategy 7.      While they were employed

at MicroStrategy, both Li and Xue executed MicroStrategy's

Employment Agreement in which they pledged not to disclose or

use any of MicroStrategy's confidential information for their

own benefit or for the benefit of any party other than

MicroStrategy.

     Before joining MicroStrategy, Li earned undergraduate and

master's degrees in computer science and acquired three years of

software design experience working for various computer

companies.   Li's professional experience included the design of


                                   5
a complex database schema that required the use of hundreds of

tables to store information relating to customer usage.

     Prior to working at MicroStrategy, Xue also earned

undergraduate and master's degrees in computer science, with an

emphasis on database systems and design.   Xue had served as a

teaching assistant for a graduate course involving schema

design.   He also had worked as a research assistant on a project

for the National Aeronautics and Space Administration (NASA)

that involved the creation of a complex "object oriented

relational database and table and indexing schema design."

     Both Li and Xue received several promotions during their

employment with MicroStrategy.   Li was promoted to the position

of "lead engineer" for one of the teams working on the

development of MicroStrategy 7, and he eventually became the

head of that team.   While in this leadership capacity, Li had

access to all the design documents and the source code for the

MicroStrategy 7 project.   Xue also became the leader of one of

the teams working on the MicroStrategy 7 project, and he wrote

the source code implementing the design of the metadata schema

for MicroStrategy 7.

     Li left MicroStrategy in November 2000 and was employed by

Actuate later that month; Xue left in February 2001 and began

working at Actuate shortly thereafter.   Actuate assigned Li and

Xue to work on the development of Actuate 6.


                                 6
     Xue created some of the tables and indexes for the metadata

schema in Actuate 6.   Li served as the head of the "server team"

for Actuate 6 and was responsible for allocating resources and

projects to various server teams and for reviewing designs and

specifications to ensure that the product satisfied management's

requirements.   Although Li was a "hands-off manager" at Actuate

and was not involved in any "low-level decision-making," he

wrote some of the source code for the StrongPointers and

SmartPointers in Actuate 6.

     In June 2001, MicroStrategy filed a bill of complaint

against Li, Xue, and Actuate (collectively, the defendants)

alleging, among other things, that the defendants

misappropriated MicroStrategy's trade secrets in violation of

the Act.1   MicroStrategy alleged that Li and Xue disclosed

MicroStrategy's confidential information to Actuate, and that

the defendants used that information in the design and

implementation of Actuate's products.   MicroStrategy sought

damages in "an amount not less than" $5,000,000, and asked the

chancellor to "enjoin Actuate from developing, marketing,

selling, licensing, or making any use of any product that in any


     1
       MicroStrategy filed additional claims in its bill of
complaint against some or all of the defendants alleging breach
of contract, tortious interference with contractual relations,
breach of fiduciary duty, and conspiracy to injure MicroStrategy
in its trade or business. However, those claims are not before
us in this appeal.

                                 7
respect or to any degree is based on, derived from, or

incorporates any of MicroStrategy's [c]onfidential [i]nformation

or trade secrets."

     Code § 59.1-336 defines "trade secret" as follows:

          "Trade secret" means information, including but
     not limited to, a formula, pattern, compilation,
     program, device, method, technique, or process, that:

          1. Derives independent economic value, actual or
     potential, from not being generally known to, and not
     being readily ascertainable by proper means by, other
     persons who can obtain economic value from its
     disclosure or use, and

          2. Is the subject of efforts that are reasonable
     under the circumstances to maintain its secrecy.

Code § 59.1-336 also defines "misappropriation," in relevant part:

     "Misappropriation" means:

                           . . . .

     2. Disclosure or use of a trade secret of another
     without express or implied consent by a person who

                           . . . .

         b. At the time of disclosure or use, knew or had
         reason to know that his knowledge of the trade
         secret was

                                 . . . .

             (2) Acquired under circumstances giving rise to
             a duty to maintain its secrecy or limit its use;
             [or]

             (3) Derived from or through a person who owed a
             duty to the person seeking relief to maintain
             its secrecy or limit its use.




                                 8
     Initially, MicroStrategy claimed that the defendants

misappropriated 242 trade secrets.   However, before trial,

MicroStrategy presented the chancellor with a list limited to

eight alleged trade secrets that MicroStrategy maintained the

defendants misappropriated.   Three of those eight alleged trade

secrets, MicroStrategy's StrongPointers, SmartPointers, and

certain indexes in its metadata schema, are the subject of this

appeal.

     At trial, Li testified that when he left his job at

MicroStrategy, he did not take with him any of MicroStrategy's

technological information, design documents, or copies of its

source code, and that he did not bring any such information or

documents to his employment at Actuate.   Li stated that when he

wrote the source code for Actuate's pointers, he used various

resources, including two books about the C++ computer programming

language and some Microsoft template libraries.   Li also relied on

his knowledge of other implementations of pointers available to

the public and on his general knowledge of pointers and the C++

computer language.

     Li testified that he did not use any part of MicroStrategy's

source code in choosing what features to include in Actuate's

pointers.   He stated that the task of writing the code for

Actuate's pointers was not difficult compared to other source




                                 9
codes he had written, and that while he "wouldn't call it the

easiest one . . . it would be among those."

     Xue testified that he did not use MicroStrategy's table

structures and indexes in creating the tables and indexes for the

Actuate 6 metadata schema.   Xue explained that the materials he

relied on were the Actuate 5 source code, training manuals for

Actuate 5, the Actuate 5 product itself, and certain documents

describing Actuate's business needs and source code given to him

by Paul Rogers, a principal engineer at Actuate.   Xue stated that

once he understood this information, all he needed to do was

"apply the database design principles that [he] learned in [his]

. . . undergrad and graduate curriculum to come up with the final

table and indexes" for Actuate 6.

     Xue further explained that the index and table designs he

developed at MicroStrategy could not have helped him in creating

the indexes and tables for Actuate 6, because MicroStrategy 7 and

Actuate 6 were two "very different" applications, and that a

"particular design for one system . . . will only make sense if

the application is exactly the same."   Xue stated that the project

he worked on at NASA was "far more complex" than either the

MicroStrategy or the Actuate database schemas.

     Rogers testified that although each version of Actuate's

product is built upon a previous version, between 20 and 30

percent of Actuate 6 was unique to that product and did not exist


                                 10
in Actuate 5.   He stated that through the application of

"normalization rules" to the data in Actuate 5, one could create

the metadata schema for the relational database in Actuate 6.

Rogers also explained that most of the tables and indexes for

Actuate 6 were completed before Xue's arrival at Actuate.

     Rogers stated that the resource materials he provided to Xue

included "all the documentation" on Actuate 5, the "reverse

engineering" of the data in Actuate 5's servers, the source code

for Actuate 5, and access to metadata schema created by Rogers for

a different part of Actuate 6.   Rogers explained that while there

were "different ways" in which a schema could be designed, there

were only a few schema designs "that would make sense" given the

important characteristics of Actuate 6.

     MicroStrategy presented the expert testimony of David J.

Hutz, who earned a master's degree in applied mathematics and was

employed by MicroStrategy between 1997 and 1999.   During his

employment at MicroStrategy, Hutz served as a program manager,

product support manager, field engineer, and technical support

engineer.

     Hutz testified that while Li "definitely" did not copy

MicroStrategy's source code in his design of Actuate's

SmartPointers, it was "not clear" whether Li copied

MicroStrategy's code in his design of Actuate's StrongPointers.

Hutz also stated that of 28 points of comparison between the


                                 11
StrongPointers in MicroStrategy 7 and those in Actuate 6, three

points were "unique" and were not found in the code for Actuate 5

or in the code of any pointer available to the public.   He

ultimately conceded, however, that it was "possible" that some

features he considered "unique" could be found in other generally

accessible sources.   Hutz further conceded that the "only basis"

for his opinion that Li had used or disclosed the design and

implementation for MicroStrategy's StrongPointers was that "Li

wrote the StrongPointer at Actuate and that Actuate's

StrongPointer look[ed] similar to MicroStrategy's StrongPointer."

     Hutz assumed that Li, "without MicroStrategy's code in front

of him and without having been one of the people who wrote the

StrongPointer at MicroStrategy, . . . just remembered the entire

design or the entire code when he sat down to write the Actuate

code."    However, Hutz agreed that it was "possible" that Li could

have remembered features from other widely-available pointers at

the time he wrote the code for Actuate's pointers.

     Hutz concluded that Xue could not have arrived at the index

designs he created for Actuate "without relying on MicroStrategy's

confidential information about its table structures and indexes."

Hutz testified that five tables and their corresponding indexes in

Xue's early drafts of Actuate's metadata schema "looked very

similar" to five tables and indexes in MicroStrategy's metadata

schema.    But Hutz was unable to state an opinion regarding how


                                  12
many of the final indexes in the metadata schema for Actuate 6

were "tainted . . . with MicroStrategy's confidential information

and proprietary knowledge" because he had not examined the final

indexes.

     The defendants presented the expert testimony of Dr. Scott D.

Meyers, who has a Ph.D. in computer science and is one of the

leading experts in the C++ computer programming language.   The

chancellor qualified Dr. Myers to testify as "an expert in the C++

programming language, the design and implementation of software

memory management tools, generally, and the design and

implementation specifically of . . . SmartPointers and

StrongPointers."

     Dr. Meyers stated that "the idea of using [pointers] for

resource management purposes is very widely known in the C++

community."   He identified several "fundamental" design

differences between MicroStrategy's and Actuate's pointers.    One

of those differences was that MicroStrategy's pointers could

handle both "pointer[] and non-pointer resources" while Actuate's

pointers could only handle "pointer resources."   Dr. Meyers stated

that this design decision was a "fundamental difference" because

"[i]t speaks to how general" the designers are trying to make the

software and it affects the way the source code is written.

Another "fundamental difference" noted by Dr. Meyers was

MicroStrategy's use of "assertions," which are "pieces" of source


                                 13
code designed to find mistakes in the writing of the program, that

were not used in Actuate's software.

     Dr. Meyers concluded that "[a]t a high level," Actuate's

SmartPointers represented a "fundamentally different design" and

were "not really comparable" to MicroStrategy's SmartPointers.

Dr. Meyers also noted that the "number of template arguments"

varied in the SmartPointers developed by the two companies, which

resulted in designs that were "quite different."   He stated that

MicroStrategy used a "noninvasive design," while Actuate used an

"invasive" design.   According to Dr. Meyers, the choice whether to

use an "invasive" versus a "noninvasive" design was "an amazingly

fundamental design decision" because once that choice is made,

"all kinds of other things fall out from that."

     Dr. Meyers further testified that "[a]t a very high level,"

MicroStrategy's SmartPointers did not contain any "unique

features."    He noted that while MicroStrategy's and Actuate's

SmartPointers shared one feature that was not found in other

widely-available SmartPointers, he did not consider that feature

to be a "meaningful independent point of comparison" because it

was "a direct fallout" of other design decisions made by the two

companies.

     Dr. Meyers also concluded that "at a high level," the

StrongPointers implemented by the two companies were "very

different."   He testified that 25 of 28 points of comparison


                                  14
between MicroStrategy's and Actuate's StrongPointers "could not

have been unique" because the designs either differed or were

found in other StrongPointers available to the public.   According

to Dr. Meyers, of the remaining three features, one feature was

"not a terribly novel idea because it [was] widely used throughout

the standard library" for the C++ computer programming language

and the second feature was "equivalent in functionality" to

another commonly used function.   While Dr. Meyers concluded that

the third feature represented "a truly novel function," he had

"great difficulty" imagining a context in which that feature would

be a useful point of comparison because he could not determine any

value that the feature added to the StrongPointers.

     The defendants also presented the expert testimony of Mark G.

Soloway, who qualified as "an expert in the fields of computer

software design and process and distributed systems architecture."

Soloway earned an undergraduate degree in electrical engineering

and computer science, and a master's degree in electrical

engineering.   He was employed by Actuate from 1995 to 2000 and

served in various capacities with the company, including as an

interim director of server technology, a principal engineer, and a

chief server architect.

     Soloway testified that Xue's design of the five tables and

their corresponding indexes for Actuate was based on "reasonable

database design principles" and "generally accepted indexing


                                  15
principles," and that Xue's tables and indexes in both his first

and final draft of the metadata schema were "obvious" translations

of those principles.   Soloway explained that the indexes in the

schemas of MicroStrategy and Actuate were "very different . . . in

quite a few areas" and that in those instances in which the

Actuate indexes had similar goals, their design was dictated

either by a "reasonable entity relationship design" or by the

specific requirements of Actuate's product.

     Soloway stated that Xue's initial schema design for Actuate,

rather than his final design, should be the focus of any

determination whether he had misappropriated MicroStrategy's

indexing design.   Soloway concluded that if Xue had

misappropriated MicroStrategy's indexing design, then he would

have included elements of that design in his initial draft for

Actuate.   Soloway testified, however, that Xue's initial draft did

not include any such index design elements.

     The defendants also presented the expert testimony of Dr.

Daniel A. Menascé, a professor of computer science who has a Ph.D.

in computer science.   Dr. Menascé testified that both Li and Xue

were qualified computer scientists and computer engineers, and

that they both possessed the training, education, and experience

to have applied "generally-known computer science concepts" to

arrive at the results that they produced in their work for

Actuate.


                                 16
     Dr. Menascé also testified that the design of tables and

indexes is a "pretty common type of homework assignment" for

students in either undergraduate or graduate programs in computer

science.   Dr. Menascé stated that there is a "very well known set

of rules" that students can use to create indexes, and that a

homework assignment involving "a few tables" would typically take

a student about "a couple of hours" to complete.

     In a comprehensive letter opinion that contained numerous

findings of fact, the chancellor concluded that "MicroStrategy

ha[d] failed to meet its burden of proof on all . . . alleged

trade secrets," and held in favor of the defendants "on all

counts" of the bill of complaint.     The chancellor found that the

expert testimony of Soloway and Dr. Meyers was "more persuasive"

than Hutz's expert testimony, and the chancellor relied on the

testimony of the defendants' experts in stating his findings and

conclusions.

     The chancellor entered a final decree incorporating his

letter opinion and awarded judgment in favor of the defendants.

MicroStrategy appeals.

     MicroStrategy contends that the chancellor erred in holding

that it failed to prove that the defendants misappropriated the

alleged trade secrets.   MicroStrategy asserts that the Act's

definition of misappropriation includes the mere disclosure of a

trade secret and that the defendants can be liable for


                                 17
misappropriation even if they merely modified the trade secret or

used it as a starting point or guide to assist their own efforts.

MicroStrategy argues that it established the statutory element of

misappropriation by showing that its pointers and Actuate's

pointers shared "unique" features and by demonstrating the

"substantial similarity" between its indexes and Xue's first draft

of the indexes he designed for Actuate.

     MicroStrategy additionally contends that once it established

a "prima facie" case of misappropriation, the chancellor should

have required the defendants to rebut MicroStrategy's evidence

with "evidence of independent invention."   We disagree with

MicroStrategy's arguments.2




     2
       MicroStrategy has made additional arguments on appeal that
we do not address in view of our holding below.

                                18
                         Basic Principles

     Generally, the law affords the owner of a trade secret

protection "against the disclosure or unauthorized use of the

trade secret by those to whom the secret has been confided under

the express or implied restriction of nondisclosure or nonuse."

Kewanee Oil Co. v. Bicron Corp., 416 U.S. 470, 475 (1974).     "The

crucial characteristic of a trade secret is secrecy rather than

novelty."   Dionne v. Southeast Foam Converting & Packaging,

Inc., 240 Va. 297, 302, 397 S.E.2d 110, 113 (1990).    The Supreme

Court explained this distinction in Kewanee Oil Co.:

     Novelty, in the patent law sense, is not required for
     a trade secret . . . . However, some novelty will be
     required if merely because that which does not possess
     novelty is usually known; secrecy, in the context of
     trade secrets, thus implies at least minimal novelty.

416 U.S. at 476.

     Absolute secrecy is not required to establish the existence

of a trade secret.   Dionne, 240 Va. at 302, 397 S.E.2d at 113;

see Kewanee Oil Co., 416 U.S. at 475.   Thus, the owner of a

trade secret will not lose protection of the law by disclosing

the secret to a licensee, an employee, or others, provided that

the disclosure is made in express or implied confidence.

Dionne, 240 Va. at 302, 397 S.E.2d at 113; see Kewanee Oil Co.,

416 U.S. at 475.

     Because one of the primary purposes of trade secret

protection is to encourage innovation and development, the law


                                19
will not be employed to restrict legitimate competition.     See

Kewanee Oil Co., 416 U.S. at 481-82; Minnesota Mining & Mfg. Co.

v. Pribyl, 259 F.3d 587, 595 n.2 (7th Cir. 2001).     Therefore,

"[t]he owner of a trade secret is not entitled to prevent others

from using public information to replicate his product, nor may

the owner prevent others from making similar products which are

not derived from the trade secret."    American Can Co. v.

Mansukhani, 742 F.2d 314, 329 (7th Cir. 1984).

     The law, however, will protect the owner of a trade secret

from the disclosure or unauthorized use of the trade secret by

another to whom the secret has been confided under the express

or implied condition of nondisclosure or nonuse.    Kewanee Oil

Co., 416 U.S. at 475.   Further, the law protects the trade

secret owner from use of the secret by those who have obtained

access to it through improper means.    Id. at 475-76.

                         The Virginia Act

     The plain language of the Act reflects the General

Assembly's decision to protect the owner of a trade secret from

another's misuse of that secret.     Because the General Assembly

has enacted legislation addressing this subject, the role of the

courts is limited to construing and applying the terms set forth

in the Act.   See Dionne, 240 Va. at 304, 397 S.E.2d at 114.

     Depending on the facts of a particular case, software

components, as parts of a computer "program," may be trade


                                20
secrets covered by the Act.   See Code § 59.1-336.   In order for

a plaintiff to establish that such information has been the

subject of a trade secret violation, two statutory elements must

be proved, namely, the existence of a "trade secret" and its

"misappropriation" by the defendant.   See id.   Thus, if a

plaintiff fails to prove either required element, the plaintiff

is not entitled to relief under the Act.   See Code §§ 59.1-336

through –338.

     Under the definition of "trade secret" set forth in Code

§ 59.1-336, MicroStrategy was required to prove that the

software components at issue: 1) had independent economic value

from not being generally known and readily ascertainable by

proper means by persons who could obtain economic value from

their disclosure; and 2) were the subject of reasonable efforts

to maintain their secrecy.    To prove a "misappropriation" of

alleged trade secrets under the Act, based on its theory of the

case, MicroStrategy was required to establish two factors:    1)

that the defendants disclosed or used trade secrets developed by

MicroStrategy without its express or implied consent; and 2)

that the defendants knew or had reason to know that their

knowledge of the trade secrets was either acquired under

circumstances giving rise to a duty to maintain their secrecy,

or derived from or through a person who owed such a duty to

MicroStrategy.   Id.


                                 21
                        Standard of Review

     Before we address MicroStrategy's assignments of error, we

set forth our standard of review.     Because the chancellor heard

the evidence ore tenus, the court's decree is entitled to the

same weight as a jury verdict.   The Dunbar Group, LLC v. Tignor,

267 Va. 361, 366-67, 593 S.E.2d 216, 219 (2004); Shooting Point,

L.L.C. v. Wescoat, 265 Va. 256, 264, 576 S.E.2d 497, 501 (2003);

Chesterfield Meadows Shopping Ctr. Assocs., L.P. v. Smith, 264

Va. 350, 355, 568 S.E.2d 676, 679 (2002).

     The scope of our review also is defined by the nature of

the questions before us.   Therefore, we must determine whether

the chancellor's holding that MicroStrategy failed to meet its

burden of proving the statutory elements under the Act presents

questions of fact or mixed questions of law and fact.

     A question of fact deals with the establishment of

historical or physical facts.    See Crocker Nat'l Bank v. City

and County of San Francisco, 782 P.2d 278, 281 (Cal. 1989);

Yellow Cab Co. of Va., Inc. v. Gulley, 169 Va. 611, 619, 194

S.E. 683, 686 (1938).   In contrast, a mixed question of law and

fact requires the application of legal principles to historical

or physical facts and a determination whether the rules arising

from those legal principles are satisfied under the facts.

Pullman-Standard v. Swint, 456 U.S. 273, 290 n.19 (1982);

Sandberg v. Virginia Bankshares, Inc., 979 F.2d 332, 350 (4th


                                 22
Cir. 1992); Crocker Nat'l Bank, 782 P.2d at 281; see Anderson v.

Dillow, 262 Va. 797, 800, 553 S.E.2d 526, 527 (2001).

     Based on this distinction, we conclude that the

determination whether a trade secret exists ordinarily presents

a question of fact to be determined by the fact finder from the

greater weight of the evidence.    See Defiance Button Mach. Co.

v. C & C Metal Prods. Corp., 759 F.2d 1053, 1063 (2nd Cir.

1985); Learning Curve Toys, Inc. v. PlayWood Toys, Inc., 342

F.3d 714, 723 (7th Cir. 2003); Hulsenbusch v. Davidson Rubber

Co., 344 F.2d 730, 734 (8th Cir. 1965); Rivendell Forest Prods.,

Ltd. v. Georgia-Pacific Corp., 28 F.3d 1042, 1045 (10th Cir.

1994); Elm City Cheese Co. v. Federico, 752 A.2d 1037, 1043

(Conn. 1999).    Our conclusion reflects the chancellor's focus in

cases of this nature.   As the United States Court of Appeals has

observed, the existence of a trade secret often is "not obvious"

and "requires an ad hoc evaluation of all the surrounding

circumstances.   For this reason, the question of whether certain

information constitutes a trade secret ordinarily is best

'resolved by a fact finder after full presentation of evidence

from each side.' "   Learning Curve Toys, Inc., 342 F.3d at 723

(quoting Lear Siegler, Inc. v. Ark-Ell Springs, Inc., 569 F.2d

286, 288-89 (5th Cir. 1978)).

     We also conclude that the issue whether a trade secret has

been misappropriated generally presents a question of fact.    See


                                  23
Texas Urethane, Inc. v. Seacrest Marine Corp., 608 F.2d 136, 140

(5th Cir. 1979); Pioneer Hi-Bred Int'l v. Holden Found. Seeds,

Inc., 35 F.3d 1226, 1239 (8th Cir. 1994).   Such a determination

is uniquely factual in nature because it ordinarily involves

extensive circumstantial evidence that must be evaluated against

the direct evidence often presented by defendants in a trade

secrets case.   See Eden Hannon & Co. v. Sumitomo Trust & Banking

Co., 914 F.2d 556, 561 (4th Cir. 1990).

     The chancellor's resolution of a question of fact is

binding on appeal unless plainly wrong or without evidence to

support it.   See The Dunbar Group, LLC, 267 Va. at 367, 593

S.E.2d at 219; Ryland v. Manor Care, Inc., 266 Va. 503, 509, 587

S.E.2d 515, 519 (2003); Shooting Point L.L.C., 265 Va. at 264,

576 S.E.2d at 501.   Therefore, we will not set aside the

chancellor's decree in the absence of such error.   See The

Dunbar Group, LLC, 267 Va. at 367, 593 S.E.2d at 219; Shooting

Point L.L.C., 265 Va. at 264, 576 S.E.2d at 501.

     In addition, we observe that MicroStrategy does not

challenge on appeal any of the chancellor's individual findings

of fact.   Therefore, we do not address the sufficiency of the

evidence in support of those individual findings, because our

appellate review is limited to errors properly assigned under

our Rules.    See Rule 5:17(c); Shaheen v. County of Mathews, 265

Va. 462, 476 n.8, 579 S.E.2d 162, 171 n.8 (2003); Fairfax County


                                 24
Fire & Rescue Dep't v. Mottram, 263 Va. 365, 370 n.1, 559 S.E.2d

698, 700 n.1 (2002).   Accordingly, our consideration of the

record is limited to the issue whether the chancellor's factual

findings support his conclusions.

                          Burden of Proof

     We disagree with MicroStrategy's argument that the

chancellor erred in failing to shift the burden of proof to the

defendants to establish that Actuate's product was derived

independently of MicroStrategy 7.     The plain language of the Act

does not provide any burden-shifting requirement.    As we

observed in Dionne, "the proponent must bear the burden of

proving a trade-secret claim."   240 Va. at 303 n.2, 397 S.E.2d

at 113 n.2.   This burden does not shift, even when a plaintiff

has presented a prima facie case.     Therefore, we hold that

MicroStrategy, as plaintiff, had the burden of proving by a

preponderance of the evidence that the defendants

misappropriated MicroStrategy's trade secrets, and that the

defendants were not required to prove their product was

independently derived.

               Adequacy of the Chancellor's Findings

     The chancellor made numerous factual findings in support of

his conclusion that MicroStrategy failed to meet its burden of

proving either statutory element of a trade secret violation.

Because a failure of proof regarding either element will support


                                 25
the chancellor's judgment in favor of the defendants, we turn

directly to consider the chancellor's factual findings regarding

the second element necessary to establish a trade secret

violation, the issue of misappropriation.

                             Pointers

     The chancellor found that the defendants did not

misappropriate MicroStrategy's SmartPointer design or the design

and implementation of its StrongPointer.    The chancellor

concluded that before Li was employed by MicroStrategy, he

understood the "concept of controlling memory leaks with

pointers" and was familiar with several reference sources that

describe how these tools can be designed and implemented.    The

chancellor also found that a "knowledgeable C++ programmer"

could design a SmartPointer or a StrongPointer "without having

any of the reference sources in front of the programmer."

     In comparing the SmartPointers at issue, the chancellor

found that the Actuate SmartPointer has "a fundamentally

different design from MicroStrategy's. . . .   They have

different template arguments and Actuate's design is invasive

while MicroStrategy's [design] is not."    The chancellor also

concluded that although the two SmartPointers shared one unique

feature, this feature was a direct result of other design

decisions.   With regard to the StrongPointers, the chancellor

found incredible Hutz's assumption that Li worked from his


                                26
memory of MicroStrategy's source code when designing Actuate's

StrongPointers.

     The above conclusions culminated in the chancellor's

factual finding that the pointers Li designed for Actuate "were

not based on MicroStrategy's pointers but rather on public

sources that he had before him when he drafted the pointers in

question as well as his general knowledge of pointer

technology."   We hold that these factual findings, which are

conclusive in this appeal, fully support the chancellor's

determination that MicroStrategy failed to prove that the

defendants misappropriated MicroStrategy's pointer technology.

                          Metadata Schema

     The chancellor rejected Hutz's conclusion that Xue used or

disclosed MicroStrategy's confidential information when he

created five tables in Actuate's metadata schema.   Instead, the

chancellor relied on Soloway's testimony and concluded that the

five tables at issue "were an obvious translation of the schema

in Actuate 5 to that in Actuate 6."

     With respect to the index portion of the schema, in

accordance with Soloway's testimony, the chancellor found that

"the design of any index is driven by the table structure and

well known software design princip[les]."   Citing the different

functions of the software products, the chancellor also found

that because "Actuate did not support other commercial


                                27
databases[,] the creation of its tables and indexes was a far

simpler task than that facing MicroStrategy's software

engineers."   Finally, the chancellor rejected Hutz's conclusion

that Xue misappropriated MicroStrategy's indexes.

     These findings support the chancellor's conclusion that

with regard to the metadata schema, "MicroStrategy failed to

establish that the [defendants] misappropriated a trade secret."

Therefore, we hold that the chancellor's factual findings fully

support his resolution of all the trade secret misappropriation

issues presented in this appeal.3

     For these reasons, we will affirm the chancellor's

judgment.

                                                          Affirmed.




     3
       Based on our holding that MicroStrategy failed to
establish one of the two required elements under the Act, that
of misappropriation, we need not address MicroStrategy's
remaining assignments of error that involve the Act's other
required element, the existence of a trade secret.

                                28