CodeMash is a unique event that educates software developers on current practices, methodologies, and technology trends in a variety of platforms and development languages such as Java, .Net, Ruby, Python and PHP. Different than most conferences, this three-day event ‘mashes’ together ideologies and individual developer experiences to discuss, learn and even attack certain problems. Grand Rapids based, CQL, sent seven of its developers to this large software development conference. Following is our Codemash Installment #6 of 10.
Code Kata and Analysis
Enjoyed sitting through this presentation. “kata” is a martial arts practice that deals with doing the same moves over and over to build muscle memory. ‘Code Kata’ is the same idea focusing on small coding exercises repeated over and over to train your brain to "just know" how to do common tasks (reduce errors). In essence, this process is intended to better streamline issues identified during testing activities. During the presentation, we ran through some test cases intended to help the developer ‘notice’ potential problem areas prior to testing. As a summary, find the interesting tests and only do those...finding them comes with experience…Know: When to recognize duplication…need enough of it to be sure of the pattern…recognize points of interest…duplication in tests themselves, refactor.
This session was geared more toward how to balance all the crazy drags on a developer’s time (sales people, employer, etc. twitter, facebook, email, sms, etc, personal-family, etc) – in other words, creating ‘best practices’ to make your time more efficient. In order to be more effective in writing code, you have to be more effective in managing the outside influences on your day. The presenter discussed various suggestions, including:
- Be specific in how you handle email responses (filtering email inboxes or setting specific times to review emails – teach people how to treat you by being specific in your timing of responses)
- Conserve your keystrokes (train yourself to ‘just give the facts’ in your responses)
- Know your trusted resources (understand what responses should take priority based on your knowledge of the individual making the request)
- Personal scrums (work sprints for yourself)
- Document interruptions (become aware of how they are happening, when they are happening, etc., and seek to eliminate those situations)
- Package opportunities (e.g., listen to podcasts and learning activities on the treadmill)
- Eliminate the noise (find the right tools for the job – pick the one or two that works for you, and get rid of the rest – they cause noise).
The session continued with other ideas. Much of the items were common sense. Some seemed like, ‘yea right, be nice if I could do that, but not likely’ (think of every sales person you know).
This was a fairly fun activity. Three participants had to build a mobile app Iron Chef style. These participants knew the ‘ingredients’ ahead of time, so they could practice building the mobile application. During the smackdown, three additional ‘secret ingredients/requirements’ were added that they did not know about until the event. The mobile platforms represented in the competition included, Windows Mobile 7, iPhone and Android. The MC kept saying that it wasn’t a contest, just a showcase of how to do the same thing on all three platforms, however he was a Microsoft guy, and the Windows Phone did smoke the other two developers. Not sure if this can be viewed as a scientific test – I’m guessing not, but it was still fun.
Check back for Codemash Installment #7 of 10.