swkWien / sessions

Session presentations for Coding Dojo Vienna
http://swkwien.github.io/
16 stars 7 forks source link

Coding Dojos 2017 (Motto SOLID principles) #19

Closed codecop closed 6 years ago

codecop commented 7 years ago

Facilitators

done

2015 listed in #4 2016 listed in #5

codecop commented 7 years ago

Hello all, how is it looking for 2017?

xbojch commented 7 years ago

Hi, all! Hope you started 2017 successfully!

I'd like to organize a coding dojo in February. I'll let you know the available dates by the end of this week. That should give us enough time to prepare everything.

I might ask you for some support setting the "marketing" side of the dojo up.

codecop commented 7 years ago

for January - if there are no volunteers - maybe @dertseha? Has been a long time...

dertseha commented 7 years ago

I'll see if the 23rd of January is available at FRQ.

dertseha commented 7 years ago

David Tanzer has contacted me with a facilitation idea, I offered him to do the January session; I'm waiting for his reply whether he has time on the 23rd or the 30th.

ernst-fastl commented 7 years ago

Hi guys, I could do a session in March.

mlem commented 7 years ago

Hi bros. I'll take april, july, oktober then. See you hopefully soon.

paulroho commented 7 years ago

Mesdames et Messieurs, we'd like to volunteer for May, August and November. Preliminary dates:

xbojch commented 7 years ago

Great idea @dertseha, looking forward to this dojo.

I have booked two Wednesdays for February (15th or 22nd) @ LinkResearchTools and would do a doodle to see which performs better.

Glad we're filling up the slots for 2017!

ernst-fastl commented 7 years ago

well then I'd like to take June and September, before everything is full :-)

codecop commented 7 years ago

lol. Maybe we go back to running twice a month, esp. in good months like March/April/May and Sept/Oct/Nov and/or running a second Coderetreat in June?

paulroho commented 7 years ago

@codecop I think, having one session per month (with exceptions) is a decent rhythm. Better to be sorry for waiting four weeks than having dojos with next to no participants. From what I saw, overcrowding is not the most urging problem ATM. For the sake of disappointed facilitators, I'd have no problem to step back from one session.

dertseha commented 7 years ago

Next week's dojo is a new record, in terms of participants. We yet have to figure out whether this was because of a public theme, the guest facilitator or all things together, including minor details like the in-house ad we had at FRQ.

I'd like to keep the monthly rhythm until we figure out what a winning strategy is to keep both participants and facilitators engaged. I guess last month's dojo was... interesting with only two (?) participants.

dertseha commented 7 years ago

What do you think about having a questionnaire at the end of the dojo on Monday? I'd like to know what makes the 30 people tick in filling up all places in two days. Finding the right questions is tricky, so jump over to #21 to help design the survey please :)

codecop commented 7 years ago

Maybe many people have new year resolutions ;-) Interesting, so many new names. Also strong participation from FRQ and the few veterans. On Meetup 30 ppl might be 20 or even only 10 in the end so I am curious how many will show up. Also I planned to drop by if time allows, which I still plan to...

dertseha commented 7 years ago

@xbojch So what about February? Starting a Doodle now to figure out whether it should be next week or the week after is too late I believe. Pick one, and pick it fast if it's going to be next week :)

xbojch commented 7 years ago

Yes, I agree @dertseha. After discussing it internally and to attract most of our team, we’ve settled on the 22nd of February. So we’ll skip the doodle for dates. I’m looking at katas that would be interesting. Did you try OCP katas before? If yes, how did it work out?

I’ll pick a kata and theme in the next 2 days and then start the announcements, hopefully knowing the content of the coding dojo will attract more participants.

Thanks for the reminder Christian!

dertseha commented 7 years ago

I don't think we did any explicit OCP kata before. GIve it a go, I'd be interested!

Thinking about it, we could run a SOLID theme as well. Each principle handled at least once in 2017. Idea out in the open.

ernst-fastl commented 7 years ago

I like the idea. I have been looking for ideas for the March session anyway.

Maybe a single responsibility refactoring kata, similar to the tennis kata? Something to code might be nicer on the other hand.... Any ideas?

paulroho commented 7 years ago

@xbojch Love the idea of an OCP-kata and @dertseha making a solid focus this year. Do you know pre-canned exercises/katas regarding those principles? Unfortunately, Feb 22nd collides with a joint date of two meetups (testautomation and BDD) where I have to attend. So looking forward hearing how it worked out!

codecop commented 7 years ago

@xbojch the Racing Car Katas, https://github.com/lucaminudel/TDDwithMockObjectsAndDesignPrinciples/tree/master/TDDMicroExercises/Java all have OCP and DIP violations which need to be refactored. In a way they are OCP katas. Explaining the kata takes some time. Maybe 2 of them can be done in one evening.

If you decide to use them I can provide more pointers for facilitator.

xbojch commented 7 years ago

Thanks, Peter!

I'll prepare the doodle and SwK announcements during the weekend. I'll also try out the katas you suggested and we can do a hangout later.

xbojch commented 7 years ago

Prepared the SwK and Doodle. Can I send it out via SwK or are there some rules about who sends it? https://www.softwerkskammer.org/activities/CodingDojoVie20170222

dertseha commented 7 years ago

@xbojch thank you for creating the entries! People are free to send them out themselves :) There is a send-mail button on SWK for the event, at the top.

One minor addition: If you could please add to the doodle the columns "Topic", "Venue", "Speaker", "Other". Then ask in the description the people to check what motivates them to come. For "Other", people hopefully leave some comment.

xbojch commented 7 years ago

Thanks for the info @dertseha, I'll send the invitation as soon as I get the Doodle ready. I'm not entirely convinced, that Doodle is a good match for collecting additional data.

It's either free text options or scheduling an event (only dates + times). Here's a test doodle - IMHO it is confusing as it displays the choices as equivalent options.

What do you think about it? http://doodle.com/poll/k65vuy3rkuuxmswx

dertseha commented 7 years ago

Using a test-only doodle should do the trick, good idea with setting up a test. After all, there is only one time slot to attend to, and this information (the time) is already in the main text. Let's do this and see how people react :)

xbojch commented 7 years ago

Ok, let’s give it a try. Will send out the invitations in the morning.

xbojch commented 7 years ago

SwK and Doodle now published. Please share.

xbojch commented 7 years ago

Hi, just to report on my first coding dojo. In the end 11 people participated (4 internal). For 3 it was the first coding dojo. It was interesting, and I also received some feedback how to improve. Participants really like to know the topic (theme) up front to decide if it's something for them. I could say it's confirmed by the Doodle, where most people checked that the reason they will participate is the Topic.

About the exercises, I could work on being more clear with requirements, perhaps even showing a pseudocode example. Some participants pointed out, that it would be nice if they could see the final solution and discuss design ideas. Perhaps a topic for a future dojo?

All in all we were successful and I'm looking forward to organizing the next one.

codecop commented 7 years ago

@xbojch sounds great. Pls send a pull request with your slides/revealjs/pdf to this repository. Thank you and your employer for hosting the dojo.

ernst-fastl commented 7 years ago

Hi guys,

I would like to do the dojo next thursday 16.3. and focus on the S in SOLID and do a SRP Kata. I have been thinking about using the tennis refactoring Kata with the following constraints: Round 1: -No method more than 5 lines -No class more than 5 methods Round 2: -Same as Round 1 + focus on removind duplication

Feedback especially on the numbers in the constraints much appreciated. What do you think?

ernst-fastl commented 7 years ago

doodle created:

http://doodle.com/poll/p2m733hyy8vucevp

can someone create the SWK event or give me a hint if/how I can do this myself?

xbojch commented 7 years ago

I can do that. Have experience already :)

xbojch commented 7 years ago

@ernst-fastl created the SWK event here https://www.softwerkskammer.org/activities/CodingDojoVie20170316

You can sign in to SWK using Google, Github or SO account. Then it's pretty straightforward to create an event and you can even "clone" an existing event to do it faster.

Looking forward to the dojo.

ernst-fastl commented 7 years ago

thanks @xbojch

any feedback on the constraints? Do you think that will help towards SRP?

codecop commented 7 years ago

SRP is pretty difficult and subjective. Small units drive towards that. While 5 LoC is a clean code constraint, it helps towards SRP. Maybe make it extreme in second session: 5 Loc by method, each class only one method ;-)

paulroho commented 7 years ago

While one method per class may be insightful (and fun), I have the feeling that pushing towards thinking hard about the "single reason to change" would be an interesting thing to do. What about trying to cluster the code with respect to those reasons to change. Maybe there is just a single one "If the rules of the game change"? Interesting topic anyway.

xbojch commented 7 years ago

@paulroho I agree with you, that focusing on the "single reason to change" might be better than hard limiting the LoC per method or methods per class. On the other hand having the limit as a guide might keep people in the right direction. @ernst-fastl do you plan to do a refactoring kata or start from scratch?

codecop commented 7 years ago

"single reason to change" is the true idea behind SRP but subjective and hard to argue. Other interpretations say "all changes come from same department", so changes from HR and sales in same class violate that.

A short (non-comprehensive) description of the principle: systems change for various different reasons. Perhaps a database expert changes the database schema for performance reasons, perhaps a User Interface person is reorganizing the layout of a web page, perhaps a developer changes business logic. What the Single Responsibility Principle says is that ideally changes for such disparate reasons do not affect the same code. If they did, different people would get in each other’s way. Possibly worse still, if the concerns are mixed together and you want to change some UI code, suddenly you need to deal with and thus understand, the business logic and database code.

Hard limits in several forms, e.g. "No classes with more than two instance variables" or "First class collections" etc. are all related to that and easier to verify. So if you focus on SOC (separation of concerns - whatever that means ;-) you are right. Maybe let them code, remind to separate concerns/ responsibilities, flag mixed responsibilities if you can spot it and have an extended show and tell in the end where people flag others' code if there are still responsibilities.

ernst-fastl commented 7 years ago

Thanks for the input guys. I was thinking of using the tennis refactoring kata with some constraints and a 4x5 Minutes show & tell at the end of the second sessions so see what they came up with.

Maybe the soft constraint are some example change requests which are not implementend but considered as a guide during refactoring. OR Maybe the first 10 minutes of the exercise should be used to identify responsibilities on a sheet of paper which they want to separate during refactoring.

Hard limits could be replaced by "small methods and classes"

what do you think?

paulroho commented 7 years ago

Not sure how the guiding by the change request can look like, but I really like the idea of thinking about the responsibilities up front. And I am really curious what we will come up here.

Regarding the limits I think that "small" is too much a matter of personal experience. Coming up with some verifiable numbers is harder to escape.

ernst-fastl commented 7 years ago

Sounds good. I think I'll stick to the numbers in the constraints after all and start with identifying the responsibilities.

Looking forward to seeing some of you at the Dojo :-)

dertseha commented 7 years ago

I've been absent a bit, sorry - great that you have been organizing all of this! Sadly, tomorrow's dojo yet again coincides with a company-team-event :/ Still, I'm curious about the outcome!

codecop commented 7 years ago

Just FYI: the GDCR17 has been announced and @paulroho is hosting like last year. Details in #23.

mlem commented 7 years ago

So I think now it's my turn :D I was planning to do the I from SOLID, ISP - Interface Segregation Principle I will take probably the Jenkins Open Source Project as an example. I want to discuss this matter for about 1 week, then schedule a coding dojo after easter holidays. Anyone has better examples or repos to practice ISP?

paulroho commented 7 years ago

Interesting. What do you plan doing in the exercise with the Jenkins-code?

mlem commented 7 years ago

there was (at least in the past) a god class. It had all kinds of methods I want to separate it by using interfaces. I want the participants to come to realization, that it's afterwards much easier to work with those interfaces instead of one godclass everywhere...

mlem commented 7 years ago

description is prepared. On monday you'll get the date and the final versoin. see https://gist.github.com/mlem/45c018fe1d56682a5615b7ca7e042e95

mlem commented 7 years ago

Hi.

I want to request your help. I have written down the setup for this coding dojo. Can someone verify it works for you? https://gist.github.com/mlem/45c018fe1d56682a5615b7ca7e042e95 I'm thinking, this time the setup description should only point to this gist, which can be updated, if there is something not working where I can create a conversation with the future participants.

Another thing is the doodle setup. Can someone setup the doodle for me please?

It would be at willhaben. Adresse:

Bürozentrum 2, Landstraßer Hauptstraße 97-101, 1030 Wien Wegbeschreibung:

Public Transport U3 Rochusgasse or Bus 74A station „Barichgasse“

Walk through the shopping mall "Galleria" and look for a red door (opposite of Café Tauber), labelled „Bürozentrum 2“. Enter the staircase and move to the 4th floor. Register at the reception.

xbojch commented 7 years ago

Hi,

I can help you with the doodle. When would the Dojo take place?

I can also try to set it up (as a Java amateur).

Sounds like an interesting topic, looking forward!