Course code: COB-3
  • Years with company: 30
  • Years programming: 30
  • Primary programming language: C++
  • Other programming languages: C. Historically, I have also used OCCAM and PASCAL.
  • Unit test harnesses: CANTATA for C circa 1990. gtest - but only briefly - no real in dept experience.
  • Something else: Degree in Electronics and Electrical Engineering. First 6 months of my career were spend designing a mixed 68000/Transputer processor board for an embedded system. Mostly involved in embedded software development - on disparate platforms - Transputers, 68000 with no operating system, VxWorks on x86. More recently, I have been involved in X86 development on Windows.
  • Test practice now: Mostly system based testing on target hardware. Correct operation is verified using a logging system built into the system. Due to the distributed nature of the system and the real time constraints of the system, debuggers are not available. Some parts of the system have a 'emulated environment build' available which runs on the local PC and allows the use of a debugger. However, I am involved in a part of the system for which this is not available. Additionally the above testing is performed on remote systems that are shared between developers so systems may not be available when you really want them to be. Some parts of the system have built in unit tests that can be run as part of a build. However, coverage of such tests is very far from complete. Where this is not adequate, or it takes too long or a debugger is required to determine the nature of a fault, add-hoc test harnesses are used to perform functional testing.
  • Target system: Distributed system consisting of a mix of X86 processor cards (PowerPC on older targets) and Texas C64/C66 dsp cards. Processors are interconnected using SRIO.
  • Dev tools: Compilers, SCONS
  • Build time: 5-30 minutes
  • Coding standard: On current project, addresses C - does not (yet) address C++ or any other languages
  • Function too long: Instinct and experience. Number and nesting of control constructs is a strong hint.
  • Code reviews: Code Collaborator. All code must be reviewed before committing/merging to top of tree.
  • Code time: 20
  • Test time: 50
  • Debug time: 30
  • Favorite thing about dev: Wide variety of technical challenges that can be presented. Wide variety of possible approaches and solutions make design interesting. Satisfaction from elegant design. Satisfaction from tracking down obscure faults.
  • Least favorite thing about dev: Coding can be mundane at times.
  • Tdd knowledge: Not much in practise. I know the aims of TDD but I have not used it to any great extent. On a previous project I helped construct a build system that supported TDD but I left that project before I gained any great experience of TDD itself.
  • Why are you attending: Company perceives a need to improve quality on the product I am currently working on so they are putting key people on this course.