Course code:
WEB-35
Years with company:
16
Years programming:
20
Primary programming language:
C++
Other programming languages:
Python
Infrequent: java, c#, ruby, javascript, ...
Unit test harnesses:
Many including CppUTest googletest, boost, assert, unittest.py junit, nUnit, custom, ...
Something else:
I like the challenge of getting unit tests working in legacy code. I'm humbled that more programmers don't currently do TDD.
Test practice now:
Combination of class-level unit tests, automated integration tests and system tests, plus manual exploratory manual testing.
Target system:
Arduino, embedded linux, embedded Windows, desktop exercises.
Dev tools:
Mix: Macbook, Eclipse, AtmelStudio, Aduino IDE, TextMate, Visual Studio
Build time:
31-60 seconds
Coding standard:
varies by project. Usually minimally specified and syntax vs semantics/design. Rarely "C++ Coding Standards: 101 Rules, Guidelines, and Best Practices" by Herb Sutter et al
Function too long:
When it's hard to quickly understand or could be clearer if refactored. Could be as little as a one-line wrapper with a good intent-revealing name. Probably no bigger than one screen full.
Code reviews:
varies by project, from zero to by weekly to pairing
Code time:
10
Test time:
40
Debug time:
50
Favorite thing about dev:
Quick tangible progress. Quick feedback. What software enables in the world.
Least favorite thing about dev:
Feeling on not fully understanding things. Risk of small mistakes having big consequences. The common perception that programmers are already doing the best they can using limited approaches.
Tdd knowledge:
I've studied and practice TDD. I use it on my projects. I use it on client projects when possible. It's common that I'll demo some examples in a code base but that the teams will not take it and run. Reasons cited include: no time, too hard, fragile.
Why are you attending:
To grow more fluency with TDD for embedded. To grow techniques. To learn ways to explain and motivate the use of TDD.