Foreword
It is no secret that properly built business processes are needed by all.
Individual citizens, departments and entire companies with holding companies run in circles and howl about the need for proper arrangement of all and all processes. Everything must be calculated, measured, planned and executed on time, within the strict budget limits. Metrics and KPI, predictability and transparency. Everywhere should be “implemented” Agile. Everyone should think in Lean categories. Everyone should be thinking about Business Value. And being awakened at night, instantly answer the question: “What is our user's LTV?”
Excellent, rational approach.
In software development, the trend of “not reinventing the bicycle” has long been firmly established.
')
Need to develop an installer for our mega product? Integrate with the external system? Develop a bunch of reports?
Do not be clever, take a box solution. You will save a lot of time, nerves, and, as a result, company money.
And if you multiply this by the tendency to reduce the average level of technical qualification of engineering personnel - this is a separate topic, tied to a many-year excess of demand over supply - then it turns out perfectly. Minute vape and drinking smoothies, you can build whole systems, simply integrating the finished blocks with the help of
bydlokod and such-and-such mother rapid prototyping.
Therefore - do not reinvent the wheel and do not be clever. Use ready-made, and attach smart
hands to a smart head where integration for some reason suddenly does not work.
Excellent, rational approach.
But the funny thing, as always, is what can happen at the junction of two distinct, rational principles. Let's try to consider an abstract example that favorably emphasizes the depth of this problem.
So, meet our heroes.
Anytime Rational Inc.
To the marrow of bones it is rational, it follows both principles. All over Agile, everywhere Scrum, every developer knows exactly what Business Value each his task has. All are concerned with improving efficiency, the overall happiness index and the profit of the organization.
Not a company, but a fairy tale. Any IT-business owner, looking at her, salivates. Solid candy.
After all, such excellent companies in the real world simply do not exist.
Somehow Someway Ltd
.
Well, here - the traditional mess. Engineers constantly persecute their engineering bikes in smoking rooms, love engineering tasks, and wanted to sneeze at User LIfetime Value. From time to time they reinvent bicycles, although they generally keep up with the trend of “re-using” third-party components.
In words at Scrum, and even there are iterations. In fact, - the development is conducted, as God put on the soul.
In short, - what could be there. Normal engineering company.
To simplify our spherical horse in a vacuum, - both companies are doing about the same thing, they have about the same tasks, and engineers and managers of about the same level work in them.
So, of course, does not happen, but the right approaches should, all other things being equal, show the advantages of Ratio over the Brownian motion of human matter, right?
So, in both companies at the grassroots level, in the process of working on a certain feature, an engineering problem arises. One of the components behaves unpredictably, the good old problem of “flowing abstractions” multiplied by the problem of integration, and the engineer working on the feature does not understand why this is happening.
Chronology of the problem
Day 1
At Anytime, a Rational engineer — say, Peter the Great — reports a problem that has arisen during the morning stand-up. Scrum master specifies how much time it may take to fix it. The engineer finds it difficult to answer and asks for a micro-print to study The owner of the product says that the feature is, in general, minor, and it cannot allocate more than two days. Scrum master laments that the overall speed of the team in this sprint will fall, but Peter allocates a micro-print.
In Somehow, Someway, in front of an engineer — for simplicity by Peter the Second — there is exactly the same problem.
At the stand-up he habitually ransacks: “today I continue to work on the TASK SM-134, no help is needed”. He does not really think about the meaning of his words. After all, his whole brain is absorbed in thinking about "this garbage, which occurs in a fucking module, written with curved downs from the Third Party Component Solutions."
At the next smoke break, he from afar asks a question to the leading systems analyst, Yaroslav the Wise from the adjacent department, and they slowly smoke for 20 minutes discussing the details. Jaroslav gives a couple of tips, but deep down he knows that they will not help Peter. Because Peter, of course, is a cool guy and all that, but Yaroslav would never trust the disassembler of Yaroslav.
Day 2
Anytime Rational
Peter the First is picking his problem for the second day. He understands that the micro-print will probably be a profan, and on the morning stand says that he needs help.
“Who do you need for this?” The master asks scrum sympathetically.
“Ideally, - Yaroslav the Wise of the adjacent department. He is a cool systems analyst, and this is just his profile, ”says Peter the First, already knowing the answer to this request.
“Oooh, Yaroslaaav ..” - the master grieves scream sadly, “you know, he is very busy with the most serious tasks that are very important for our company.”
“You have one more day,” says the product owner, “Let's see what happens on the results of the micro-print and make a decision.”
Somehow someway
Peter the Second at this time, unsuccessfully having tried everything that Yaroslav advised him, smokes pensively in a smoking-room.
“What is so gloomy?” - Ivan Timoz, who has come to smoke, is complacently interested.
“Yes, so ... one fucker here ..” - Peter is crumpling. He respects Ivan Vasilyevich, but he is afraid, and he does not really hurry to sign his inability to solve the problem.
“Well, well,” Ivan slyly grins, “I suppose, again, didn’t he take on the matter according to his qualifications?”
Ivan, laughing, is removed, and Peter, the humiliated, goes on poking around.
Day 3
Anytime Rational
“The microprint has not brought results,” says Peter the Great. “I did not manage to get to the source of the problem. It requires either the involvement of Yaroslav, or additional time to study. ”
“You have already been in two days already ...” - the product owner begins to boil, but the master skillfully intercepts the management of a potential conflict.
“As we agreed, a micro-print was conducted to study the problem, and now we need to make a decision. We either allocate additional time to study, or request assistance from the system development department, or escalate the problem and provide decision making to the upper management. ”
“And what are we going to escalate?” The displeased product owner mutters. “What is the cost of solving the problem? We haven't figured it out. ”
“Well, it means that we have two options left.” - the master scoffs at conciliatory smiles. “Will we ask for help or will we continue to sort it out ourselves?”
Everyone looks at Peter expectantly. He swallows nervously, but, being a staunch supporter of the ideals of Agile, honestly and openly reports that he needs help.
“Great.” The scrum master says, making a mark in Evernote. “I’ll find out from the systems development department when they can help us with this.”
“Peter, for now, switch to the next highest priority task. So, this is ours ... SM-135, if I'm not mistaken. ”
Someway somewhat
Peter the Second, habitually ransacking the phrase on duty, continues to reflect on the behavior of the module, recorded last night. However, Ivan interrupts his thinking.
“Peter, and how is your problem? Already decided? ”
“Um ... not yet, today I'll try a couple of approaches ..” - Peter’s eyes avoid Ivan’s attentive, squinting look.
“Well, well ..” - Ivan says without a smile.
Day 5
Anytime Rational
Peter the First is enthusiastically working on a new task. He understands that quite a bit of time is left before the codefreeze, but he wants to finish at least something in this sprint so that the team’s speed does not sag too much, and the release of the product came out with a good set of features.
Scrum Master is trying to coordinate a joint micro-print with the team of Yaroslav, but the priorities of their tasks are much higher, so the perspective looks rather bleak.
But Peter is pleased. Finally, you can at least for a while forget about this difficult problem, and bring real benefits to the team and the company as a whole.
Somewhat Somewhere
Peter the Second, continually swearing, sits at his desk, imperceptibly listens in the headphones to some heavy stuff and tries to figure out “what the fuck is going on inside this fucking garbage bin!”
The debugger is open on one screen, the disassembled code is on the other. Peter’s focused gaze is gradually filled with hopelessness, and the left eye is already beginning to twitch.
He does not notice that Yaroslav has been thoughtfully silent for ten minutes behind his back - as long as he finally does not pat Peter on the shoulder.
"BUT? What? What kind .. ”- Peter's head rips off. “Ah, Jaroslav ... what are you doing here?”
“Why, I’ve been thinking about your problem here at your leisure ... by the way, look, you should send your JNE here, otherwise you will not progress further.”
"Where? Ah, here it is ... and what will it give? Wow, how ... ”- Peter enters the stream again. “And what the fuck is this?”
“Curve work with registers. Let's try it like this .. ”- Yaroslav connects to it.
Day 10
Anytime Rational
“So, the speed of our team in this sprint fell by 3 story points. Given that the SM-134 feature was ultimately thrown out of the sprint, this is quite expected. By the way, Peter, you are well done, I did not expect that you will have time to realize the SM-135. ”- the scram master routinely conducted a retrospective when Yaroslav promptly flew into the room.
“Guys, I'm literally for a minute, sorry. The microprint is agreed, for three days we will allocate you Efim. He is a good systems analyst, for sure, you and Peter solve the problem successfully. Well, everything, I ran, sorry once again for interrupting your retro. ”
Peter the First bewilderedly blinks his eyes. Problem? Oh yes, that one, scary and complicated ... brrr ...
Somewhere someone
“Peter, what's wrong with your problem ??” Ivan asks ominously.
“Everything is fine, Ivan Vasilyevich. One small glitch remained, well, and then the code is licked. For three days I’ll manage it exactly. ”- Peter the Second calmly replies.
“I know your three days ..” Ivan grumbles. “Let's finish it faster, my management is already interested in why we are tightening this feature so much. Soon the vaseline bucket will have to be harvested! ”
“Yes, I know, Ivan Vasilyevich. Drag! ”Smiles Peter.
Day 13
Anytime Rational
“According to the results of the micro-print with Yefim, it turned out that half of the sprint would be needed to solve the problem. Or even a whole sprint. ”Peter the First is not quite confident. Together with Yefim, they poked around this problem for three full days, but they did not find a confident solution. - “There are a few blueprints ..”
“Basting, snapping!” - the owner of the product explodes, - “Where is the solution? Will you do it in just a week ?? ”
“So, colleagues, let's calm down.” - the scram master intervenes, reproachfully looking at the product owner. “Peter, I correctly understand that in half the sprint you may not be in time, but can you solve the problem for the whole sprint?”
“Yes, that's right.” - Peter answers, trying to speak confidently.
“This is all well and good, of course.” - Having calmed down a bit, the product owner reasons. “But are we ready to spend extra time on this feature? We have already spent time and energy. I think we need to escalate. The rationality of the extra cost personally seems to me unobvious. ”
“Okay, let's do it.” The master sums up the scrum.
Someone sometime
“Well, I'm almost done here. Everything works, only a subroutine would have to be combed. ”- Peter the Second reports. “Fortunately, the skills in C I pulled the boy off, the garbage remained there.”
“Well, that's great.” - Ivan smiles. “Is it necessary to brush something, or just really want to? Maybe it's better to finally close the feature? ”
“But what about my sense of beauty?” - Peter shows off, shaking hands in the air.
All engineers laugh together.
Day 17
Anytime Rational
“The management has come to the conclusion that it’s irrational to resume work on features at the moment. The Business Value is not so large as to invest additional resources in it, and even in terms it turns out that we don’t have time for the next release. ”- the product owner informs.
“Well, thank God.” A pleased Peter the First mutters under his breath. “You can forget like a bad dream.”
Sometime something
“Peter, your feature goes into release. Covered with tests? ”Ivan is interested.
“Well, so ... I should add more ..” - Peter II crumples.
“So add.” Ivan says weightily. “Everything went, we work.”
Total
Experienced developers know that the most complex problems arise at the junction of technologies and modules, with integration, where there are two different systems. At the same time, both systems separately can be excellent, - perfectly developed, perfectly working. But at the junction of two beautiful systems, ugly contradictions often arise.
The attentive reader will notice that in our history the problem of Anytime Rational arises at the junction of two perfectly working systems - sales and production.
So the next time you ask, “why, why didn’t they realize this obvious feature here ??”, or “what the hell does it work through such a deep ass ??” - remember that it can be a matter of flowing abstractions on the junction of two or more systems.
Although it may be, in a particular case you have met, it is simply a matter of the handles of bydlokoderov, which develop some kind of shit with the left heel.