Technical Leader

June 8, 2011 TeamWork 6 comments

There has been a while since I posted something relatively personal. In recent time I’ve been working as Technical Leader for two projects (for one maybe partially thanks to another great team member). Being TL might be also justification on why I did not post that much, but probably it is not justification, it is just prove of my bad time management.
In this blog post I would like to talk about people motivating and leading team as I have much of this activities now. My vision could be very weak in this respect, but I have it clear in my mind and I would like to share it with you.
I did some research on who is tech leader and I also read couple books
on managements and have some ideas from them. I also had some
conversations inside of the company on this assignment. So I know there
is lot of stuff and information we can read/share. There are huge set of
different opinions on this manner and most of them are correct. So I just express what I was able to compose withing allocated time for this blog post.
In manner of couple of months I’ll see if my attitude and actions are correct. I will definitely share this with you, dear readers.
Here is how I see goal of good Technical Leader:
TL’s goal is to ensure that each team member (including him/her-self) is happy with work they do and that they constantly grow their professional skills, therefore establishing overall success of the project.
I believe it sounds differently from what you can read from other sources, but there are dozen of different definitions of this role, so above one is mine. To be a good technical leader you might need to take a lot steps before you succeed.
But unless people believe in you, and have strong trust in you, you might not be able to do much.
It might be difficult to build trust, but it is doable. Here are my thoughts:
1) Explicitly show your desire to work for the projects success thought the prism of everyone’s happiness.
2) Work very hard on learning new stuff each day, make sure people know that you are very strong in your knowledge.
3) Stand for the people in your team, always show respect, always treat them as the best developers.
4) Listen to people, ensure they know that their ideas are valued.
5) Show that you try to understand needs of each person you interact with.
Here are some things I do now:
1. Ensuring that people don’t have anything on their way to complete tasks.
2. Giving clear tasks and establishing clear expectations, especially for the people that are not highly motivated.
3. Acknowledging developer’s work. So if some of the developer’s did great job I’m sure everyone should know otherwise it just dies with closing task in tracking system.
4. Coaching on technical stuff when it is appropriate.
5. Giving people tasks they like and tasks that challenge them. Also if people don’t reveal much interest I just hope that next task they pick up will be something they will like.
6. Inspiring developers us much as I can.
7. Showing personal responsibility and technical skills as an example. 
Here is something I would like to improve:
1. Make sure everyone feels high responsibility for the work they do.
2. Make everyone believe in project and is really willing to make it happen.
3. Make the team to be an extremely collaborative, self-defensive, self-organized, motivated and oriented to success.
Here are also some things I would like to try:
1. Build table of everyone’s weak and strong areas and try to use it the best.
2. Find best tasks for the people so they learn and get excited about working.
Thanks for reading this blog post!


Book Review: Peopleware: Productive Projects and Teams

September 16, 2010 Book Reviews, TeamWork 3 comments

This is probably first book I read about management particularly in software industry. Book provides couple of very interesting ideas, that can help software projects succeed. It states, that most of the problems in projects are not related to technology, they have sociological nature. So next time you hear about some troubles within your project, that something cannot be done, or can be done but requires enormous amount of time, or that someone cannot be in time with some tasks ASK YOURSELF questions: Are you sure that each team member feels that he is part of the team? Does everyone feel himself responsible for the work he is doing? Is he/she interested in work? Does environment surrounding employee facilitate him?
Indeed, do you remember days when you were distracted too many times per day by stupid not important things and in the end of such day you weren’t able to remember what you had done? I remember when one of my team-mates complained about such situation to SM. What do you think was the response? – That it is all about time management. I would say “Yes and No”. Some workaholics hide their real efforts under what they call “time management”, but there are people who want to work only 8 hours per day and then be back at home with their family. So in their case couple of distractions per day can lead to low performance. Book gives some technics on how to decrease such situations and also how you can build team which will find their own ways to distill their work and remove all not necessary things.
In book I found one way-way too interesting experimental activity to crystallize your teams. So authors propose organizing competitions on weekend for teams (4 members) working on small project (2 people-months). During the competition you as project manager should serve them. Get them out to some extraordinary restaurant at 2 am, yeah at night! Do something that will make them feel your care. In the end there should be lot of winners in different nominations.
This was expensive experiment, but book also proposes other expensive events like flying with whole teams to other countries on the company day for example. I heard about such entertainments at least in two Lviv’s companies. They are now proud of that.
Have you ever heard about black testers team dressing black clothes and making all developers scared, because they will definitely find tonnes of bugs in their programs? No? Except of this there a lot of very interesting examples of how something can be self-organized to reach highest performance and results without managers boring decrees.
Book will bring to the table a lot of interesting facts and ideas about Peopleware. And I would highly recommend to read it to have better understanding of what really has impact on your team progress.


Pair Programming – First Try

August 25, 2010 TDD, TeamWork, UnitTesting No comments

Few days ago I worked few hours on Sunday, so there were only me and one of my co-workers in the room. He is Delphi guy, but likes to learn .NET. He had to implement some custom resizing logic for the report and he asked me if I can help to think on the logic. We had spent maybe couple of minutes before we got some preliminary ideas.

Let’s do Pair Programming

We decided to implement some prototype/logic within .net. I suggested pair programming with TDD: “I will be writing tests – you will be implementing logic to make them work”. BTW, do you know how do we call this particular programming pattern? – It is called “Ping-Pong Pair Programming“.

So after I created basic test project and wrote a test that simply has something like “var report = new Report();” and then “report.Draw();“, which of course is failing UT, he proceeded with creating class for Report and putting in place stub method Draw. Then I added functionality that allows adding report columns, then sizing of them, desiredMinimalWidth and delimiting width. Then UT that verifies if we correctly resize columns, if they fit or do not fit into report. Misha was performing extremely well in implementing logic, we had been thinking on. At some point of time he got stuck, so we continued together on making latest UT work.

I enjoyed this try of doing Pair Programming along with TDD.

What are benefits of doing PP as per me?

  • Knowledge sharing
  • Less bugs
  • Quicker problem resolving when working on complex tasks
  • More control on what other in pair is doing (in other words you will be sure that he is not using his time to watch YouTube)
  • Building great team spirit

Are there disadvantages?

It might happen that PP will not be feasible, especially in situations when problem they are trying to solve is trivial or when one of contributors is not interested in going great job. You can read lot of discussion over the internet about the time PP consumes and the quality of the work. Most commonly you will hear that when doing PP it takes +15% of time if two developers work independently and produces 15% fever bugs.

What are preconditions on doing Pair Programming as per me?

  • Problem you going to solve are complex and require writing new code
  • Good to have two competent developers, but one of developers is a must
  • One of the developers is really dedicated to work
  • A great plus would be if your system allows you to write Unit Tests
  • You bet on quality, not on quantity (sometimes better decision for the business might be to deliver quick and lot)

In my further professional growth I will try to involve more people in this practice!

No comments

Team Work: Am I complaining bitch

July 22, 2010 TeamWork 10 comments

I’ve been writing e-mail to my co-workers, notifying them about changes I did in sprint backlog. Then I switched to people avaliability and continued about complaining why do we allocate only 6 hours per day for tasks and then did unexpected – shared my thoughts on being result oriented.


[Something about my changes…
complains-complains-complains- sorry could not share them – complains-complains-complains – complains looks like “we have X hour for this and that where then other Y go?”]
I understand what you may think about me after this, but root of our being behind the schedule is our attitude to work.
I would like to see sprint backlog populated with tasks we really do and fulfilled to meet our allocation per day.

If we are agile team, that want to meet project success, why don’t everyone commit himself equally with others.
If we are professionals who what to achieve career picks and earn something valuable for our lives we need to be result oriented.

All my complains above could be discounted if we all want make customer happy and get it DONE. I want! And you?

Looking forward to hear from you?

Now I think about the consequences that my e-mail will bring. Indeed it looks like I’m too concerned about my project or either I’m emotional, since complained about those things.

Really would like to hear from you about your opinion on this.

I’m complaing bitch
I do not understand that people have other life priorities
I’m too young
I’m bad team worker, I need to start playing from other side
I should become lazy :)
This will have:
Good consequences and they will like my e-mail
Bad consequences and will simply make barrier between me and them

Please share other variants, that is really something, I’m interested in to hear from you, readers!