This sounds like a really interesting practice to get into. I think it will really stretch me out in terms of my approach to software design. Always good to get the grey cells crankin!
How do you get to be a great musician? It helps to know the theory, and to understand the mechanics of your instrument. It helps to have talent. But ultimately, greatness comes practicing; applying the theory over and over again, using feedback to get better every time.
How do you get to be an All-Star sports person? Obviously fitness and talent help. But the great athletes spend hours and hours every day, practicing.
But in the software industry we take developers trained in the theory and throw them straight in to the deep-end, working on a project. Itâ€™s like taking a group of fit kids and telling them that they have four quarters to beat the Redskins (hey, we manage by objectives, right?). In software we do our practicing on the job, and thatâ€™s why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions.