Archive for the ‘Thinking aloud’ Category

Real agile

Tuesday, May 1st, 2012

I heard about agile about five years ago for a first time and  I started practicing different agile methodologies (mainly SCRUM based) about four years ago.

Just as a side note. “Agile methodology” is an oxymoron. If it’s methodology and you have to follow it whatever happens then you aren’t agile and if it’s agile than you shouldn’t try to define rules written in stone (methodology).

And only now, after 4 years of doing different Agile But, I finally started to work in a real agile environment.

I believe there are two core reasons, why company practices Agile But:

– A company does agile just because it’s a new cool thing and the company wants to get another boy stout badge for being kind-of Agile.

– Some engineers are frustrated that releases are always late and their buts got kicked as result of that.

These are WRONG reasons to do agile. In both cases it’s seen as just another initiative. A lot of people thinks – “oh… well. if it help that’s fine, if it won’t help – not a big deal”. As result, most likely no resources will be allocated to it, no serious changes will be done.

I think,real agile can come only from the top of the company. As soon as owners of the company understand that

– The world is complex thing and any assumptions needs to be checked (the faster the better)

– Resources are very limited and it’s absolutely critical to do most essential stuff first

They formulate very simple idea – being Agile (especially for a startup company) isn’t just another initiative, but rather live or die decision.

Immediately as soon as you decide that’s critical you will know the answers to questions like  why do we need short releases, automating testing, automation builds, get functionality to real Done state, constant prioritization, fighting technical debt and so on. It just sets number of additional positive constrains which pushes you  into correct direction.

It takes three roles to create a startup

Saturday, April 14th, 2012

You need to have three roles in a startup:

– Businessman

He/she should be all about money – make sure that there is enough money, track cashflow,  kick everybody asses to bring in the revenue.

– Visionary

This person should think strategically – where do we want to be, what problem do we want to solve, how could the company be the best in what it’s doing.

– Builder

This person is all about tactic – choose a next step and just do it.

 

You don’t have to have three actual persons. One person can wear several hats, but without a doubt founders should cover all three roles between them.

The only way to grow is to …

Sunday, April 8th, 2012

challenge yourself.

If you are working at a job which you know exactly how to do – it’s time to change the job.

If you are constantly doing tasks which you know how to do perfectly – you have to do something new.

If you have answers to all questions then your questions are wrong.

 

Pareto principle and elimination

Monday, April 2nd, 2012

From Wikipedia:

The Pareto principle (also known as the 80–20 rule, the law of the vital few, and the principle of factor sparsity) states that, for many events, roughly 80% of the effects come from 20% of the causes

I saw couple of articles which mention Pareto principle in the context that you should keep (continue doing) just 20% of activities and still you will get 80% of results.

Two important notes on the pareto priciple :

1. It it works only if events are independent.

2. It works only if resulting effect is measurable.

As example, some hypothetical software engineer have following activities:

– develop software

– research

– discuss what needs to be done

– break down complex tasks to simple tasks

– setting up build envinronment

– defining practices

– mentoring junior developers

In the case, if I will eliminate everything what doesn’t produce a product directly than most likely it will cause:

a) a jump in what we measure (as example lines of code)

b) enormous overall decrease in company productivity

P.S. I am all for elimination of unproductive tasks. However, I am against elimination of 80% tasks just for the sake of elimination.

And couple of interesting links:

Setting up Jenkins on Amazon EC2

Handwriting vs Typing