Saturday, November 20, 2010

Fifth Meeting of the "Software Craftsmanship in Israel" Group

Our 5th meet-up is rolling out (on 15.12.2010) and I am very excited as this time there are plenty of surprises :)
First, we have a lot of cool giveaways to give during the meet-up (A hint is here).
Second, the meet-up's title is: All you need is… Codeand its format is slightly different: 

We are going to discuss different SW principles: DRY, TDD, Code Reviews and etc...
The demonstrations will be done in 3-4 different groups. Each group will discuss a different SW principle.
Each 30 min
, after sounding some music the participants will exchange their groups.

Each principle will be demonstrated either by doing pair programming/kata or by a code demonstration.

We are going to cover the following topics*:

1. DRY 
2. TDD
3. Code Reviews in Practice
4. TBD (still under discussion)


* Please bring your laptops (with the environments set-up) to the meeting.
** Code Reviews group  will provide an option to review YOUR code...

Together we will review participants' code, identify code smells and provide solutions for cleaner and better implementation...

Please don't hesitate to bring your code base with you

 Time frames:

18:00 - 18:25 - Gathering / Mingling
18:25 - 18:30 - Short Intro / Explaining the meeting's set-up 
18:30 - 19:35 - Round I (30min + 5min break + 30min)
19:35 – 19:45 - Break + Giveaways
19:45 – 20:50 - Round II (30 min + 5 min break + 30min)
20:50 – 21:00 - Wrap-up + Giveaway 


We have great giveaways to give during the meeting. DON'T miss them :)


Though, we are plaining to provide food - you are more than welcome to bring more food for the benefit of all (user generated food).
The meeting will take place here.
Please register here.

Tuesday, November 9, 2010

Mentorship - The First Impression

On our 4th Software Craftsmanship meet-up I have introduced the Mentorship / Apprenticeship program.

Since then, I have received 2 great apprentices to mentor.

MentorshipApprenticeship - Pairing

In the following series of posts I would like to summarize our mutual experiences (questions, debates and learning processes) for the benefit of the community.

During the first meeting we discussed the following topics:


We talked about each others experience: what we learned from that experience and what we didn't :) [A hint: We all learned that we want to become software craftsmen :)]

What does Software Craftsmanship stand for?

I reviewed the basic Software Craftsmanship ideals and values and we discussed their impacts on our professional lives. [An example for such a value is: Deliberate Practice]

What are the objectives of the Mentorship program?

Each apprentice prepared a list of his objectives and after a short review, we discussed how to meet them. [An example for an objective is: Enhance Unit Test Knowledge]

Paradigms and Principles:

I prepared a list of paradigms and principles that each apprentice should learn. We reviewed the list and the reasons why those paradigms/principles are important. [Some examples of the principles: Refactoring or OO Design Principles]

Information Exchange:

We exchanged our RSS feeds in order to enrich our learning sources.


We discussed miscellaneous issues that varied from development, career paths and social media. [For example, we discussed whether a software engineer should have a blog and if yes, then what to post about]

All in all those were very nice first meetings... Now we are looking forward to sink our teeth into some Object Oriented Principles/Code Smells and Unit Tests. Each apprentice will review (on his own time) an open source project which we will analise together later on, in order to demonstrate and learn the principles.

Friday, November 5, 2010

I am guest of Microsoft at Tech-Ed 2010 Eilat

I was announced that I was selected to be a guest of Micorosft at Tech-Ed 2010 (Eilat) as 1 of the 10 bloggers of the community.
Thanks a lot guys :)!!!

Software Craftsmanship - Meeting 4

Boy, I had so much fun during our 4th meeting...

There were more than 80 people, deeply concerned about our profession and eager to learn best patterns & practices.

In the first part we had 3 lectures: Code Reviews (Tools & Processes) - Ran Tavory , Structure 101 - Eran Harel and Legacy
Code & Unit Tests
- Uri Lavi.

In the second part Aviv
& Yoni Tsafir demonstrated pair programming (Randori Style) while solving the Bowling Kata exercise.

Watching this great audience was very satisfying and I received a lot of positive feedback, that will also improve our next sessions.

During the meeting I have also introduced the Mentorship/Apprenticeship program.

Today, a few weeks after the meeting, I can proudly say that I mentor two great

Though we only started the process, I expect that the mentorship program will bring the change to our community and
will create more professionals and software craftsmen.

Below you can find the lectures and the source code of the Kata:

The Bowling Kata source code in Java.

The Game class:

The Game tests: