Industrial Multi-Angle Spectrophotometer

Agile and Test-Driven Development in embedded software?
You bet your sweet transistors.

Challenge

A color measurement company recognizes its need to improve firmware quality and new product delivery in its newest large-scale project. They also lack the capacity to meet their schedule.

X-Rite MA9x Device

Project Overview

X-Rite came to AO to introduce Agile project management and Test-Driven Development to its firmware group and provide programming resources for a new product development effort.

Industry

Industrial Color Measurement

Project Type

Firmware/Embedded Software

Project Size

  • 19 Months
  • 6 Developers (3 Atoms)

Services

  • Agile Training
  • TDD Training
  • Software Development
  • Interaction Design

Technical Nitty Gritty

  • ARM9 Processor & RTOS
  • C Language
  • USB, TWI, SPI, Bluetooth
  • Motor Control
  • A/D Conversion
  • Power Management
  • Full Graphical User Interface
  • SDRAM
  • Flash, Filesystem
  • The Kitchen Sink

Background

X-Rite develops all manner of products for the color measurement market and is one of our oldest customers. All our experience with X-Rite to date was in their desktop software development. In the years since we first started working with X-Rite we developed experience and expertise in applying Agile methods and Test-Driven Development to embedded software. X-Rite became interested in trying Agile techniques in its firmware department and came to us.

Agile Embedded & Extra Hands

X-Rite’s top-end multi-angle spectrophotometer device was 10 years old. New iridescent (showing differing colors from different angles) and metallic flake paints used in automotive finishes required more capable measurement devices. The new MA9x series of products. Developing a new multi-angle platform provided an opportunity to try Agile techniques in their firmware group to improve quality and predictability. In addition, X-Rite needed extra resources to staff the project while balancing other development work.

Team Osmosis, Tools, Design, and Development

Atomic Object provided three Atoms to help staff the project and introduce Agile and testing techniques. Through team osmosis we helped establish practices such as iterations, continuous integration, burn down charts, and one big room. We also introduced our set of Agile embedded practices including the Model Conductor Hardware design pattern, Conductor First style development, and interaction-based testing. And, we provided our tools Systir, Unity, and CMock for embedded Test-Driven Development (together with our X-Rite colleagues we refined the embedded tools and eventually made them publicly available). We were even intimately involved in the interaction design and implementation of the custom user interface.

Results

  • X-Rite veterans stated MA9x effort was smoothest of all large-scale X-Rite firmware projects
  • X-Rite developers adopted our practices and tools for future projects
  • 40% Code complexity reduction as compared to most recent large-scale project
  • Project delivered within 6% of firmware team’s project plan target (as measured in total developer months)
  • 5700 Automated unit tests
  • 80 Automated system tests
  • 95% Functional test coverage

Gallery


 Press:

 Device Interface Screenshots:


X-Rite MA9x Main Screen
X-Rite MA9x Results Screen
X-Rite MA9x Language Selection Screen
X-Rite MA9x Calibration Screen
Edit