Read my book

I wrote books about Webpack and React. Check them out!

Wednesday, April 24, 2013

Afterthoughts - HackJkl and AgileJkl 2013

It was that time of a year again. AgileJkl time that is. The event was organized for the first time last year. I wrote a brief report on the event back then. This time I gave a brief talk even and probably dragged the quality of the event down a bit while at it. Oh well.

In addition to AgileJkl a pre-event known as HackJkl was organized. Around 25 geeks gathered around to share some experiences and learn about new technologies. And there was sauna of course.

Overall both events were well organized. Big thanks to the crew for making it happen! Hopefully we'll see AgileJkl again next year. I know it takes a lot of effort but it was worth it at least from attendee's point of view.

HackJkl

As you might expect based on the name of the event it was really technology oriented. There was a nice selection of sessions, something for all.

Tuomas Kareinen - Functional Reactive Programming

Tuomas Kareinen discussed the joys of functional reactive programming (FRP). It is an emerging paradigm and in some ways it simplifies things somewhat. It does come with some new vocabulary and you have to think differently. His session material contains a couple of examples. Basically he shows how to do things the traditional way and then by using FRP. I am not a total convert yet but I can see the value.

Metosin - Clojure in Real Life

The Metosin guys discussed Clojure and how to apply it in practice. One of the main findings was that even though the language has braces (since it's a LISP), equivalent Java code might have even more of them. The Clojure code was more compact as well. It would not surprise me if Clojure gains popularity in various Java shacks around Finland.

John Britton - Git Internals

John Britton of GitHub (you might know the company) discussed the internals of Git, particularly the data structure side of it. I probably now know more about the internals than I would have ever wanted to. Thanks John.

Sam Aaron - Hacking the DJ

Finally Sam Aaron of Overtone fame demoed his fantastic tool and unleashed the power of Clojure. In short Overtone allows you to program synthesizers. You can even hook up real hardware to your synth quite easily. The key advantage of this approach is that it allows you to document and reproduce your work. Rather than relying on knobs and electronics you have something more tangible: code.

The approach is very powerful and illustrates well the value of interactive programming environments. I have done some work myself on this field. It is a really nice way to program thanks to the fast, iterative way of working. You can literally see your code become alive in front of your eyes. Very satisfying.

Conclusion

And of course there was free pizza and sauna. Very nice event overall. It would be very cool to organize these sort of hack days more often although I am pleased that we have the occasional dojo and meetups over at Geek Collision.

AgileJkl

This year AgileJkl had two tracks: business and development. In addition there were two keynotes and a panel discussion. Quite a bit of material! I participated on the development track. I am certain the business talks were interesting as well. I likely have to take a good look at the recordings later on.

Jurgen Appelo - Let's Help Melly (Changing Work Into Life)

The day was started by Jurgen Appelo, one of the leading agile management people in the world. He is a natural presenter. It was just amazing to see how well he took the stage and captured the attention.

Jurgen highlighted various ways in which to make workplaces happier. Happier workers lead to better retention, improved productivity and innovation. If you optimize just for productivity, you might have a high turnover rate for instance.

I don't know that much of management myself. That's just one of my numerous weak points. I think Jurgen made some very valid points, though. You have to give certain amount of slack for your employees. There has to be trust. And with trust comes responsibility. Are you managing toddlers or adults?

As evidenced by the panel discussion there are no proverbial silver bullets. Each organization has its own set of problems. Management practices used should reflect the company values. Those are not just something you put on your office wall. They are something you instill in the way you work.

Juho Vepsäläinen - Survive JavaScript -- Strategies and Tricks

Yup. This presentation on the tech track was by yours truly. You should check out Survive JS the guide to get a better idea. You'll also find the slides and such there. Overall the presentation was a mixed success based on the feedback. Of course I cannot possibly match the quality of seasoned speakers but I think I could've done quite a bit better.

I decided to cater two main groups with my talk. I wanted to give some kind of an overview of the field for total beginners. In addition I wanted to give an idea or two for the more experienced ones. On retrospect I should've just focused on one of these goals and trimmed the material accordingly. It might have worked better as a workshop or as a traditional lecture (2 x 45 mins). 45 minutes is really not that much time to go through these issues in any sort of detail.

Basically you can choose one thing and explain that really well in that timeframe. Or you can go really broad like I did and end up with "meh". I'll probably stick to more focused content in the future provided there will be any opportunities again after this.

In addition there were some technical problems. First of all the audio wouldn't work and later on I heard the people on the back row could not hear my voice. Spring time is always tough for me due to allergies so I was even more quieter than usual. I should have made sure the people on the back can hear me, though.

There was also some fiddling with slides (web based of course). It might be a safer bet to stick with plain old PDF in the future. Harder to fail with that. Timing was a bit tight and unfortunately there was no room for questions.

Even though I've shifted my style from "Death by Powerpoint" to something more contemporary it seemed there were still too many bullets. I also tried "recaps" (basically went through main points after each important section) but I am not entirely sure if those did any good. I know there should be some amount of repetition but perhaps there are limits for that even.

Overall it is very hard to please everyone. It's not that I didn't have material. Just lacked the skills and experience to make it work in this particular occasion. If something good came out of this endeavour, it is the Survive JS guide. It goes way more detail and hopefully fills in some of the blanks left by the presentation.

Lasse Koskela - Habits and Technology

Lasse Koskela of Reaktor discussed habits and technology. To be honest this talk didn't resonate with me a lot. I did manage to get something out of it, though.

People are fairly driven by habits. It can be very easy to attain those. But try getting rid of them. That's tough as you probably have noticed.

On technology level this means you could get too comfortable with some solutions you are using. This leads to myopia. You might ignore some viable options just out of sheer ignorance.

Sometimes it might be worth it do things differently just for the sake of breaking the habit. Rather than taking the same route always perhaps that other one, although maybe longer, contains some hidden insight. At least this allows you to evaluate your habit if nothing else.

John Britton - Github: Distributed, Asynchronous, and Self-directed

John Britton of GitHub discussed the distributed nature of GitHub and the way they work. It is very antithetical compared to the way traditional organizations work. Believe me, I have some experience of those. GitHub is nothing like a pyramid you might've gotten used to. Rather it seems like a very flat one (yes, they still have a CTO).

People choose what they work on and with whom. In this way people are empowered to make the decisions that help to further the goals of the organization. One interesting side benefit of this is the fact that they have developed multiple internal tools to help them operate more effectively. If you let people do this sort of work and trust them enough, they'll optimize the business and make it more fun for themselves. So you get all sorts of plusses.

It is also very interesting to note how they relate to the usage of time. You basically don't have any fixed hours. I think that itself can be quite liberating although it comes with responsibility. You have to do what you have committed yourself into.

It is clear this sort of organization is not suitable for all sorts of people. I think you really have to love what you are doing to make this sort of thing work for you. It's definitely not for nine-to-fivers.

Perhaps we will see more GitHub type firms in the future. They seem to value and trust their employees a lot. Rather than having some kind of an antagonist relationship between the employer and the employee, they seem to aim for something entirely different. And they might be onto something with this.

Sam Aaron - HyperAgile Development

Sam Aaron discussed agile development taken to the max. This actually related back to the HackJkl session and in some ways overlapped with it. This was very understandable, though, given the larger audience. It was still very impressive.

The key point in this presentation had to do with the fact that you should write your own tools to serve you. Forge your own tools and destiny while at it. There is still a lot of room for improvement in this sector.

I think we'll see more graphical tools to emerge sometime in the future. The holy grail for me at least is a graph editor that generates some meta level description that is then converted into some real code (Clojure for instance). The bridge should work in two ways of course.

I discussed this topic with Sam briefly. It isn't as easy as it sounds but it is definitely doable. Things will get pretty nasty really fast and some ways of grouping data have to be developed. It will take some amount of innovation to make all that's needed to happen. I would not be surprised to see Sam demoing a graphical editor within a couple of years, though.

Panel Discussion

I was a bit tired at this stage of day (woke up at five) so I probably didn't get most out of it. The topics discussed were related mainly to management, agile transformation and such. It could have been interesting to have some more technical questions injected in. Again, Appelo showed his showmanship. That guy is some kind of a genius.

Conclusion

We ended the day with an official GitHub drinkup. First of its kind in Jyväskylä. Personally I'm not much of a bar person but it was a nice way to end the event.

Overall HackJkl and AgileJkl were highlight of this Spring. Apparently there's an agile event at Turku around May. Perhaps that's something that could fit into calendar as well. It was impossible not to get one of those business cards.