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 smartHow 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 everUnfortunately, 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'tDo 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 manageWhere 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 forcesIt 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 allRemember 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:
- simplicity
- clarity
- conciseness
- sequence
- understanding what is happening “under the hood” and proper use of operating system capabilities and protocols
- extensibility or readiness for this
- documentation only where it is needed!
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- Don't bother with software development methodologies - that won't help
- Focus primarily on finding and hiring professional, real programmers and support staff (analysts, testers, managers of all stripes)
- If you managed to pick up an adequate team - let her choose the development methodology herself and know that with any methodology the project will most likely take off.
- If you did not manage to pick up an adequate team, it’s better to change your job, because you will most likely be overwhelmed by “hysterical aunty-investors” with political demands to give assessments and get to the deadlines. Or you will find yourself in a slowly falling and glowing airship with emotional leaves on the walls, morning Stand-ups for social -fools idiots, creating just that - but on time! Calculate the height, find the parachute and get ready to leave this demonic place before the start of the fireworks :-)
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!