August 3rd, 2010
Here is a legacy code change policy for a team adopting TDD that has a legacy code base:
- Test-drive new code
- Add tests to legacy code before modification
- Test-drive changes to legacy code
Refactoring without tests is dangerous; with all the details we must keep straight, a mistake is easy to make. How many code reviews have you been in where the recommended design changes are not made because “we already tested it”? You avoid the change because it’s dangerous to change code without tests. So, the Boy Scout adds tests too. For more on Boy Scouts, see previous post.
Read the rest of this entry »
Posted in Uncategorized | No Comments »
August 2nd, 2010
The Boy Scouts have a rule: leave the camp cleaner than you found it. This does not mean that all the trash has to be cleaned up now, but you can’t let it get worse, and it must get at least a little better. In Bob Martin’s book, Clean Code, he asks, “What if code got a little better every time you change it?” I’ll answer it: the industry would not find itself in the mess it’s in. The industry norm is for code to incrementally worsen with each change.
Much of the time, following the Boy Scout Rule won’t be hard. It’s an incremental strategy. It’s easy to start and easy to sustain. Here are some typical challenges and ideas on how to be a Boy Scout.
Read the rest of this entry »
Posted in Agile Development, Refactoring C, Test Driven Development | 6 Comments »
May 28th, 2010
At the start of a new development effort, there is considerable uncertainty. There are unknowns in hardware, software, product goals and requirements. How can we get started with all this uncertainty? Isn’t better to wait? If you wait, there really is no end to the waiting, so its better to get started sooner even though there will be some things you decide early that get changed later.
Read the rest of this entry »
Posted in Agile Embedded, Embedded, Evolutionary Design | No Comments »
November 12th, 2009
One important realization on the journey from a BDUF approach to an iterative and agile approach is that design is never done. Designs evolve. The waterfall emphasis has been to unnaturally try to control software physics by imposing requirements freezes and burdensome change control. The process of developing software is part science and part creative. You are applying science toward the invention of something. Design is capturing knowledge both about what the end user need is, and one solution to that need.
Read the rest of this entry »
Tags: Embedded, Embedded Agile, Embedded TDD, TDD, Test Driven Development
Posted in Agile Development, Agile Embedded, Embedded TDD, Evolutionary Design | No Comments »
November 10th, 2009
Constrained Memory is the reality for many embedded developers. Running tests in the development system won’t suffer the same memory constraints found in the target. Here are a few things to help TDD in constrained memory situations.
Read the rest of this entry »
Posted in Agile Development, Agile Embedded, Embedded TDD, Unit Testing | 1 Comment »
October 7th, 2009
Embedded software has all the challenges of “regular” software, like poor quality and unreliable schedules. It is just software with some additional challenges. The additional challenges do not disqualify TDD for embedded. TDD even helps with some of those uniquely embedded challenges.
Read the rest of this entry »
Posted in Agile Development, Agile Embedded, Embedded TDD, Test Driven Development, Unit Testing | 4 Comments »
October 6th, 2009
A unit test harness’ job is to provide:
- A concise common language to express test cases
- A concise common language to express expected results
- A place to collect all the unit test cases for the project, system, or subsystem
- The facilities to run the test cases, either in full or partial batches
- A concise report of the test suite success or failure
- A detailed report of any test failures
Tags: TDD, Test Driven Development, test-driven-development-tdd
Posted in Agile Development, Agile Embedded, Embedded TDD, Test Driven Development, Unit Testing | No Comments »
August 15th, 2009
Inspired by the Accurate Pie Chart I thought it was time to see if an accurate bar chart is also possible.
Read the rest of this entry »
Posted in Just for fun | 1 Comment »
August 1st, 2009
Stories often start out too big. Big stories are a challenge, and it is not always obvious how to deal with them. Its important that stories be small enough to estimate, to fit easily into an iteration and to have a decent definition of done. This article explores why some stories don’t fit this mold and what you can do about it.
Read the rest of this entry »
Posted in Agile Development, Agile Embedded, User Stories, User Story, estimation | 4 Comments »
July 31st, 2009
Any of you people coming to Chicago for the Agile conference, here are a few of my wife’s and my recommendations for things to do in the the city. Most of these activities are within walking distance of the conference hotel.
Read the rest of this entry »
Posted in Just for fun | 5 Comments »