Software Development

How to divide without using division operator

I attended a talk at the Toronto Agile Tour on Deliberate Practice that focused on TDD Games and other programming challenges like Kata.  Among the challenges were things like solving a problem without using the ‘if’ keyword, or without using primitives. Solving simple problems using these challenges makes us better programmers because they force us to come [...]

Keep calm and carry on

“I’ve had a talk with the Product Owner, and he’s decided to let you guys have an extra week to finish the work for this Sprint”, my Project Manager said on Friday afternoon. The horror! The horror! My team and I did not manage to complete all the work that we’d committed to in the Sprint. [...]

How to be Agile when using 3rd party software framework

It can be difficult to be Agile when working with 3rd party software framework.  The vendor product may dictate many aspects of the software architecture thwarting your attempts at automated testing and continuous build. However there are steps you can take to make Agile easier.  I’ll discuss a few of the options that have worked for [...]

Things I Learnt in 2011

Automation is good. People make or break a project. Thanks Joel. Coding the right tests is hard, but infinitely valuable. “Cutting edge development” describes the processes and principles, not the technologies. Software must be tested in a representative environment. Knowing the gaps between marketing and reality in your vendor’s software is valuable. The timing of a [...]

Dysfunctions of a corporation

Deploying a sufficiently complicated application into a corporate environment involves navigating a sea of paperwork, getting all the appropriate “approvals” in place, co-ordinating with department managers to get time slots from their staff, and so on.