6 Reasons to Build a Firmware Test Suite

At Atomic, we build a lot of systems that incorporate device firmware talking to software. We also commonly interface with other firmware or software teams. I believe every project that involves firmware talking to software should include a high-level suite of tests that are written against the firmware’s interface to the software (e.g. Bluetooth, Ethernet, […]

Technical Spikes – Rehearsing Your Software

At AgileConf 2014, John Krewson presented “The Show Must Go On: Leadership Lessons Learned from a Life in Theater” in which he outlined parallels between the stage acting and software development. Among his points on how project management is like directing and hiring is like casting, John remarked that when a director is preparing a […]

Why Vagrant? – Preventing Deployment Issues from Day One with a Virtual Machine

One of the traditional problems in software development is the delivery of a finished project. Atomic Object writes custom software, but we ultimately need to deliver it to our customers, which usually implies deploying it to an existing infrastructure environment, or handing it off to an operations team. Unfortunately, this hand-off process often introduces a […]

Thinking Abstractly: Why Programmers Don’t Write Binary Code

Marcel Duchamp – Nude Descending a Staircase, No. 2 When you imagine a computer programmer at work, what comes to mind? Science fiction movies like The Matrix might give you the impression that programmers read and write endless streams of 1s and 0s, communicating with the computer in a digital dialect unintelligible to most humans. […]

Testing Terminology

Working with some new customers this year has given me fresh perspective on how confusing the terminology of the testing world can be. I think terms and definitions matters a lot, and not just because I’m a recovering academic. Several times recently I’ve found myself in a conversation taking a position in apparent opposition to […]