Thursday, January 31, 2013

On leading teams

I recently saw a presentation that opened my eyes on some points I probably should have known about long time ago. For me it was a breakthrough, and I apologize I wasn't aware of them sooner.

First of all, regarding the question: "What is my top responsibility as a team lead? What should be the No. 1 in my TODO list?". The simple answer is:

Keep asking myself how my team has improved in the past interval: how my team has improved in becoming a team, how my team has improved in doing things, how my team has improved in becoming a super team, how each member of my team has improved himself/herself, how did I improve myself for my team, how did I improve myself for myself...

If I am not at least thinking about that, I am just a programmer with special attributions!

Secondly, I realized that nothing can improve out there in the comfort zone. If I'm leaving you in your comfort zone, and I stay in mine, we might be more comfortable with each other, but we won't in any way progress in anything.

So If I don't have the guts to challenge somebody or myself out of his/her/mine comfort zone, I am just a programmer with special attributions!

Thirdly, I realized that I can easily become an impediment for my team. Yes mister Scrum master, you can easily become an impediment for your team! If somebody comes to you complaining about the WiFi in the meeting room and you don't ask him "what will you do about it?" but just forward the question, you're on the right track in becoming impediment.

Fourthly, I realized that broken window theory doesn't apply just to failed unit tests but to any practice you would like to have in your team. Skip a code review once, and code review will become optional, skip a retrospective, and all the retrospectives will become optional or nice to have, just break the window and everybody will know it's save whatever they want.

So if you have an hour, enjoy the movie, it contains also other cool stuff: Code Leaders and Beautiful Teams

The guy's site is pretty helpful too:

Sunday, January 27, 2013

Bye Eclipse, Hello Intellij!

I know it's a religious war out there with thousands of followers on each side, that's why I won't just say that Intellij is better than Eclipse or the other way around.

I always tried to replace the tools that slow me down and unfortunately Eclipse started to become such a tool for my current projects where Maven and Git are used intensively. Between me and you, m2e and eGit eclipse plugins still need a little work in order to become really useful.

So, how do you replace your favorite IDE with a different one? What are the steps, does it really pay off?
I can tell you what worked for me, I hope it will be helpful.

Stop using Eclipse if you want Intellij

I tried for a while to use both tools in parallel and it didn't work at all. Each time I had a "problem" I went back to my good old Eclipse to solve it. This way the amount of time spent with the new tool was reduced and no progress seemed to happen. 

I only started to become productive with IntelliJ when I decided to quit using Eclipse!

Start by learning one aspect at a time

How do you enter a new Universe if not one step at a time? 

I first started to read code using IntelliJ - focusing on view elements and shortcuts that helped me to navigate between various classes and code fragments. 

After that I started to write code so I only focused on editing, code completion, refactoring aspects.   

Then I focused on build system, debugging, and so on...

Pair programming

If you have someone out there using IntelliJ, start pairing with him! I learned a lot of things very quickly just by sitting near somebody who knows the tool. It takes minutes to learn a new trick visually and hours to find it by reading documentation!

Use tools

There are tools out there that help you do anything. Even learning IDEs.

I started to use Key promoter and I am very happy with it! It really helps you learn shortcuts you didn't even know exist.

Does it pay off?

In terms of productivity certainly yes, I feel it everyday. It really makes my life on my current projects easier.
I started to use it also for my home Android project - the UI Designer is quite cool!