‘Development’ Category Archives
by Meri in Development, Presentations, Project Management
Tonight I spoke at the London Content Strategy Meetup, an excellent group sharing best practice in the content strategy & development arena. I really enjoyed hearing about Age UK’s research & understanding of older people (or “people in later life”) from Rob and then Chris‘ fascinating approach to figuring out a content strategy for building advocacy for mental health de-stigmatisation amongst young people.
I was quite nervous about talking about agile to this audience, particularly since I’ve only really gotten good exposure to content strategy, design and management in my year at GDS. But they were a lovely friendly bunch and I’m really grateful to Sarah Richards & Graham Francis for suggesting me to the organisers.
Essentially I subtitled my talk “a magical mystery tour of Meri being an idiot” and talked through the various lessons I’d learnt about how agile is actually a pretty brilliant approach for content development.
The book I recommend at the end is an absolutely BRILLIANT summary/primer/refresher on Scrum — I heartily recommend you buy at least a copy for yourself and possibly one for everyone you know who needs more agile in their life. You can get it at Amazon or on Kindle (I promise you the Kindle version will be the best 77p you ever spend. Seriously.).
by Meri in Development, Project Management, Software
I imagine that most of you have aleady heard of Test Driven Development (TDD) where the tests that software should pass are written BEFORE the software itself is written. The list of tests is essentially just a formalised way of listing success criteria (and indeed requirements) very precisely. More than precision, this approach gives you a very fast indication of your REAL progress, since the newly written code either passes or fails the tests*.
Test Driven Development is a software development approach usually associated with agile development methods such as those championed by the Agile Alliance. It is usually assumed that agile development requires a team to be collocated, working intensively and exclusively together, and so little attention has been paid to the role of these methods in outsourced development.
For better or for worse** however, many of us are on one side or the other of an outsourcing arrangement. I discovered in my work that using test driven development as a mechanism for both validation (are we building the right thing?) and verification (is it working?) can be hugely powerful.
There are a number of reasons for this:
- Well-written tests can explain requirements much more efficiently than traditional requirements documents. Even when there are misunderstandings, the SUM of the different tests specifies the right functionality.
- Tests are technical and so can overcome communication barriers with added precision. Even just not sitting next to your developers (or designers) can cause communication issues. When you add the moder-day reality of offshoring as well as outsourcing, this can be exacerbated.
- “The customer” (whoever they might be) can be involved in the creation of the test suite. This helps to ensure that the right functionality is being created in the first place since we can check that what the software does is what the customer desired/expected very easily.
- Showing the number of tests passed can be a much better indication of progress than the traditional “percentage of task complete” measure. You know exactly how much of the programme actually works at any given time.
- Tests can be automated. Then you essentially end up with an automatic checklist of desired behaviour, so that every time a change is made you can pinpoint other areas of the code that might have been affected and refactor quickly, rather than waiting for bug reports to come in from live use.
Hopefully as agile development methods become better and more widely adopted, an increased number of the firms providing outsourced development services will start to use them as standard. In the meantime, it can make a huge difference to your projects if you manage to introduce them ahead of the curve.
What have your experiences been with test driven development and outsourcing? Share in the comments.
* Provided your tests are well written, that is. Of course, writing good test cases is a skill all of its own!
** The pros and cons of outsourcing your development definitely deserves another post! Or arguably an entire book!