Global day of code retreat 2013 pt. 2, or “simply TMI”

Was there a retrospective?

Yes. There was a retrospective at the end of the day, and there was conversation in between sessions. The three questions below were asked of each attendee at the end of the day. I personally think that having more retrospecting as part of the event could be beneficial to the goal of maximizing the learning that occurs. I find that I always want to have a longer conversation in between the sessions, but the facilitators often interrupt it – perhaps that’s why they’re the facilitators, because they know better. I’d like to try that each attendee answers all three questions after each session, and then allow for others to tell us what they can think of based on our answers.

What programming languages did you use this year?


To my surprise, I used PHP in all but one session. Previous two years I did not use PHP in any of the sessions I did. This almost certainly contributed to the very low level of frustration I experienced this year compared to previous years. PHP is generally laughed at by programmers who do not program with it, undeservedly in my opinion, so that was also why I was surprised. As for a reason why more people were interested in using PHP, I would be interested in the premise that WordPress deserves the credit. Perhaps I will ask the people I paired with to hear why they chose PHP for our session.

Can I see the code you wrote?


The direction given at code retreat is to delete the code after each session. I prefer to keep it around, so yes, you can see the code here. Though it probably will not be very useful to you.

What activities would do you think would be cool for code retreats?

Each session is often characterized by the “activity” that is being tried out for the session. The facilitators pick an activity that is intended to teach the participants something about creating better software. This is the activity catalog from the official code retreat website.
Through my explorations of software development as it is done by various people, I think the following would be interesting activities:

  • No implementation — all the code written is not taken to the point of actually being executable. This is designed to get people to think about expressive code, how algorithms should be written down in software, while freeing them from having to think about how must I write this in order to get it to “compile.”
  • Procedural code only / No objects — People often think of their use of object-oriented code as something inherently good. Procedural code is often thought of as inferior. I have not learned this yet, even though I’ve been trying to. Another way to say this is the way a famous software developer, Martin Fowler put it: “The OO community may have ‘won’ in the sense that modern languages are dominated by objects, but they are still yet to win in that OO programming is still not widely used.”
  • Outside-in — You have to start at the outermost part of the program instead of starting at some internal part. To understand this, you have to think of what does a finished program, that implements the Game of Life, do. I’ve come to think it accepts an initial ( seed ) pattern, and then returns all the states the game goes through. I think this would be useful to allow people to think of the exhibitable behavior of the program instead of spending all their sessions talking about some internal implementation details.

What did you listen to while writing this post?


I listened to:

You can find both albums on iTunes – Kendrick Lamar, Substantial.

Why did you bring a silver suitcase with a sticker that says “Important” on it?


Because I’ve experienced the benefits of “getting yourself out of your comfort zone” many times.

Sounds like you had a good time. Do you wanna take this opportunity to thank anyone?


Yes! I definitely had fun, I learned a lot, and I am grateful to everyone involved. Specifically,

I would like to thank the sponsors:

I would like to thank the facilitators:

I would like to thank the people I paired up with. I know I am not the most easy going person often, and tend to manipulate conversations without letting others contribute as much as they could:

Is the Yellow Dog Tavern a good place to reflect on a code retreat?

Absolutely.

Does anyone in Winnipeg wanna get their feet wet with TDD in PHP?

There is a really cool intro to TDD “kata” on Roy Osherove’s website: TDD Kata 1. I’d be available to go through an implementation with PHP. It is a very nice way to get familiar with some ideas in test-driven development, because it is very beginner-level.

I just suggested this meetup on the Winnipeg PHP UG meetup page: http://www.meetup.com/Winnipeg-PHP/events/155430762/ . Please RSVP “Yes” if you’re interested – 2 RSVPs and it gets announced to everyone through the meetup group.

Scrum Learning Series pt. 1 – Tonight!

The first presentation about Scrum, as part of The Winnipeg Scrum Experience project is tonight!

Only one person RSVP-ed ‘Yes’. Perhaps I should apologize to those who would really like to come out but can not because they are going to the Secret Handshake + NMM Christmas Party, if there is anyone like that 🙂 I chose the date before the Christmas Party date was announced, and I just stuck with it, so sorry about that!

I look forward to hanging out with Jeff again, and practising the Intro to Scrum presentation!

Developing software for a problem you already have, or IXDA Winnipeg UX Night FTW!

Last night I had a choice between going to Amir’s Single page web app workshop (Part 1) presentation at the .NET UG, or the IXDA Winnipeg UX Night.

I really wanted to go to both of those, but because Knockout.js ( the framework with which Amir was going to show us how to build a single-page web app ) has an online tutorial, and because I really enjoyed the first IXDA Winnipeg night, I decided to attend the IXDA event, and I’m glad I chose it.

Both presenters seemed like great thoughtful guys, and I will share my favorite idea with you ( loosely quoting ):

If you develop software to solve a problem you have, you can yourself make all the decisions for how the software should work, therefore largely reducing the amount of requirement eliciting you have to do.

Probably a lot of software development contexts do not have this luxury, but I still think it is an interesting ideal to strive for, and if software development becomes as ubiquitous skill as some predict, the context of developing software for a problem you already have will be more common.

Winnipeg Code Retreat 2013

Yay!

Code Retreat is coming up again, this time at SkullSpace. Learn more and register to attend!

Here are a couple of links to posts and code I created around last year’s Code Retreat:

Lately, I’ve been programming with Python when I have a choice, so Python and DocTest will be my #1 environment of choice.

I hope to see You, and learn from You there!

The Winnipeg Scrum Experience Presentation Schedule

I just finished creating a presentation schedule for The Winnipeg Scrum Experience. The idea with a “presentation schedule” is that there are planned topics for the next several presentations, and hopefully there will be volunteers to speak on those topics. If not, I will present the topic.

Upcoming presentations

After a great line-up last time around, I’m again scheduled to attend a number of very promising presentations. I hope you can attend some too!