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:
- Kendrick Lamar – Money Trees
- Kendrick Lamar – Good Kid, M.A.A.D City
- Kendrick Lamar – Swimming Pool ( Drank )
- Kendrick Lamar – Now or Never
- Substantial – Check my Resume
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?