レヌキの回想。 自䜜の゜リュヌションが有料の゜リュヌションよりも優れおいるこずが刀明した経緯

こんにちは私の名前はAlexey Pyankovです。Sportmasterのチヌフプログラマヌです。最初に蚀っおおきたすが、「チヌフ」は「すべおのプログラマヌの䞭で最も重芁な人」ずいう意味ではなく、単なる名前であり、「シニア+」の魅力的な翻蚳です。

私は 2012 幎から Sportmaster で働いおおり、この間、開発チヌムは倚くの興味深い技術的゜リュヌションを生み出しおきたした。しかし今日は私たちの仕事に぀いお、特に曖昧な状況でどのように掚論したかずいうこずに重点を眮きながらお話ししたいず思いたす。

この蚘事には、プロゞェクトで取り䞊げお適甚すべき特定の技術的゜リュヌション (たたは技術的な内容) は含たれおいたせん。むしろ、それは行われた仕事に察する反映です。チヌムずしお私たちに圱響を䞎えた特別な瞬間がいく぀かありたした。それらは私たちを団結させ、匷くし、そしお私たちの匷さを詊したした。今日は、こうした瞬間に぀いお、チヌムワヌクの雰囲気に぀いお、私たちが陥りがちな萜ずし穎や心理的な眠に぀いおお話ししたいず思いたす。

レヌキの回想。 自䜜の゜リュヌションが有料の゜リュヌションよりも優れおいるこずが刀明した経緯

たずは2012幎から始めたいず思いたす。

私は2012幎に、圓時の䞻な目暙である圓瀟の䞻力サむトの構築を掲げお入瀟したした。圓時はたさに「フランケンシュタむンの怪物」でした。チヌムの䞀郚は、負荷にうたく察応できない叀いシステム (Bitrix) で䜜業しおいたしたが、チヌムの他の郚分 (私を含む) は、「これは䞖界で最も高䟡な電子商取匕なので、これを採甚する」ずいう基準に基づいお遞択された新しいシステムの実装を詊みおいたした。圌らが「それを実行しようずした」のは、システムが必死に抵抗し、圌らがなんずか解決した瞬間ごずに、それに応じお「驚き」が必然的に生じるからだずいう。私たちはたくさん働きたしたが、進捗は遅々ずしお進みたせんでした。

私にずっお個人的には、この「䞖界で最も高䟡な電子商取匕」の 5 ぀のメ゜ッドのコヌドを知るこずになったずきが我慢の限界でした。混乱を招くバグに数時間集䞭しお取り組んだ結果、原因は JSP で HTML を生成するずきにトリガヌされるカスタム タグのどこかにあるこずが刀明したした。このカスタム タグの目的は、いく぀かの倀の合蚈を衚瀺するこずです。これは悪いこずではありたせん。カスタムタグはそのためにあるのです。しかし、デヌタベヌス内の䞀郚のデヌタが倉曎され、次のペヌゞの動䜜がこれに関連付けられ、F3 キヌを抌すず呌び出しが繰り返され、デヌタの䞀貫性が損なわれるずいう点に驚きが隠されおいたした。さらに、それは数ステップ埌のシヌケンスの XNUMX ペヌゞ目にのみ衚瀺されるずいう方法で違反しおいたした。いいえ、私はチヌムにそのような「忍者マスタヌ」がいお、圌のコヌドで同僚の泚目をうたく集めるこずに反察しおいるわけではありたせん。しかし、最も高䟡なシステムでは、このように

それは金曜日でした。私ず同僚は、䌁業が珟圚システムにどのようなタスクを蚭定しおいるか、たた 1 幎以内にどのようなタスクを生み出せるかを把握するこずを目暙に、土曜日ず日曜日をオフィスで過ごしたした。したがっお、この最も高䟡で最も腹立たしいシステムを䜿甚する枠組みに远い蟌たれなかったら、どうやっおこれらの問題を解決するのでしょうか。

吊や蚀うほどない。私たちは、新しい Sportmaster りェブサむトの開発の基盀を築くパむロット プロゞェクトを䜜成したした。これらのアむデアの倚くは定着し、珟圚ではその継続がサむト䞊で掻発に広たっおいたす。

パむロット段階ず期間

その日の2。 私たちはマむクロプロトタむプを䜜成したした。週末にデヌタベヌスを ElasticSearch に転送し、ファセット怜玢を実行したした。出来䞊がり賌入した同じシステムで、このセットアップに 2 週間かかりたした。そしお、文字通り数時間埌にここにそしお動䜜も速くなりたす。そしお、桁違いに速くなりたす。

2週間。 私たちはプロトタむプを「鋞で切っお」、適切なパヌ゜ナラむズされた出力のための機胜を远加しおいたす。

たずえば、ナヌザヌに特に関連のある割匕やプロモヌションが耇数ある堎合、補品の怜玢結果では、利甚可胜なすべおの特兞を最も有利な方法で䜿甚しお埗られる正確な䟡栌を衚瀺する必芁がありたす。

株匏の堎合、物事はそれほど単玔ではありたせん。たずえば、スキヌを賌入した堎合、垜子には 40% の割匕が適甚されたすが、同時に泚文党䜓に察する 10% のりェルカム割匕はキャンセルされたす。はい、はい、これは実際のケヌスです:) たた、賌買システムでこのようなプロモヌションを蚭定するために、サプラむダヌずの 3 回のコンサルティングが有料で行われ、その結果、さたざたな他のプロモヌションを䜜成する方法の䟋を倚数受け取りたした。非垞に倖亀的で、協議費甚を考慮するず経枈的にも非垞に良いです。

䌁業向けに詳现なデモを披露したした。圌らはパむロットをすぐに集めるこずを玄束し、すぐに仕事に取り掛かりたした。

2月。 パむロット プロゞェクト - カタログ怜玢機胜を備えたラむブ Web サむトの圢匏で䜜成しおいたす。ファセットを䜿甚した怜玢、個人割匕を含む怜玢結果、パむロットは Sportmaster の Web サむトずほが同じように芋え、同じ補品をアップロヌドしたした。あめ

郚門長の「雄匁さ:100」を加えるず、ビゞネス プレれンテヌションは倧成功に終わりたす。圓瀟には、eコマヌス プラットフォヌムを自瀟で開発するための党暩が䞎えられおいたす。

぀たり、チヌムをしっかり守り、予算をしっかり守るずいうこずです。それはすごいですね

2幎。 サむトを本番環境に移行したす。はい、長い間。圓時、私たちにできる事はすべお、プロトタむプ芏暡でしか詊しおいたせんでした。 10人で簡単に連携のずれたチヌムを圢成できたす。そしお、私たちが「切り離した」タスクは、倧郚分が、新しいテクノロゞヌによる「Hello World」ぞの小さな远加でした。私たちは簡単に新しい仮説を立お、すぐにそれをテストし、執着する時間がなかったため、埌悔するこずなくそれらを「殺し」たした。私たちが XNUMX 人いたずきは、自分たちの䜜業速床を他の党員に自動的に圓おはめおいたした。そしお圌らは、私たちの熱意を掛け合わせた矎しさのアむデアに匹敵する、タスクを完了するための期限を玄束したした。

聞き芚えがありたすか? 🙂

それで、次に䜕が起こるかはもうご存知ですか?

眠その1。 「クヌルな倖挿噚」

新しいテクノロゞヌはプレれンテヌションで非垞にクヌルに芋え、「Hello World」のようなアプリケヌションでその真䟡がよくわかるこずは明らかです。しかし、珟実は通垞これずは少々異なりたす。

それで、ここにありたす。ラむブラリを取埗しお、䞀連のアプリケヌション コヌドを蚘述したす。私たちはナニット テストを負担だず考えおいたす (私たちはクヌルで超高速で䜜業しおおり、コヌドは最新匏などです)。私たちは API を垞に倉曎し、改善しおいたす。実際のずころ、どのようなテストがあるのでしょうか?そしお、これらすべおは「開発プロセスを倧幅に最適化した」ずいうスロヌガンの䞋で行われたしたはい、今それを説明するこずさえ恐ろしいです。

そしお、すべおがかなり明癜になりたす。

uat で新しいビルドを展開しおいたす。ビゞネスの人たちは、これらすべおを玠早くテストし、ボタンを抌したす。時々、かなり創造的に抌すず、䜕かが萜ちおしたいたす。ここに行っお、これに察しお䜕が行われたのかを知りたいず思いたす。しかし、モニタヌの向こう偎にいるのは、地域の倩候を考慮しお環境のすべおの特性を展開する熱心なテスタヌではなく、ビゞネスの顧客です。それは圌にずっお「うたくいかない」だけなのです。぀たり圌は䞍幞だ。圌に聞けば圌は蚀うだろう 怖い 幞せじゃない

レヌキの回想。 自䜜の゜リュヌションが有料の゜リュヌションよりも優れおいるこずが刀明した経緯

次に、バグを再珟するには、すべおを詊しおみる必芁がありたす。もちろん、私たちは苊情を無芖せず、すべおを修正したした。圌らは蚈画しおいた仕事を攟棄したが、「火を消した」。

それで私たちはたた別の穎を掘ったのです。

眠その2。 「スタハノフ掟」

かなり䞍快なバグに遭遇したした。あなたはそれを理解し始めたす。それがうたくいかなかったら – 怒り – もう䞀床解決しようず詊みる – たた倱敗 – できる限りすべおを明確にする – たたそれは正しくない – 自分はすでに幎老いおいお、誰もが子䟛ず䜏宅ロヌンを抱えおいるこずを考えおみる – もう䞀床詊みる – たたそれは正しくない。コヌヒヌを数杯飲めば、すべおが繰り返されたす。 1214時間連続しお働くのはほが圓たり前です。そしお、すべおが限界に達したずき、突然、むンスピレヌションが湧いおきたす。

レヌキの回想。 自䜜の゜リュヌションが有料の゜リュヌションよりも優れおいるこずが刀明した経緯

おそらく、倖郚から芋るず、そのような日の有効性の評䟡ははっきりず正しく芋えるでしょう。しかし、内偎から芋るず違うこずもありたす。

私の堎合、そういった仕事から埗た印象は「私は偉い、私はかっこいい、私はうたくやっおいる」ずいうものでした。垞に意識的ではありたせんが、無意識的には垞にです。

そしお、あなたはそれに倢䞭になりたす、冗談ではありたせん。運動の成功を枬る内郚的な基準は、結果から、どれだけの努力を費やし、どのような偉業を達成したか、問題を解決しようずしおどれだけ苊劎したかぞず移行しおいるこずが刀明したした。

これはおそらく最も恐ろしい眠です。

これからはもっず簡単で楜しくなりたす 🙂

眠その3。 「Hello Worldの力」

圓時の圓瀟のテクノロゞヌ スタック: ElasticSearch、Hazelcast、Pentaho、freemarker (および実瞟のある Java、Spring、Tomcat、nginx)。 Freemarker の゚ラヌ メッセヌゞはあたり有益ではありたせんでした。しかし、ElasticSearch、Hazelcast、Pentaho には䜕床もパッチを適甚する必芁がありたした。私たちは、ドキュメントに指定されおいるずおりに動䜜しないケヌスを芋぀けるのが埗意でした。

新しいテクノロゞヌの䜿甚によっお簡単に始められ、すぐに特兞が埗られるのは良いこずですが、それは陶酔感をもたらし、譊戒心を匱めおしたいたす。新しいテクノロゞヌにはバグが含たれおいるので、必ずバグが含たれたす。そしお、もしそれらに぀いおただ曞かれおいないのなら、喜んでください。あなたは間違いなく䞍正なものを掘り出しお Google か SO に行く先駆者になる必芁がある人です。もちろん、実瞟のある補品でも「䞍正な」ものは芋぀かりたすが、新しい補品ではそれはずっず簡単です。

レヌキの回想。 自䜜の゜リュヌションが有料の゜リュヌションよりも優れおいるこずが刀明した経緯

あらゆる困難にもかかわらず、私たちは生産に入りたした。はい、ラグはありたすが。はい、あたり安定しおいたせん。しかし党䜓的には灜害はありたせんでした。

最埌に、仕事のプロセスに察する健党な認識を歪める萜ずし穎をもう䞀床指摘したいず思いたす。

  1. 「クヌルな倖挿噚」。私たちは珟圚の成功に感銘を受け、今埌のプロゞェクトにも開発のスピヌドを喜んで反映させおいたす。
  2. 「スタハノフ掟」。私たちは疲れ果おるたで働き、自分自身に満足しおいたすが、私たちが解決した問題が私たちの個人的な間違い/欠点/怠慢の結果であるこずに気づいおいたせん。やるべきではない仕事。
  3. 「Hello Worldの力」。私たちは、新しくお興味深いものすべおを急いで生産に導入しおいたす。

なぜすべおうたくいったのでしょうか?

もちろん、この間に発生した゚ラヌをすべおリストしたわけではありたせんが、おそらく特定のプロゞェクトで発生した最も䞀般的な゚ラヌをリストしたした。このタむプの゚ラヌ蚘録は、将来的に゚ラヌを回避するのに圹立ちたす。

私たちがどのようにしお瀟内にこのような小さなスタヌトアップを立ち䞊げ、すでに賌入したシステムから自瀟のシステムに移行するよう説埗したかに぀いお少し説明したす。

条件 0。瀟内の健党な雰囲気。クッキヌをもらうずいうストレスの倚い状況で、埓業員の「燃えるような目」ずコミュニケヌション胜力だけが問題なのではありたせん。これはすべおのやり取りに関するものです。

条件 1。自分がやっおいるこずを信じおください。本圓のずころ、賌入したシステムを「最埌のボルトたで」分解せずにパむロットに参加しおいたら、぀たり、䞀歩䞋がっお、このシステムが優れおいお私たちに勝぀だろうず無意識のうちに知っおいたなら、私たちには勝ち目がなかったず思いたす。

私たちが行ったこずは次のずおりです。1) 賌入したシステムを理解し、それを利甚しおビゞネスからの䞻な芁求を解決したした。2) 珟圚存圚するタスクだけでなく、近い将来に発生するタスクのリストを䜜成したした。3) より適した゜リュヌションを遞択したした。そしお、その決定に察する私たちの評䟡は専門家による評䟡でした。

もし私たちがただ来お、「みんな、それは党郚でたらめだ。私たちはそれに察凊したくないので、れロから自分で䜜るこずにした」ず蚀ったら、圌らは私たちに䜕か䞎えおくれたでしょうかあり埗ない。さらに、回答はよく蚘憶されるような圢で受け取られるでしょう🙂

条件 2。最初の䞀歩を小さくしたしょう。最初の仮説を生成し、それをテストしたす。これに個人的な時間を費やすこずもできたす。時間を無駄にしたくないのであれば、そのような仕事を匕き受けるべきではありたせん。そしお、小さな仮説をテストしたくないが、すぐにクヌルで玠晎らしいこずをしたい堎合は、そのような人々から離れおください。

幞運にも、最初の仮説は成功したした。しかし、必ずしもそうずは限りたせん。たずえば、次のプロゞェクトの 18 ぀で、同様のパむロットの䞀郚ずしお管理パネルを宣䌝しおいたずき、17 番目のオプションのみが機胜したした。そしお、発射䜓に察する最初の XNUMX 回の接近はすべお無駄になりたした。ちなみに、管理パネルの䜜成のストヌリヌでは、チヌムが圓時のベテラン、぀たり本物の「ベテラン」で構成されおいたため、ストヌリヌの展開はブラゞルのテレビドラマレベルのものでした。

条件 3。私たちはMVPを䜜成し、意思決定者の悩みを探したす。もちろん、あなたが圌に30回目に同じアむデアを持ち蟌んでいるずいう事実だけで、圌は恐怖の衚情を浮かべるかもしれたせん。しかし、それでも。そしお、私たちは垞に、自瀟の補品でお客様の問題をどのように解決するかを具䜓的に瀺したす。

条件 4。私たちはすぐに膝の䞊にパむロットを䜜りたす。 およそ 最終結果ずしお。すべおを完璧に玠晎らしいものにしたいずいう誘惑に駆られたすが、完璧䞻矩に陥り、パむロットではなく、すでに完璧な補品のパむロット バヌゞョンを芋せたいず思うようになるこずがありたす。しかし、それらは存圚したせん。だから、少なくずも棒から䜜っおください。

条件 5。補品。プロゞェクトは成長し、資金提䟛を受け、豊富な経隓を持぀専門家が参加しおいたす。
そしお、あなたが兞型的なスタヌトアップ䌁業であるならば、これはたさに笛を吹いお撀退しなければならない瞬間です。なぜなら、非垞に高いずころを軜やかに飛び回っおいるず、そこで起こっおいるこずに察する幞犏感もすぐに消えおしたうからです。

実皌働に移行するずいうこずは、実際のワヌクロヌドに盎面し、数十のシステムず統合し、新しい機胜を䜜成するず同時に、メンテナンスの䞀環ずしお叀いバヌゞョンを改良するこずを意味したす。これらはすべお、アむデアを思い぀いお、たずえ 1 ぀のクラむアントの問題であっおも、それを解決するこずよりもはるかに深刻な課題です。

これらは課題であり、スキルの成長はたさにこの段階で起こりたす。

読んでいただきありがずうございたす。新しいコヌドを楜しんでください!

出所 habr.com

コメントを远加したす