Technical Aspects of Agile - Course in Development
We're thinking of running a one-day, actually possibly a two-day course that covers some of the crucial technical aspects of Agile. We would probably run this through 01 Zero One in central London, where we've already successfully run our introduction to Agile methods course. We would probably offer the course initially to people who are comfortable programming in Java, but we might also offer it for more web-based languages such as Flash, AJAX/Javascript or Ruby on Rails. Of course if any company wanted us to run the course in a particular language, we could talk to them about offering the course them in-house.
Pair Programming. To many people, especially in senior management, pair programming seems completely counter-intuitive. Surely, by getting two people to do the job of one person you're just halving your productivity? A substantial body of research shows quite the opposiste - that pair programming doesn't reduce productivity, but maintains productivity whilst substantially reducing the number of serious defects that are later found in the code. This course would cover the very good reasons for introducing pair programming and how to deal with some of the potential objections. It would also deal with how to start pair programming - what are the do's and don'ts and provide course participants with some hands-on experience of programming with other people.
Test Driven Development. The practice of writing a failing automatic test for each piece of software functionality that is added to a system, together with a script that can run all of these tests has many beneficial effects on the process of software development. This course would give participants experience of writing tests and then coding against them using a well-known testing framework such as JUnit.
Re-factoring. As software development progresses on a project, code gets messy and changes in one place cause unexpected breakages in overs. Re-factoring accepts the reality that code gets messy over time and builds on the advantages of TDD (test-driven development) to allow principled clean up of code. Course participants will be given a chance to clean up the kind of horridly entangled bits of code they might experience and be shown the possible benefits of re-factoring for the ongoing support of the codebase.
Labels: Extreme Programming, Pair Programming, Refactoring, TDD, Test Driven Development, XP
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home