The last 6 months or so has been rather hectic, and very unstructured, but the end is in sight!
This month I've committed to delivering 'complete' software by the end of the month, so the last week or so has been bug fixes and working with a colleague to do a variety of tests on the software I've written or integrated with.
Testing has been going pretty well overall, I've got a suite of unit / integration tests that I run myself, but just having someone else go over my project, confirming what I've tested and what's in my head has been great. It's enabled me to sit back a bit, release some of the unnecessary information from my head and prepare for handover.
There is still a lot of work to do (see my previous post about builds), integration that is yet to be fully tested, but it has been a great relief, and one of the reasons I'm keen on moving towards an agile work practice - handing over a tested and complete piece of software every cycle will hopefully allow me to leave work at work more effectively.
I'm Sam. I work writing software and hope to keep you up to date with what's in my head (mostly for my benefit). I'll also be writing about technology, programming, family and Christianity.
Showing posts with label agile. Show all posts
Showing posts with label agile. Show all posts
Friday, June 11, 2010
Wednesday, May 26, 2010
Pair programming
A while ago my colleague and I started work on a new project so we decided to do some pair programming, which was the first time I had worked like this. My colleague, having worked with pairing before at a previous job, took the lead. We'd been talking about using agile methodologies for a while, and thought it was a good opportunity to have a go.
At first, it was pretty awkward, as neither of us were overly good at communicating our coding plans, so we'd often wait till the other nutted out a bit of an idea, and then talked it over. We tried writing tests first, which was pretty successful, but once again, trying to figure where the other was going was pretty hard work.
We only worked together for a few days, and then got split to work on separate projects, but I would love to try it again.
A couple of things that I found:
At first, it was pretty awkward, as neither of us were overly good at communicating our coding plans, so we'd often wait till the other nutted out a bit of an idea, and then talked it over. We tried writing tests first, which was pretty successful, but once again, trying to figure where the other was going was pretty hard work.
We only worked together for a few days, and then got split to work on separate projects, but I would love to try it again.
A couple of things that I found:
- Pairing is humbling - if you don't know something, it becomes pretty obvious fast.
- Ideas are up for grabs - no one is going to be right all the time - you've gotta be prepared to put your ideas out there, and be prepared to talk them over and admit that you aren't always right
- Great collaboration - although it's hard, it's a great way to learn and discuss ideas. It makes you work hard to communicate effectively - which is a great skill to generally have.
- Promotes openness - I find the way I like to work is on my own, but being pushed to work with others and be transparent is quite liberating, and it means you aren't the one source of all information.
How do you go working with others? If it's software, have you tried paring? If you're not a developer, what are some ways that you've been forced to work with others that have been surprisingly beneficial?
Subscribe to:
Posts (Atom)