Skip to main content

Learning from Kent Beck

Here's a great post that I'm sure others have seen and posted. Three guys had the opportunity to do some prototyping with Kent Beck, the creator of TDD and thankfully, one of them, documented it. I haven't ready Kent's implementation patterns book

The entire post is very long and detailed but I wanted to post some key takeaways as they apply to pretty much any project.

Make your code readable.  "Code is primarily means of communication."



KISS. "Apply simplicity at all levels."


Flexibility "Programs should be flexible in the ways they change, they should make common changes easy or at least easier. "

Approaches to coding. When thinking about Agile, people start creating sprints of 2 weeks or less. When prototyping, an even quicker sprint came up - "what would be the demo we would like to show at the end of the day. And his next question was what test to write."

Write tests that test needed functionality, at a high or unit level. "Speculating about failure points can be just as wasteful as speculating about design."

Write Code in the Test, then Refactor. (I know, think about it. I actually started doing this when I was first learning TDD and thought - "is this really what I'm supposed to do?") " Instead of thinking about how it should be organized (what classes to create, where to put them, whether to use a factory class or a factory method), why not initially write the code directly in the test method? You can always factor out the code later."

Focus on one thing at the given time. " If you notice along the way something else that needs to be done – giving a method a better name, removing a dead code, fixing an unrelated bug – don’t do it, put it on a task list and do it later. "

Symmetry in Code. "Symmetry in code is where the same idea is expressed the same way everywhere it appears in the code."


The entire post is a great read.

Comments

Popular posts from this blog

Blogs and RSS come to Microsoft.com

MS has just introduced their portal and it's pretty comprehensive. Nothing quite like learning that some people use AIM instead of MSN messenger, or that there really may be a need for supporting 4 monitors ( Cyrus Complains ) However, it's really a great sign that MS is serious about supporting the blogging community which seems to have um, exploded in size in the past year. Blogs and RSS come to Microsoft.com

FoxInCloud Stats

FoxInCloud sent this link a while back about their statistics regarding visits to their site: http://foxincloud.com/blog/2017/12/27/VFP-community-lessons-from-foxincloud-site.html What's interesting here is the breakdown of people. Yes, I think it's understandable that the Fox community is getting older. Another factor is the growth of the mobile and web environments taking over development. These environments really do push people towards the newer non-SQL or free SQL/hosted environments but more towards hosted storage options like Amazon and Google. A tool like FoxInCloud that helps MOVE existing applications to the cloud inherently competes with those environments. But FoxInCloud also allows developers to extend their application further by giving them a starting point using Javascript and the basic CSS (such as Bootstrap). If you're not rebuilding your application from scratch, it's certainly a great step forward. FoxPro VFP

Facebook Revolt - imeem alternatives?

When Scoble noted how Facebook under major revolt , I immediately thought of a site I found yesterday. The value offered by Facebook's feeds however do seem very cool - if only they had been smart and made them opt-in, instead of opt-out. I have been impressed though with Facebook's opening of their API's - they certainly get it that they need to open it up to developers. I haven't really explored this other site, beyond my first look. In some ways, I think the whole social networking site thing is just silly , but this site (imeem) definitely showed some value. I could find music (as posted by the artist), it worked in Firefox and it allowed people to rank, add to delicious and more. And when I'm looking at someone, I can see what they're up to (or rather what they allow us to see). Anyways, you may want to check it out.