Course code:
BARR-10
Years with company:
11
Years programming:
13
Primary programming language:
C
Other programming languages:
structured text (PLC), C#
Unit test harnesses:
NA
Something else:
Myself and the firmware discipline within our company have slowly migrated from electrical hardware to the Software group.
If I'm not with family or in at a church function, I'm probably working on my house (which I suppose makes it my unintended hobby).
Test practice now:
Machine system/regression tests.
Target system:
Mail processing equipment controls. Specifically Atmel ARM (AT91 and ATSAM) using GPIO, CAN, Serial etc. Lots of control state machines.
Dev tools:
Rowley Crossworks, AtmelStudio, B&R Automation Studio (PLC)
Build time:
Under 10 seconds
Coding standard:
Roughly based on Barr Group's standard
Function too long:
More than one screen.
Code reviews:
I'm the only experienced embedded developer, so code reviews are essentially, me explaining my code to the very junior C developer or to experienced C# developers.
Code time:
50%
Test time:
15%
Debug time:
35% (debugging before release, very few errors make it to the field)
Favorite thing about dev:
I enjoy the design stages and figuring out how to solve the problem. I enjoy the actual coding of course and creating clean interfaces.
Least favorite thing about dev:
Coming up with and documenting test plans isn't much fun. I also become extremely grumpy when all the other groups make unscheduled, undocumented and unannounced changes to my test machine when I'm trying to qualify brand new code functionality.
Tdd knowledge:
I know what it is supposed to be. I've been to several short talks about TDD/unit testing for higher level languages. I purchased TDD for Embedded C a year ago and started through it. But progress slowed to a halt as project priorities picked up...
Why are you attending:
I am convinced that TDD is the way to go. My new boss, Vanessa (attending the class with me) seems dedicated to the cause. I think I just need a jump start in how to practically implement TDD and how to setup the tools for our environment(s).