Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Manifesto for Agile Software Development
I’ve been studying and implementing Agile software development methodologies. I find Agile principles appealing as it emphasizes people and cooperation. To deal with the impermanence of changing technologies, changing markets and changing requirements, we must become more resilient via flexibility and decentralization.
What I’ve been looking at are Test Driven Development, Continuous Integration and Scrum, mostly in the context of embedded systems.
- Tools:
- CppUTest is the unit test framework, suitable for C/C++ and embedded systems development. I use it at work and for my master’s project.
- Jenkins (was Hudson) is a Continuous Integration tool used to run, schedule and log tests.
- TestNG is a Java unit test framework used with Hudson and Maven (with the C plugin) for Continuous Integration. Very clunky.
-
Reading List
- Manifesto for Agile Software Development
- – PDF version
- The Scrum Guide
- Test Driven Development for Embedded C by James W. Grenning
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
[...] sharing binary data between heterogeneous processors, in protocols (most famous: TCP/IP) and in TDD unit testing C code. The last one is what prompted this blog [...]
Pingback by Endianness Issues « Larry’s Notebook — August 8, 2011 @ 2:15 pm