George Carrette. Confidential Information. This is more of the detailed information on some things I did at MITECH in terms of project leadership and implementation. This material, along with the references at the end (including some customers) should help answer the essential risk-oriented question, "can this guy get a product out or what?" Code management system: I designed, implemented, and enforced all MITECH's internal code management and tracking mechanisms, software building, and release systems, bug tracking mechanisms, etc. The code management system feeds info into RDB allowing a PC-client to browse the info along with the cooresponding bug report data. M/POWER is divided up into many modules, all communicating via a message passing system and/or a shared-memory/persistent object database. This goes through most of the modules and the codesizes, not including a lot of supporting internal documentation and management tools, installation scripts, internal testing libraries, etc (the effort which goes into making sure all of the material not included in this codesize analysis is considerable of course, and pays off big in ease of product delivery, but I had to make some kind of cut-off to do a quick analysis). Also I prefered in this development to have supporting internal documentation in different files rather than cluttering up the source code with a lot of comments. Coding style also avoids the C programmers favorite of having lots of cases where "}" is the only character found on a line of code. For an example of coding density, connect via anonymous ftp to ftp.std.com get get pub/gjc/siod-3.0-shar. An interpreter with with commercial database extensions. "wc output" name Purpose lines words bytes ----------------------------------------------------------------------------- LSPLIB internal rapid-development language | 12182 30410 314933 MI Man-Machine Interface, M/POWER compiler | 21088 63521 590429 SYSTEM Runtime transaction kernel, runtime display | 28763 89885 808691 VTBUILD vt-100 runtime screen builder | 916 2427 26035 XBUILD X/MOTIF runtime screen builder | 6362 18541 170288 ESIL External-System interface library and API | 13339 40549 407570 RDB Interface to DEC RDB | 4348 13218 137117 ORACLE Interface to Oracle (uses RDB above) | 1220 3516 36719 RMS Interface to record management services | 1215 4375 39193 @AG Dec @aglance interface/pc-data-server | 2347 6711 69007 AB Allen-Bradley PLC interface DTL/NETDTL | 1332 3992 43187 BAILEY Network-90 DCS interface. | 659 1842 17577 BASESTR DEC BASESTAR PLC interface. | 1550 5226 44181 BILES Biles AIM time time series database intrfa | 1536 4595 46968 CM50 Honeywell CM50 DCS interface. | 2811 5557 45821 D3 Texas Instruments D3 DCS interface. | 3051 8113 77605 FISHER Fisher/Provox DCS interface. | 8034 28440 224153 MOD300 ABB Mod 300 DCS interface. | 6610 22186 208600 PI Oil Systems PI time series database interfa | 267 834 9054 SETCIM SETCIM time series database interface. | 2903 9918 91400 ZEBRA Interface to zebra bar code system | 300 911 11907 HCC Interface to Hoechst Celanese Corporation | 1020 3168 34097 D3PDP11 PDP-11 specific (some assembler) bits | 1134 2996 22997 ----------------------------------------------------------------------------- Total of subsystems above | 122987 370931 3477529 Notes: - SYSTEM implements a virtual machine and MI implements are compiler for that machine. - The RDB interface code is really a general purpose library for implementing relational data interfaces, hence the smaller size of the Oracle interface. - ESIL is both the library for creating legacy interfaces and the API for M/POWER's persistent object database realtime portion. It deals with some of the hard-nuts issues of optimal data fetching patterns in time/space. Many DCS interfaces have both a realtime component and a configuration/database component. - Patent: I figured out what invention claims we would make, generated the materials for our disclosures used in the application and presecution and was our technical coorespondent with our legal council. - D3PDP11, in order to sell our second customer we had to reverse-port our VAX based ESIL/D3 interface to the PDP-11 RSX/11m environment. This meant duplicating subsets of ESIL, and writing some assembler code under tight time constraints. I had never used RSX/11M or PDP-11 assembler, but got the job done in-the-field in a week. - Ports: I did all of the porting work from the forgiving VAX C compiler to the ANSI C compilers on RISC and INTEL architectures. Including the Windows NT port, which meant a rework of the underlying libraries interfacing to the API of the OS. To get an idea of the programmer resources involved in the work, here is a retrospective I made about a year and a half ago. In fact when I was first thinking about leaving MITECH, I think that was about the time the CEO left who had been brought in by the Venture people. We have also had consultants and other people involved in application-specific engineering and customer support. But 99% of the code in the system was written by either GJC, GHF, or RWW, the majority of which was written by yours truly, and the rest not written by me had its internal and external module interfaces specified by me. Year Month Software Development Engineer Staff ------------------------------------------------ 1988 02 GJC, GHF 1990 01 GJC (GHF making plans to leave with wife to Texas) 1990 04 GJC (GHF leaves) 1992 04 GJC, RWW (new hire) 1993 06 current time. 6.5 man years total software development resources available during history of company, 5.5 years. Average software development staff size = 1.2 persons. All development was done by 1993. Giving a delivered product coding rate of about 75 lines a day. (With a lot of documentation, travel and product/sales support going on at the same time of course). -- Reference type: founding CEO and current CEO of MITECH Personal contact: Jim Clancy Work Phone: 508-263-7999 Reference type: CUSTOMER Personal contact: Mario Jimenez Company: Monsanto, Pensicola Florida Phone: 904-968-8757 Email: MEJIME@MUTTON.MONSANTO.COM Product: M/POWER. In particular the rapid development and support of links between the "relation-object structure" of M/POWER to the legacy control systems Fisher/Provox, the Biles AIM system, and some neural network code. In the past he has remarked to people about how Fisher in working with MITECH's competition took man years of effort to build an interface that took MITECH much less time (ask him) and resulted in much lower consumption of computing resources. Reference type: CUSTOMER Personal contact: Mike Eads, Jim Johnson (Supervisor) Company: Eastman Chemical Phone: 615-229-8799 Email: mjeads@emn.com Product: M/POWER, and the timely delivery of the D3 PDP-11 interface. Reference type: CEO of MITECH who left the company in 1993. Personal contact: John Lucas Home Phone: 508-897-8266 Reference type: Co-worker (RWW) Personal contact: R. Wade Williams Home Phone: 508-371-1975 Work Phone: 508-263-7999 Description: He can talk about how I can get people up to speed on technology and product internals quickly, and my design and development skills. Ask him about the tests I give potential hires. He started work here in April of 1992, at the time when I was looking forward to Mitech expanding and RWW perhaps becoming the VP of Engineering, leaving me more time to lead a new product development team. Reference type: Supervisor, Client. Personal Contact: Grant Cook. Work Phone: 510-423-4673 Product: consulting work for Lawrence Livermore Labs where I helped them build a physics simulation specification language and compiler.