📜 ⬆️ ⬇️

Agile in small teams - how beautiful it is to break your neck

I was cheerfully broadcasting on an Agile affiliate program in Kiev in small teams. But ... did not announce, but only warmed up. I would like, nevertheless, to finish the story and tell, finally, the truth about the uterus about how beautifully Agile still breaks the necks of developers and managers! Pouring coffee and diving under the cat, it will be very fun.

Programming - only for smart

How tired to listen from technically incompetent "humanities" and housewives reasoning about programming available for everyone, including rusted teapots, through the connection of cubes. This is utter nonsense. Responsible for programming is the left hemisphere, which in the era of Facebook, coffee and mutual likes and discussion of animals in social networks, is gradually atrophied by modern humanoids. Want to dramatically increase the motivation of the programmer? Show him how the project manager solves an elementary task: calculates the extremes and exaggerations of the function by finding the derivatives of the first and second order, filling the desktop with the blood dripping from the ears and publishing the infrasound of inhuman overvoltage!

And although there have been cases in the history of attempts at mass learning of “ordinary” people by programming - without a thorough knowledge of the algorithms, subtleties of the programming language and operating system features, the maximum you can count on is getting a front-end team of “developers” / layout designers (specifically in quotes), which do not need to know too much, except as "to look beautiful."
')
And the worst thing that can happen here is to work with unreal programmers for a long time and successfully on simple primitive projects that do not require deep knowledge, and then get involved in an interesting, complex project with Computer Science impurity - the fun is just awesome: everyone will hang on StackOverflow and start reinvent ... algorithms and wonder what TCP is different from IP!

Details are as important as ever

Unfortunately, in order to program correctly, you need to know the programming language deeply and widely. If these are simple dynamic languages ​​like Python, Ruby, PHP, JavaScript, then there is really nothing to know, there are practically no subtleties and sudden difficulties, and you can mold that is molded and it will somehow work until a certain point.

But in order to write on “real” industrial PL, such as C ++, Java or C #, intensive preparation is required for a couple of years and reading and understanding of thick books and all the subtleties of the language. But this is only the beginning - it is important to learn how to program in the OO paradigm - and this is another three years and reading another stack of little books on design patterns.

If it’s boring, you can dilute the programmer’s life by applying functional sweets on the verge of lambda-like distortions and closures - but you can always give up on this and return to healthy asceticism and Orthodox healthy lifestyles.

Design - otherwise it just can't

Do you really believe fairy tales that you can spread emotional nonsense on the pieces of paper, and on the reverse side write the definition of done in the style of "fi / not fi" and not design? Yes, you, brother, crazy. Any more or less complex system requires brainwashing and consumption of a couple dozen cups of coffee at the board. The logical scheme of entities, roles, a formal description of the algorithms should be made with complete algebraic ruthlessness. Here, just, knowledge of UML is useful. Otherwise, you will look like a monkey, with a disdain for glancing at the switchboard with wires with the thought: “Garbage is a question, everything is clear, the main thing is that I am so beautiful.” Therefore, do not allow stupidity and laziness to capture the brain of the project team and always strictly formalize complex things.

Programmers - no need to manage

Where did managers come from in software projects? And everything is simple - programmers are often so demonically intelligent that they can send a project past the goal to the field of aesthetics and perfection, spitting on the timing and greedy client - just for ideological reasons, simply because of the love of beauty. Therefore, developers rather need not managers - but educators and inspirers who can say nice things about the code, about the client, about life, and in time buy cookies and coffee.

Still do not know the most favorite film from programmers? Here he is - be sure to arrange a weekly viewing, the movie is great motivating, especially before meeting with the client!

But software projects are not only code and programmers with support staff, they are also business. And in the presence of especially hysterical aunties-investors, a political abstraction arises, such as time and budget. This is what generates a class of IT-managers. Unfortunately, for an efficient and lean management team - the manager, hand on heart, you need to be technically savvy, delve into the details of the project and assess the risks. Feeling a competent "leader", the team intuitively helps him at least somehow, at least rudely and not exactly, but according to his conscience - try to assess the risks and estimate the estimates and time spent in order to somehow calm the political hysteria at higher levels of abstraction. And this often leads to success.

But if the manager deliberately “turns on the little fool”, puts on “rose-colored glasses” and begins to publicly play the leaves of emotional nonsense ( ProductBacklog ), boards ( Burndown ), card games ( PlanningPoker ) and smile at the Retrospective so that you expect this to happen kaming -aut , then, most likely, the project is doomed and nothing can be done.

"From the chicken - cook and fool"

Therefore - relax and do not try to explore and distinguish the " waterfall " from RUP , and Scrum from Kanban - this will not help. Focus on finding real programmers! The team itself will choose the most appropriate methodology for the project, the number of testers, analysts and, most importantly, the team adapting the client's emotional emanations into strict formalization and algorithms - all sorts of managers of various stripes and teach them how to work.

Paradox, but having an adequate team of programmers, it doesn't matter what methodology to choose - believe me, any methodology, even the most “scary and awful” under the name “without TK” - will lead the project to success and take off on time with excellent technical quality. In principle, you can even become a wizard of the emerald city - and the project will still fly. And vice versa - typing "plumbers" on the ad, even the most correct, the only correct methodology in the world - the waterfall will not help you. People get confused in their own code and documentation to such an extent that they will have to recruit several cascades of testers checking the bugs of the previous cascade (in the period).

Agile - for special forces

It is important to understand very well that Agile is now simply beneficial for management to protect against "hysterical investors" and therefore is so popular - and turns the development team into a McDonald's similarity with theoretical interchangeability, transparency and ... also theoretical, alienability. One can immediately see how well everything is controlled: there are no clever men, everyone is busy, tsiferki grow, people run - but this is all, of course, complete nonsense.

Agile, in its essence, is, so to speak, a methodology for cooperation between developers of the highest category of professionalism, often under the influence of soft drugs and sparkling from their own true perfection - with a client in an effort to make a cool and cool decision, preferably on time (for aunts not to hysteria) , but which you can be proud of! Everything, this is Agile - do you feel the level and the difference with what is served today under a similar sauce? :-) It becomes obvious that typing young people and sticking with coffee (or smoking something), reading a couple of emotional books about iterations and retrospectives and how it all became good - you just probably break your neck and team, and so beautifully and effectively that you will hiccup for the rest of your life.

Never forget the story of the advent of XP and the fate of the girl-product owner, which Kent Beck with insane customers brought to the paralysis and nervous facial tic. But yes, they wrote interesting books ... :-)

Code quality and team cohesion above all

Remember that the most important thing in a software project that real programmers write is the beauty and harmony of the program code! It is he who attracts people to himself, motivates them to invest time and energy in their development. The remaining components are derivatives.

And what is the beauty of software code? It:


The person opens the code ... and it is pleasant for him to develop it further, his mood rises! And sometimes it happens that you open the code and hardly restrain from vomiting - this is a fact of life.

And no matter what programming language your Jedi silicon write. You can write great in JavaScript, introducing readers to a state of intellectual ecstasy. And you can put on a stream base porn on java and drive a terrible depresnyak, scaring away not only rats, but also aliens disguised as humans ...

findings

PS: In secret, they say there is a way to fly all the same in any case - to work on a strict waterfall with TK, unit tests, the most severe discipline and human sacrifices to Cthulhu. But if it's lucky. Otherwise, you will fall into the harsh atmosphere of the First World War and will be engaged in statistics - forecasting and counting personnel losses from kicking horses and waging an active struggle against cannibalism. Good luck!

Source: https://habr.com/ru/post/321098/


All Articles