How I Used to Think Black and Zebras Walt Woods, 2008

advertisement
How I Used to Think Black and
White Stripes Belonged Only on
Zebras
Walt Woods, 2008
MECOP at Datalogic Mobile Inc.
Eugene, OR, USA
Datalogic Mobile Inc. as an
Employer
Datalogic Mobile Inc
• Original Equipment Manufacturer (OEM) of
data collection devices
– Major manufacturer of handheld PDTs and
PDAs
– Vehicle Mounted scanners
• Barcodes (1D and 2D), RFID, and
Magnetic Stripe cards
• Windows CE and Windows Mobile
Datalogic Mobile Inc. in Eugene:
A Brief History
• 1961: Spectra-Physics Inc. founded
• 1974: First commercial barcode scan (by a Spectra-Physics device,
•
•
•
•
•
nonetheless)
19XY, 74 <= XY <= 96: Spectra-Physics moves to Eugene
1980: Percon founded; Easy-Read scanner
1996: PSC acquires Spectra-Physics Scanning Systems
2000: PSC acquires Percon Inc.
2005: Datalogic acquires PSC
• April 2nd, 2007: “Day One” of Datalogic Scanning, Datalogic
Automation, and Datalogic Mobile
How They Treat Interns
• $18/hour (1st Internship)
• 40 hours/week
– Flexible hours aside from meetings
– Overtime acceptable for time-sensitive,
important projects
• Discount at a local health club
My Corner of the World
Software Research & Development
• Datalogic Mobile has two SW R&D groups
– Eugene’s software R&D consists of 5 people
(excluding myself)
– Bologna’s software R&D consists of 7 people
• Semi-autonomous
• First fully joint project this year
Reporting Hierarchy
Gian Paolo Fedrigo
Francesco Montanari
Stefano Amorosi
Director of R&D
Mike Quick
Eugene R&D
John McConnell
SW Group Manager
Pat Watkins
Eric Freel
Tim Tendick
SW Test
Bologna R&D
Ankush Vimawala
Walt Woods
Software Test
• Eugene’s is Datalogic Mobile’s only test
group
• Responsible for Validation and Verification
of all products’ requirements
• 3 People
Marketing
• Represents customers
• Significant stakeholder in most products
Due Process
PREMR Process
Product Requirements
Document
Software Design
Document
Software Project
Management Plan
Software
Software Requirements
Specification
External Design
Document
Some Trees and Potted Plants
I Left Behind
My Projects
• First CE Application
•
•
•
•
•
•
•
•
– Starstrike
SerialX
DLConfigManager / DDUConfig
Remote Automation Library
Audio Drivers
Headset Control Panel
Datalogic Configuration Utility / WISE
Datalogic Firmware Utility
Coprocessor Communications
Definitions
• ROI – Return on Investment
– I do not have accurate figures to estimate these monetarily
• Instead, I present the two following metrics:
– E-Ratio – Effectiveness Ratio: Measured in ratio of
“Direct Usefulness to the business + Indirect Usefulness through
applicable experience” compared to “Development time”. Use
this as ROI if you want.
– SAT - Satisfaction – Percentage (0-100) personal satisfaction
with the solution as I left it. Zero implies that I feel my
contributions should be scrapped; 100 implies that I think my
solution is the absolute best solution possible for the project
My Projects
• First CE Application
•
•
•
•
•
•
•
•
– Starstrike
SerialX
DLConfigManager / DDUConfig
Remote Automation Library
Audio Drivers
Headset Control Panel
Datalogic Configuration Utility / WISE
Datalogic Firmware Utility
Coprocessor Communications
First CE Application
• No prior CE experience
• Familiarized me with
•
•
Datalogic’s barcode SDK
1.5 Weeks spent tinkering
E-Ratio 1:1, SAT 40%
– Saved time later
– Had I included more GUI
elements, would have been
more useful
My Projects
• First CE Application
•
•
•
•
•
•
•
•
– Starstrike
SerialX
DLConfigManager / DDUConfig
Remote Automation Library
Audio Drivers
Headset Control Panel
Datalogic Configuration Utility / WISE
Datalogic Firmware Utility
Coprocessor Communications
Starstrike
• Quick project to
•
•
familiarize myself with
GDI functions
1-2 Days to make
E-Ratio 3:1, SAT 80%
– Used most this knowledge
later
– Re-used basic code for
subsequent projects
– Directly contributed to
headset control panel
My Projects
• First CE Application
•
•
•
•
•
•
•
•
– Starstrike
SerialX
DLConfigManager / DDUConfig
Remote Automation Library
Audio Drivers
Headset Control Panel
Datalogic Configuration Utility / WISE
Datalogic Firmware Utility
Coprocessor Communications
Serial X
• Windows app that erases the
serial number from Pegaso
units
– Directly modifies flash
• Used by repair in some
situations
• 2 Weeks
• E-Ratio 6:1, SAT 50%
– Needed functionality
– Also assessed perceived
failure of flash erasure
– It’s never particularly
satisfying to find out that a
week was spent to determine
nothing was wrong
My Projects
• First CE Application
•
•
•
•
•
•
•
•
– Starstrike
SerialX
DLConfigManager / DDUConfig
Remote Automation Library
Audio Drivers
Headset Control Panel
Datalogic Configuration Utility / WISE
Datalogic Firmware Utility
Coprocessor Communications
DLConfigManager / DDUConfig
• Reads settings from device,
spits out XML representation of
GUI
• Plugs into DCU
• 2 Weeks
– Initial version only took 1
week. Turns out there’s a
reason to spend more time on
projects
• E-Ratio 10:1, SAT 90%
– Developed fairly rapidly
– Very quick to modify, good
backwards compatibility
support
– Required functionality
My Projects
• First CE Application
•
•
•
•
•
•
•
•
– Starstrike
SerialX
DLConfigManager / DDUConfig
Remote Automation Library
Audio Drivers
Headset Control Panel
Datalogic Configuration Utility / WISE
Datalogic Firmware Utility
Coprocessor Communications
Remote Automation Library
• Allows control and
•
•
•
querying of device
through PC link
Designed to aid GUI
testing
4 Weeks
E-Ratio 0:1, SAT 80%
– At the moment, not used;
test is too busy to employ
time learning to use it
– The solution seems to work
great though
My Projects
• First CE Application
•
•
•
•
•
•
•
•
– Starstrike
SerialX
DLConfigManager / DDUConfig
Remote Automation Library
Audio Drivers
Headset Control Panel
Datalogic Configuration Utility / WISE
Datalogic Firmware Utility
Coprocessor Communications
Audio Drivers
• Experimenting with ways to
clean up signal for VR software
• Band pass filters, fourier
transforms, band compression
• 4 Weeks
• E-Ratio 1:4, SAT 60%
– Microphone volume meter is
used in Headset Control Panel
– Sadly, the filters degraded
signal performance
– Learned a lot about waveform
drivers and mathematical
filters
My Projects
• First CE Application
•
•
•
•
•
•
•
•
– Starstrike
SerialX
DLConfigManager / DDUConfig
Remote Automation Library
Audio Drivers
Headset Control Panel
Datalogic Configuration Utility / WISE
Datalogic Firmware Utility
Coprocessor Communications
Headset Control Panel
• Allows users to
•
•
control microphone
gain and amp boost
1 Week
E-Ratio 4:1, SAT 80%
– Required functionality
– Simple design, works
well
My Projects
• First CE Application
•
•
•
•
•
•
•
•
– Starstrike
SerialX
DLConfigManager / DDUConfig
Remote Automation Library
Audio Drivers
Headset Control Panel
Datalogic Configuration Utility / WISE
Datalogic Firmware Utility
Coprocessor Communications
Datalogic Configuration Utility /
WISE
• Fixed various bugs
• Contributed basic
•
•
password encryption
scheme
1 Week
E-Ratio 1:1, SAT 60%
– Closing bugs is kind of
fun
– Weak password
scheme
My Projects
• First CE Application
•
•
•
•
•
•
•
•
– Starstrike
SerialX
DLConfigManager / DDUConfig
Remote Automation Library
Audio Drivers
Headset Control Panel
Datalogic Configuration Utility / WISE
Datalogic Firmware Utility
Coprocessor Communications
Datalogic Firmware Utility
• Fixed a few WISE installer
bugs
• Updated for Vista compatibility
– Swapped out USB drivers (old
Jungo for new)
– Updated Serial driver
– Replaced ActiveSync detection
method
• 1 Week
• E-Ratio 5:1, SAT 90%
– Quick patch
– Supporting a new OS is
important
– Made future replacements of
Jungo easier
My Projects
• First CE Application
•
•
•
•
•
•
•
•
– Starstrike
SerialX
DLConfigManager / DDUConfig
Remote Automation Library
Audio Drivers
Headset Control Panel
Datalogic Configuration Utility / WISE
Datalogic Firmware Utility
Coprocessor Communications
Coprocessor Communications
• Designed (read: adapted old)
coprocessor communication
protocol for Next Gen products
• First experience writing Serial
communication code
• 2 Weeks
• E-Ratio 4.5:1, SAT 60%
– Specs are important,
particularly when development
is physically split (Eugene and
Bologna)
– Directly influences Next
Generation of products
– Networking is something of a
hobby
Other Things of Note
Pegaso Presentation
• Learned about:
–
–
–
–
Windows CE
Image Build process
Image layout in RAM
Coprocessor
functionality
– CPU Boot Procedure
Diagnosing System Lockups
• Interesting lock-up caused more than a
few headaches around the office
• No reason for the lockup was immediately
apparent
• Grand example of unknown bug analysis
– Isolate conditions
– Determine contributors
– Craft and try solutions
Task Switching
• Writing two
• It’s hard to write
• sentences at once
• this way
• is hard.
• There was a great deal of this, though
usually it was to a good effect
Thana Schafer
• Owns and displays a
•
•
crowbar in her office
Lies to boys
Takes scary pictures
RAPIt Up
That’s a bad pun. In other words:
last words.
Helpful Courses
•
•
•
•
•
•
•
CS161/162 – Intro to CS
CS261 – Data Structures
CS311 – Operating Systems
CS325 – Analysis of Algorithms
CS361 – Software Engineering I
ENGR201/202 – Electrical Fundamentals
ECE375 – Computer Organization & Assembly Language
• Notable omissions: CS362
Overall Impressions
• Datalogic Mobile makes quality, diverse
products
• Wide variety of tasks to choose from
– As well as plenty of interesting odds and ends
to keep an intern busy
• Excellent balance of work and play
Download