Blog

PROGRAMMING METHODOLOGIES

XP:

With regard to extreme programming, the proverb says – “safe thing will not be called extreme.” Short cycles “Delivery” – is extreme, yes, but how justified? It’s one thing if the release takes place every two weeks or once a month, but then there are also extreme. For example, I know of one company geymdev where release occurs almost every evening. Whether they have a very suspicious client, whether they want to encourage employees every day to push your work to be seen who is working on what – it is difficult to say. And every day they release one person – the build-engineer who assembles. And programmers, of course, for half a day engaged in checking your code, which will go into production in the evening. The customer is satisfied – he real-time picture of the situation on the project and working code. But how much fuss made while programmers and testers? Personally, I would prefer to bring one once heavy bucket of water than a hundred times to fetch water with a cup in his hand.

TDD:

It is in our project was more nominal. That is, we first wrote functional and tests it, and only then covered his tests. I never used to think and work according to the principles of TDD, and never start with a test, it’s hard to judge the positive and negative aspects of TDD. I can only assume that the truth, as always, lies somewhere in the middle. But for us, the green youths, writing tests, it was a joy, especially when the lights up in green stripe.

Pair programming:

Pair programming can bring a joy. Firstly, the two of us to think quickly, and a second pair of eyes quite effectively catches spelling and logic errors in the code. Secondly, there is no better way to pull a person in programming than to put him in a pair with a more experienced developer and teach him to think differently. We are pleased to use this opportunity to learn from each other, because if it were not for Agile and XP, the authorities would look at us as parasites. But is it for the pair programming so be sure to adopt XP?

Once when I was visiting some big IT company of one friend of mine, I was surprised to find that no one there to pray for Agile. Moreover, the development was carried out in a classic Waterfall. At the same time, I regularly saw cases of pair programming. Guys do not hesitate to anybody, and our wise heads on the contrary encourage work in tandem. So it is not necessary to blindly follow the popular software development methodologies, when you can take for yourself only the most useful and necessary.

Agile almost synonymous with “burn out”

But week change for months, and we began to feel the a “burnout.” The fact is that no matter how perfect was no methodology – will always come out unplanned bugs that require more time than planned. To mend these holes and on Monday to look as if you have everything perfectly, had to work on the weekends. Almost daily overtimes were not even discussed – everyone thought about the fact that he would have to speak the next day on SCRUM-rally. And the situation was such that no one wanted to look at a meeting of “wimp.” Therefore, each trying to do more in the evening and arrive at work early to catch 11 to finish something and say something in the spirit – “This functionality is ready, but it needs to be tested” or “The new service works, but I did not have time check it completely. “And it sounds like good – something that works, something done, something works, there was only a trifle, nonsense – testing.

We like going to “likes” from customers. They liked the fact that we have the case of disputes and turns. We, being green students caught them nodding their approval, and inspired to work longer, bigger, better. But in this pursuit of the words “I did it” and “it works” is always hidden and something else – a lot of tails, and accumulate due to stress fatigue eternal deadlines. Almost never is no way that you can catch your breath and work normally. Tomorrow rally Friday release. So the months passed, until the project finally ended and we got out of the Agile-needle.

And although I have met in the future Agile and less fanatical form, my friends and I came to the conclusion that Agile – it’s actually protein Wheel enterprise which focuses primarily on the client, thus forcing their employees in regular cycles tedious “Delivery” . Anyway, I made a discount on their personal satiety this methodology successfully forgotten about Agile for several years. Until yesterday.

Fly in the ointment in the form of 10 minutes SCRUM-rally

Yesterday I met another my fellow programmer – the developer of one of the Kiev IT-companies, which, although it did not drink alcohol, but he was in a depressed state. I began to question him about life and work. It turned out that everything in life is good. At work, too, everything is good. Except for one thing. And then I heard a long-forgotten word «Agile». Anton – very sociable young man, still a student, with an excellent job with their work. From what it depressing Agile? Why is he not happy working as could? It turns out that in the case of banal meetings. But how can a mere 10-minute rally SCRUM-programmer can poison your life?

Maybe he is only heightened sense of rationality? What if he realizes that the rallies – as a small theater where everyone plays a role? What if, like me, does not like to participate in this race, “I have done more than anyone else” and “I’m the only one of the team who implemented such a complex functional” (especially if it does not always succeed)? Maybe the point is that there are no meetings scheduled daily, without which – absolutely nothing. After all, everyone understands this. SCRUM-rallies are more like a bureaucratic ritual than a necessity. For show. To meetings with clients proudly say that, they say, “We have everything in melted chocolate – according to the canons Agile and SCRUM». Maybe this whole Agile exists in order to keep a tight rein on the staff, to push them out of juice and drink their clients? I would like to believe that there are more humane ways to raise productivity.

Therefore interested in your opinion:

Do you like Agile? How effective is this approach to development?

How do you feel about SCRUM-rallies?

What is the methodology you would use (or use) in your startup?