Hacker News new | ask | show | jobs
by greatgib 2185 days ago
I agree with this point of view. In my opinion, one of the greatest fallacy of Scrum and some agile methods is:

"Another note on breaking down tasks into chunks"

This is the management trick of "divide and conquer".

But for real good dev, that is not a good development process.

Imagine you are an experienced dev and you need to refactor a 20 files low level code to change the way errors are returned:

If you were in an agile/scrum setup, it would be asked to do that file by file, function by function, problem/code change type by type code change. And possibly not break the rest so that there is something 'runnable' at least every week or some other people can work on another file/function.

But that does not make any sense for a great dev. What you would do if you were experienced is to know the overall direction but rework the code line by line progressively, fixing side things on the way and maybe regularly fixing in other files/functions pattern that are similars. And maybe at some point decide to change again something you did until the point where you achieve your goal.

In my mind, it works more like a path searching algorithm in action.

The scrum concept is probably good for the devops/web script kiddy devs, where you just change hundreds of individual small items without too much interdependance. For example, change the style of button, reorder blocks on a page, change the icons, increase the font size.

Also, something that makes great dev become average is this concept that every dev should be exchangeable and a commodity. Dev become workers on a factory production line where they have no value than to follow process and apply patterns.

They say "what if something happen to your autonomous great dev?" but this argument is not used for the rest of the intellectual society: you don't see 2 doctors at a time, 2 lawyers for your case, 2 CEO in the company, 2 main architects. This thinking is just applied to low level replaceable workers.

Normally, if you lose a great dev and you find another great dev, the new one should be able to understand the problem and the code in a short time and be operational quite fast.

One example we can easily see of efficient dev are the great open source projects. Most of them were not created and led by an army of dev clones but by a few efficient ones: linux, python, php ... In these cases, most of the time we don't consider people to be interchangeable. Some people are keys to topics/code/features and that leads to great dev. But in case of problem, there is almost always someone smart capable to take over after a short time.

2 comments

You know you've described the opposite of agile approach, right? "management", "file by file, function by function", "exchangeable and a commodity"... at least not what agile was ten years ago. Actually the points in favor of agile were:

* utilize persons strong points

* reduce management

* reduce burden

* improve working environment

I agree also with your point. The real agile as of the "Agile Manifesto" has the spirit of what is good dev in my previous message.

But was is used today as "agile", "agile in business", agile in real use, and especially Scrum is not what the Manifesto asked for, quite of the opposite in the end.

That is even why some of the creators of the agile manifesto backed off when they saw what it became.

In fact, at the moment a company or a people say "we will create an agile team here" (maybe with a specific process scrum/...), you know that it is failed. It should be like "we have experienced software engineers, we trust them to be autonomous and smart enough to do it how they individually want to be the most efficient/adequate. Also they have responsibility and their opinion is taken into account for business decisions"

I've seen it in work. It was very emotional when our Scrum Master left, we've got another one and he was great, but it has not felt same. This may be the biggest Scrum issue.

I've seen unreal Product Owner, it was so much pleasure to work with. Ever since I've found a joy in filling this niche if it was empty.

Yes, Agile Manifesto, Scrum is just some tools. It is like blaming axe [0] in Armenian cartoon.

[0] The Axe (1994), no speech https://www.youtube.com/watch?v=mA7H5KnyzJk

As a follow up, nothing in the Agile Manifesto says that the process is important to ensure that a "developers" is not essential and can easily be replaced:

"Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done."