Archive for June, 2009

Be agile! Sir yes, sir!

14-06-2009

Years ago when corporations came into being some management pattern was needed.
As there was no business model to copy something had to be adapted. Which organisation have to manage many people and work on complex projects? Army.

In Army there is whole command chain with president or a minister on the top, some generals and captains to work on maps and papers, sergeants and corporal to work with soldiers in the field. And of course the team to kill bad people whatever bad means.
In corporation minister is the CEO/chairman, generals and captains are the upper management to negotiate contracts, create and cancel projects. Sergeants are lower management – team leaders and all other X leaders – they work with the team close to the project. And of course the team to kill… I mean to do the job. Whatever job means.

After years of working with army style management corporations try to be agile. Less management, no X managers, self organising, cross functional teams.
Cross functional teams are quite popular also in army. Team with about seven people with different skills and armament could do a big mess… Isn’t it similar in scrum? No separate testers and developers team in scrum, no separate launcher teams and M16 teams in army :-)).

How might army look like if they use scrum?

Beginning
Sergeant: Team 167, you have to attack the tower…
Team 167: Serg, you have no longer the authority over the team, sir. We will choose our targets after meeting with Captain… I mean Product Owner.

Sprint planning
Captain: Teams, last sprint no team decide to attack the tower. This is the item of high priority and you must do this during this sprint.
Teams: No team volunteered for this item because it’s too big and not clarified enough. Teams would like to know if there are snipers in the tower and how many nades enemy has. Last time we encountered many impediments because items were not specified enough – land mines and one dangerous ambush. Captain, you have to work more on items specification.

Sprint – Daily scrum 1
Sergeant: Team 167, Captain wants us to rescue the hostage. We can do this on our way to the tower.
Team 167: Captain is not allowed to add new items during the sprint. You should know this as a scrum master… By the way, we don’t want you to be our scrum master any longer. You don’t obey to the scrum rules.

Sprint – Daily scrum 2 (sergeant got his last chance :-))
Sergeant: Team 167, I want to remind you KABOOM that you should meet daily. It’s very important to synchronise work between team members and… DADADADA BOOM plan next activities…

Sprint review
Team 167: Captain, we manage to kill enemy and occupy the tower.
Captain: Fine, so item #1352 is finished. Good job soldiers!
Sergeant: Sir… As a scrum master I have to remind you our definition of done. Tower is not jet fortified, tower has no communication with our base and the road to the tower is still mined.
Captain: Ok, so I can’t mark this item as done. Teams please bear in mind that item #1352 has high priority and must be finished until hmmm… release.

Can you imagine? :-)

Job interview – are you really interested in ANY job..?

12-06-2009

Looking for a job as C++ developer? Waiting for another job interview? Tired of “what does encapsulation mean?” questions and being judged after half hour interview? Then try to judge your potential employer.

Of course first part of job interview is always pretty much the same and there are many howtos about handshaking, eye contact and such stuff. Then you have more or less known questions and here is first interesting part.

Beginning is usually simple – where did you work before plus some basic C++ questions. This definitely shouldn’t be the last part. If programming language basis is enough to get the job, and it wasn’t interview for greenhorn, newbie or trainee then you should run away. Really.
“Our system architect knows even how to overload operators in C++”. Dude, run faster!
Even if there was “young but very experienced team” statement in job announcement. Such experience might be painful to share.

Definitely there should be more questions about design patterns, code architecture, uml and tools. If you get this job you’ll probably work with interviewers or people with similar knowledge. If they are better then you – you’ll be able to learn something new.

If everything went well interviewer lets you to ask questions. Think before the interview what could you ask about. All questions about holidays planning, salary, bonuses, social things are important. However don’t forget about technical things.

My favourite is “Do you use stl?”. If the answer is “no” then listen to explanation very carefully. If they work on something with operating system then there is probably no explanation. If you’re told that stl is not efficient, that they developed better and faster library on their own then thank them for their time and flee. Yes, there still are people who reinvent the wheel and poorly rewrite the stl library. We don’t call them morons only because we are well mannered.

More good questions – “Do you use boost?”, “Do you support open source?”, “Do you use any open source libraries in your projects?”. If they don’t want to use free third parties and want to rewrite whole universe their own “better” way then you know what to do.

Of course until you have family to support :-)).