Oracle Corporation et al v. SAP AG et al
Filing
729
Declaration of Jason McDonell in Support of 728 MOTION in Limine Defendants' Motions in Limine Declaration of Jason McDonell in Support of Defendants' Motions in Limine filed bySAP AG, SAP America Inc, Tomorrownow Inc. (Attachments: # 1 Exhibit A, # 2 Exhibit B, # 3 Exhibit C, # 4 Exhibit D, # 5 Exhibit E, # 6 Exhibit F, # 7 Exhibit G, # 8 Exhibit H, # 9 Exhibit I, # 10 Exhibit J, # 11 Exhibit K, # 12 Exhibit L, # 13 Exhibit M, # 14 Exhibit N, # 15 Exhibit O, # 16 Exhibit P, # 17 Exhibit Q, # 18 Exhibit R, # 19 Exhibit S, # 20 Exhibit T, # 21 Exhibit U, # 22 Exhibit V, # 23 Exhibit W, # 24 Exhibit X, # 25 Exhibit Y, # 26 Exhibit Z, # 27 Exhibit AA, # 28 Exhibit BB, # 29 Exhibit CC)(Related document(s) 728 ) (Froyd, Jane) (Filed on 8/5/2010)
Oracle Corporation et al v. SAP AG et al
Doc. 729 Att. 11
EXHIBIT K [REDACTED VERSION]
Dockets.Justia.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
BINGHAM McCUTCHEN LLP DONN P. PICKETT (SBN 72257) GEOFFREY M. HOWARD (SBN 157468) HOLLY A. HOUSE (SBN 136045) ZACHARY J. ALINDER (SBN 209009) BREE HANN (SBN 215695) Three Embarcadero Center San Francisco, CA 94111-4067 Telephone: (415) 393-2000 Facsimile: (415) 393-2286 donn.pickett@bingham.com geoff.howard@bingham.com holly.house@bingham.com zachary.alinder@bingham.com bree.hann@bingham.com DORIAN DALEY (SBN 129049) JENNIFER GLOSS (SBN 154227) 500 Oracle Parkway, M/S 5op7 Redwood City, CA 94070 Telephone: (650) 506-4846 Facsimile: (650) 506-7114 dorian.daley@oracle.com jennifer.gloss@oracle.com Attorneys for Plaintiffs Oracle America, Inc., Oracle International Corporation, Oracle EMEA Limited, and Siebel Systems, Inc. UNITED STATES DISTRICT COURT NORTHERN DISTRICT OF CALIFORNIA OAKLAND DIVISION ORACLE USA, INC., et al., Plaintiffs, v. SAP AG, et al., Defendants. CASE NO. 07-CV-01658 PJH (EDL) DECLARATION OF NORM ACKERMANN IN SUPPORT OF ORACLE'S MOTION FOR PARTIAL SUMMARY JUDGMENT REDACTED Date: Time: Place: Judge: May 5, 2010 9:00 am 3rd Floor, Courtroom 3 Hon. Phyllis J. Hamilton
Case No. 07 CV 01658 PJH (EDL)
DECLARATION OF NORM ACKERMANN IN SUPPORT OF ORACLE'S MOTION FOR PARTIAL SUMMARY JUDGMENT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
I, Norm Ackermann, declare as follows: 1. I am a Senior Principal Applications Systems Designer for Oracle Canada,
ULC. I have personal knowledge of the facts set forth in this declaration and would competently testify to them if called upon to do so. 2. I have been an employee of Oracle Canada, ULC, or of its predecessors
and related entities, (collectively, "Oracle") since December 1995. In my over 14 years of experience with Oracle, I helped to develop and maintain many versions of PeopleSoft HRMS software, including HRMS 7.0, HRMS 7.5, and HRMS 8.0 SP1. My references below to "PeopleSoft HRMS" and "HRMS" specifically include these three versions. 3. HRMS is a very large and complex application that enables its users to
manage human resources data and processes. HRMS resulted from the creative efforts of hundreds of developers, including my own creative efforts. Among other things, it includes user interface code, business logic or workflow code, queries, reports and data storage code. In writing this code, Oracle's developers implemented the overall HRMS program architecture, designed the look and feel of the application, and integrated the querying, reporting, and information storage technologies. Each of these portions of the HRMS architecture was further designed to be updatable and expandable over time, as the scope and functionality of HRMS expanded and as technology continued to evolve. HRMS overall, then, is the result of hundreds of thousands of choices made by hundreds of individual developers, because there are nearly limitless ways to create programs (such as HRMS) that allow users to enter, review and report data. 4. The programs that make up HRMS are also large and complex. Many
developers, over time, worked together to implement each report, each user interface screen, each database table, and all of the connections between these items. I have modified the code for many of these items hundreds of times over my career at Oracle; in every case, the modifications that I implemented would likely have been executed differently had some other developer been writing the code. When I and other HRMS developers are adding to or modifying the features and functionality of a particular version of HRMS, we are constantly required to make additional 2 Case No. 07 CV 01658 PJH (EDL)
DECLARATION OF NORM ACKERMANN IN SUPPORT OF ORACLE'S MOTION FOR PARTIAL SUMMARY JUDGMENT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
choices about how to implement those features and functionality. Although we might be given high-level specifications about what features and functionality to add, the choice about how to implement features and functionality in the existing code is ultimately a personal and creative one. 5. As one of the HRMS developers, I am personally familiar with the way
Oracle created each new version of HRMS software, starting with version 5.1 and continuing to the present day. To create a new version of HRMS software, Oracle began with a copy of the latest code source code, database schema and database contents from the immediately prior version. Thus, Oracle incorporated the software in its entirety (including source code on the file system and code and schema in the database) from the earlier version of HRMS into each subsequent version, with only small portions of that earlier software being modified or replaced. 6. To create HRMS 7.01, Oracle started with a copy of the source code and
database (both schema and contents) for HRMS 7.0 and developed an update called HRMS 7.01 Application Update; application of the HRMS 7.01 Application Update to an installation of HRMS 7.0 resulted in HRMS 7.01. To create HRMS 7.02, Oracle started with a copy of the source code and database (both schema and contents) for HRMS 7.01 and developed an update called HRMS 7.02 Application Update; application of the HRMS 7.02 Application Update to an installation of HRMS 7.01 resulted in HRMS 7.02. To create HRMS 7.51, Oracle started with a copy of the source code and database (both schema and contents) for HRMS 7.5 and developed an update called HRMS 7.51 Application Update; application of the HRMS 7.51 Application Update to HRMS 7.5 resulted in HRMS 7.51. I was personally involved in the creation of each of the updates discussed in this paragraph. 7. In the course of developing each of the updates described in the preceding
paragraph, only a very small part of the code from the earlier version of HRMS was modified or replaced. In my estimation, and based on my knowledge that Oracle rarely if ever deleted features and functionality from one version of HRMS to another, almost all of the code from HRMS 7.0 is present in HRMS 7.01 and in HRMS 7.02, and almost all of the code from HRMS 7.5 is present in HRMS 7.51. 3
Case No. 07 CV 01658 PJH (EDL)
DECLARATION OF NORM ACKERMANN IN SUPPORT OF ORACLE'S MOTION FOR PARTIAL SUMMARY JUDGMENT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
8.
I have often installed HRMS from a CD, DVD or downloaded executable
file, and I have personal knowledge o f the results o f an installation. When HRMS is installed from a CD, DVD o r downloaded executable file, a copy o f the entire HRMS software is installed. An installation o f H R M S includes nearly 100% o f the source code, database schema and d a t a b a s e c o n t e n t s , d e s c r i b e d b e l o w . 9. A n i n s t a l l a t i o n o f H R M S s o f t w a r e , s o m e t i m e s c a l l e d an " e n v i r o n m e n t , "
contains a database component (see paragraphs 10-11, below) and a P S _ H O M E component (see paragraph 12, below). The database component generally determines w h a t screens a user sees, what d a t a shows up on each screen and how that d a t a is presented, what kind o f data a user can enter on the screen, and what kind o f interactive tasks a user can perform. The database c o m p o n e n t c o m p r i s e s a d a t a b a s e s c h e m a and d a t a b a s e c o n t e n t s . 10. The database schema includes tables, such as which
contains employee t a x results from payroll paycheck calculations. Tables contain fields, such as . ' w h i c h h o l d s e m p l o y e e i d e n t i f i c a t i o n numbers. A s a d e v e l o p e r , I h a d t h e a b i l i t y t o d e s i g n t a b l e s a c c o r d i n g t o m y o w n c r e a t i v e c h o i c e s . I c o u l d n a m e t a b l e s a n d fields as I c h o s e , s u b j e c t o n l y to a l o o s e n a m i n g c o n v e n t i o n t h a t h a s e v o l v e d o v e r t i m e a m o n g H R M S d e v e l o p e r s ; I could also decide h o w tables would be organized, for instance specifying what information would be included in each record and how records would relate to one another. Dozens o f tables, table structures, table names and field names i n H R M S were the results o f my creative choices. As a developer, I also more broadly chose whether to solve a problem by adding fields to an existing table o r whether instead to create a new, r e l a t e d t a b l e .
II.
T h e d a t a b a s e c o n t e n t i n c l u d e s user i n t e r f a c e d a t a , c o d e t h a t i m p l e m e n t s
business logic, comments, and other content, all designed and implemented in the manner chosen by the developers who created that content. PeopleS oft HRMS database content is often in the form o f online objects, a type o f code that is created and maintained inside o f a PeopleSoft HRMS database schema. In my experience, PeopleSoft HRMS database content, and specifically the online objects related to user interface data, online objects related to business logic, comments, online object names, and other attributes and content, result from creative 4 Case No. 07-CV-01658 PJH (EDL)
DECLARATION OF N O R M A C K E R M A N N IN SUPPORT OF O R A C L E ' S MOTION FOR PARTIAL SUMMARY JUDGMENT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
choices made by hundreds of my Oracle developer colleagues. As a developer, I have created dozens of new online objects. I had innumerable choices for how to name these objects, subject only to a loose naming convention that has evolved over time among HRMS developers. Similarly, on dozens of occasions, I have chosen how to display data to a user, how to connect different display pages and user activities, and how to solve other problems relating to the user interface and database content. 12. The component referred to as a PS_HOME is generally is involved in
running and formatting reports, loading data, exporting data, and similar batch or non-interactive tasks. PS_HOME refers to a directory structure created by Oracle developers that includes programs which contain functions, subroutines, and program variables. These programs, functions and subroutines include both source code and comments. In my experience, the names of, relationships between and structures of these programs, functions, subroutines, and program variables all result from the creative choices made by hundreds of my Oracle developer colleagues. As a developer, I have created hundreds of program variables. Each time I introduced a program variable, I had innumerable choices for how to name these program variables, subject only to a loose naming convention that has evolved over time among HRMS developers. In creating or modifying functions and subroutines, I have repeatedly chosen exactly what code to write. I also chose, stylistically, whether to write code in one continuous section or split it into separate sections with named subroutines, and whether and how to set off sections or important programmatic structures with comments. 13. Because developers like me have so much creative license in how to
name, structure and present their code, I have observed that individual developers often have their own style. In addition to structural choices like those discussed above, in the database and in the source code, developers have tremendous leeway in their use of comments, whitespace, and names, because these stylistic choices generally do not affect the functioning of the code. I have written hundreds of comments in the code for HRMS to visually organize thousands of lines of code. 5
Case No. 07 CV 01658 PJH (EDL)
DECLARATION OF NORM ACKERMANN IN SUPPORT OF ORACLE'S MOTION FOR PARTIAL SUMMARY JUDGMENT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
14.
Although the database and PS_HOME components of HRMS are stored
separately (one in a database and one in a directory structure on a computer's file system), both are equally important portions of the PeopleSoft HRMS software, and the program will not function unless both are present. The creative and original content in both components is reproduced when PeopleSoft HRMS software is reproduced, whether by performing a new installation or by copying an existing environment. Copying an existing environment also results in the reproduction of all of the programs that make up HRMS, described in paragraphs 3-4, above, that result from the initial installation. 15. On February 17-22, 2010, I obtained from Oracle's counsel copies of the
contents of install CDs for HRMS 7.0, HRMS 7.5 and HRMS 8.0 SP1 that I understand Oracle produced in this matter as ORCL00264031, ORCL00400498, and ORCL00264026, respectively. 16. On February 18, 2010, I obtained three files from Oracle's counsel that
were identified as compressed backups from the servers of TomorrowNow, Inc. ("SAP TN"): H702RHIM_20060705_1307, HR751CSS_20070404_0927, and HR810DMO_20050315_1158. 17. In order to illustrate the fact that SAP TN's installations and reproductions
of HRMS created copies of HRMS code that had the creative characteristics described above, I compared code from install CDs for HRMS 7.0, HRMS 7.5 and HRMS 8 SP1 to the corresponding code from corresponding SAP TN HRMS environment backups that were provided to me. From each of the Oracle install CDs and each of the SAP TN backups, I extracted three files with which I am personally familiar: PER002.SQR, which creates a report listing employee birthdays; PSPCPCAL.CBL, which is used in calculating Canadian payroll; and, PSPFNDSE.CBL, which is used in retrieving information about "special earnings," which are data structures that handle different combinations of earnings. A list of the file paths for each file that I extracted is attached as Appendix A. 18. I compared the three files from the install CD for HRMS 7.0 to the three
files from H702RHIM_20060705_1307, the three files from the install CD for HRMS 7.5 to the three files from HR751CSS_20070404_0927, and the three files from the install CD for HRMS 8.0 SP1 to the three files from HR810DMO_20050315_1158. My observations are attached as 6 Case No. 07 CV 01658 PJH (EDL)
DECLARATION OF NORM ACKERMANN IN SUPPORT OF ORACLE'S MOTION FOR PARTIAL SUMMARY JUDGMENT
1
A p p e n d i x B. I found t h a t b e t w e e n 80% a n d 100% o f t h e lines from t h e Oracle install CDs show up identically in t h e SAP T N backup file, and I confirmed t h a t t h e c o m m o n lines included or reflected m a n y types o f the creative d e v e l o p e r input t h a t I have both created and observed, as d e s c r i b e d above. 19. A comparison o f e a c h p a i r o f files o r an excerpt t h e r e o f can be found in
2
3
4
5
6
A p p e n d i c e s C t h r o u g h K. T h e s e comparisons accurately r e f l e c t the o n - s c r e e n code comparisons t h a t I h a v e e x a m i n e d . C o d e f r o m t h e O r a c l e i n s t a l l C D file a p p e a r s o n t h e l e f t s i d e o f e a c h p a g e , a n d c o d e from the S A P T N backup file appears o n the right side o f each page. Code t h a t is identical in both files is black o r grey. Code t h a t is present in one file b u t n o t the o t h e r , o r that is different between t h e t w o files, is red or blue. 20.
7
8
9
10
11
A cursory visual i n s p e c t i o n o f A p p e n d i c e s C t h r o u g h K will s h o w t h a t t h e
12
13
v a s t majority o f t h e original Oracle code is p r e s e n t in the SAP T N backup file. In other w o r d s , t h o u g h t h e r e are m a n y w a y s to w r i t e an e m p l o y e e b i r t h d a y report, calculate C a n a d i a n payroll t a x e s o r retrieve data structures for special earnings, the Oracle-developed re port o r calculation is a l m o s t e n t i r e l y p r e s e n t in t h e S A P T N copy. 21. L ooki ng m o r e specifically at j u s t one example, A p p e n d i x G is the
14
15
16
17
P S P C P C A L . C B L comparison b e t w e e n the Oracle H R M S 7.5 install C D and H R 7 5 1 C S S _ 2 0 0 7 0 4 0 4 _ 0 9 2 7 . T h e Oracle file contains 3 3 0 7 lines. B e l o w , I have r e p r o d u c e d a very small part o f P S P C P C A L . C B L , a file t h a t is a small but important part o f the H R M S product.
18
19
20
21
22
23 24 25 26 27 28 ( A p p e n d i x G, lines 1350-1360 o f the Oracle install CD file / lines 1545-1555 o f the SAP T N b a c k u p file)
7
Case No. 07-CV-01658 PJH (EDL)
DECLARATION OF N O R M ACKERMANN IN SUPPORT 01' O R A C L E ' S MOTION F O R PARTIAL SUMMARY JUDGMENT
1
2
3
4 (Appendix G, lines 1399-1404 o f t h e Oracle install CD file / lines 1596-1601 o f the SAP T N
5
backup file)
6
7
22.
The comments a n d code from lines 1399-1404 o f the Oracle file in
8
9
A p p e n d i x G, reproduced in paragraph 21, reflect multiple, small-scale, creative choices made by O r a c l e ' s developers. F o r example, in order to indicate that a segment o f code is a comment, a developer must p u t one asterisk in front o f t h e comment. F o r aesthetic reasons, however, Oracle developers often choose to make a box o f asterisks around a comment or an important code feature. This use o f asterisks, which appears in both files, w a s a creative choice. 23. subroutine n a m e d " The uncommented code in lines 1399-1404 o f the Oracle file defines a ." I k n o w from w r i t i n g d o z e n s o f n a m e d
10
11
12
13
14
15
subroutines in C O B O L files for H R M S t h a t this name was arbitrarily chosen b y an Oracle developer. In m y over 14 years o f H R M S development experience, I have never seen two Oracle developers independently choose the exact same name to define subroutines o f this type. A p p e n d i x G shows t h a t the exact same subroutine name appears in both files. 24. The code from lines 1350-1360 o f the Oracle file in Appendix G,
cr~ative
16
17
18
19
20
reproduced in paragraph 21, also reflects multiple, small-scale, O r a c l e ' s developers. F o r example, t h i s c o d e refers t o t h e "
choices made by "
21
22
s u b r o u t i n e d i s c u s s e d i n p a r a g r a p h 23, t h u s r e f l e c t i n g t h a t c r e a t i v e c h o i c e o f s u b r o u t i n e n a m e . 25. B a s e d o n m y w o r k i n g k n o w l e d g e o f t h e C O B O L files a n d o n m y o w n
23
24
experience in writing H R M S C O B O L code, using whitespace t o indent certain lines o f code is purely optional. I n lines 1350-1360 o f the Oracle file, t h e choices to indent t h e line beginning " T O " b y eight spaces relative to t h e IF statement, t o indent the line beginning " M O V E " b y four spaces relative to t h e IF statement and to indent t h e line beginning " P E R F O R M " by six spaces
25 26
27
28
8
Case No. 07-CV-01658 PJH (EDL)
D E C L A R A T I O N O F N O R M A C K E R M A N N I N S U P P O R T OF O R A C L E ' S M O T I O N F O R P A R T I A L S U M M A R Y J U D G M E N T
1 2 3
4
spaces relative to the IF statement and to indent the line beginning " P E R F O R M " by six spaces relative to the IF statement are all arbitrary choices, made at an Oracle d e v e l o p e r ' s discretion. These stylistic choices have been reproduced verbatim i n the SAP TN file. 26. Additionally, based on my personal experience writing C O B O L code in
5 6 7 8 9 10
11
general and editing this file in particular, this exact same functionality could have been written b y checking a different variable and exchanging the IF and ELSE conditions. In fact, another developer could have written this same functionality using a different structure entirely, such as an EV A L U AT E structure rather than an IF structure. These choices are further examples o f the individual developer styles I have observed during my 14 years at Oracle, and further examples where even simple creative choices appear to have been copied in their entirety b y SAP TN. 27. O r a c l e ' s HRMS code is the result o f millions o f small-scale choices like
12
13 14 15
the small, discrete examples described in paragraphs 22-26. O n a larger scale, HRMS as a whole r e f l e c t s h u n d r e d s o f t h o u s a n d s o f additional choices, i n c l u d i n g c h o i c e s a b o u t w h a t r e p o r t s a n d calculations to provide to users, what data to store to be displayed in those reports and manipulated in those calculations, in what structure that stored d a t a ought to be kept, and what user interfaces to build to allow users to enter, view and modify data, reports and calculations. H R M S is the sum o f these creative choices and more, from what architecture and technologies to use all the way down to h o w to implement particular subroutines. I declare under penalty o f petjury that the foregoing is true and correct and t h a t this declaration was executed on March 1 , 2 0 1 0 , a t Vancouver, British Columbia, Canada.
16
17
18
19
20
21
22
L/LNorm Ackermann
23
24
25 26
27
28
9
Case No. 07-CV-Q1658 PJH (EDL)
DECLARATION OF NORM ACKERMANN IN SUPPORT OF ORACLE'S MOTION FOR PARTIAL SUMMARY JUDGMENT
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?