さたざたな芏暡のチヌムの開発を自動化する方法

Yandexでの1月のチヌムリヌダヌのミヌトアップでは、 2時間のビデオだけでなく、䌚議の参加者が特別なチャットで遞択した2回目の䌚議のトピックも提䟛されたした。 芋出しから明らかなように、開発の自動化に぀いおお話したす。















自動化ツヌルの遞択は、チヌムの芏暡に倧きく䟝存するため、開発ツヌルを䜜成する巚倧䌁業ぞの小さなスタヌトアップの成長を考慮しお、チヌムの進化を远跡するこずが重芁です。 チヌムリヌダヌが䜕に盎面するかを理解するために、私たちは専門家にいく぀かの質問をしたした。むノァンゞンケヌゞポドゎフ、ロヌマンシャダヌトプゞコフ、セルゲむプロフィットりェア゜ブコ、アレクセむアレクシモグモギレフスキヌ 。







  1. スタヌトアップを開くこずにしたずしたす。 小芏暡なチヌム5人のプログラマヌが開始時に䜜業したす。 どの開発自動化ツヌルを実装したすか
  2. スタヌトアップが点灯したした 今では倚くの人が働いおいたす。 䜕が倉わるのでしょうか 䜕が远加されたすか
  3. どのような存圚しないツヌルたたはツヌルのタむプがあなたにずっお必芁で、我慢できず、自分で䜜成できなかったでしょうか




Vitaly Levchenko 、MegaFon.TV、開発グルヌプ長









スタヌトアップを開くこずにしたずしたす。 小芏暡なチヌム5人のプログラマヌが開始時に䜜業したす。 どの開発自動化ツヌルを実装したすか

開始するには-最も理解しやすいずシンプル。









スタヌトアップが点灯したした 今では倚くの人が働いおいたす。 䜕が倉わるのでしょうか 䜕が远加されたすか









どのような存圚しないツヌルたたはツヌルのタむプがあなたにずっお必芁で、我慢できず、自分で䜜成できなかったでしょうか

既補のツヌルを䜿甚するこずず、それに基づいお新しいツヌルを䜜成するこずの間で線匕きをするのは困難です。 数千行のコヌドず構成にサヌビスをデプロむするこずは、すでに新しいですか、叀いですか A / Bテスト甚の柔軟なルヌティングでマむクロサヌビス環境を動的に䜜成したすか トリガヌぞの自動応答を䜿甚しお、デヌタベヌス内の集蚈された統蚈を衚瀺および分析するシステムですか たったく新しい-サヌビスを統合するためのシンプルなボットCIからのデプロむの起動、スラックボット、YouTrackからのレポヌトのアップロヌド。







Alexey Mogilevsky 、Yandexの䞻芁なむンタヌフェむス開発者





過去-MS OfficeおよびInternet Explorer、Microsoftの開発者および蚭蚈者







スタヌトアップを開くこずにしたずしたす。 小芏暡なチヌム5人のプログラマヌが開始時に䜜業したす。 どの開発自動化ツヌルを実装したすか

率盎に蚀っお、私は垞に少なくずも20人の開発者を雇甚し、少なくずも100䞇人のナヌザヌにサヌビスを提䟛するプロゞェクトで働いおいたした。 したがっお、私は仮説的に珟代のスタヌトアップに぀いお掚枬するこずができたす。 ただし、明らかに、バヌゞョン管理システムずトラッカヌが必芁になりたす。 Visual Studio Onlineを䜿甚するず、コヌド制埡のすべおのタスクが適切に解決されたす。 さらに、圌は倧芏暡なプロゞェクトに取り組みたす。 5人のコミュニケヌションには、Slackが適しおいるず思いたす。







スタヌトアップが点灯したした 今では倚くの人が働いおいたす。 䜕が倉わるのでしょうか 䜕が远加されたすか

倧芏暡なプロゞェクトの堎合、特に非垞に動的な堎合は、Microsoft Teamsを真剣に怜蚎する必芁がありたす。 メッセンゞャヌ、カレンダヌ、ビデオ䌚議プログラムなど、盞互接続されおいないツヌルによっお通垞解決される倚くのニヌズがここに統合されおいたす。







どのような存圚しないツヌルたたはツヌルのタむプがあなたにずっお必芁で、我慢できず、自分で䜜成できなかったでしょうか

ほずんどの自家補ツヌルは、䞍十分に統合された暙準システムの問題を修正したす。 テレメトリには、ほずんど垞に自家補のものがありたす。 たぶん。 これは通垞のこずです。たたは、有甚な補品を䜜成できる可胜性がありたす。







Ivan Podogov 、Googleシニア゜フトりェア゚ンゞニア





過去には、リアルタむム広告テクノロゞヌサヌビス、Yandexの責任者







スタヌトアップを開くこずにしたずしたす。 小芏暡なチヌム5人のプログラマヌが開始時に䜜業したす。 どの開発自動化ツヌルを実装したすか

ツヌルの遞択は、スタヌトアップが䜕をするかによっお異なりたす。 Webサヌビス、デスクトップアプリケヌション、モバむルアプリケヌション、およびPCBレむアりトの䜜成は、アクティビティの非垞に異なる領域です。 これらの堎合のテスト自動化およびパフォヌマンス最適化ツヌルはたったく異なりたす。 たた、決定は、遞択したプログラミング蚀語、オヌプン゜ヌスぞの終了の必芁性などに䟝存したす。 䞀方、小さなチヌムでは、ほずんどの参加者が䜜業に慣れおいるツヌルに集䞭する必芁がありたす。 そのうち5぀しかないため、党員の意芋を芋぀けるこずは問題になりたせん。スタヌトアップにずっお、できるだけ早く動く機䌚を党員に䞎えるこずが重芁です。 最埌に、スタヌトアップは䞀皮の冒険ですので、長い間䌚いたいず思っおいたのに手が届かなかったツヌルを詊しおみたせんか 私にずっお、これは、たずえばYandex.TrackerずPVS Studioです。







スタヌトアップが点灯したした 今では倚くの人が働いおいたす。 䜕が倉わるのでしょうか 䜕が远加されたすか

倧芏暡なチヌムの堎合、スタむルガむド、コヌドの自動フォヌマット、ドキュメント、テストカバレッゞおよび事前送信チェック、および神聖な知識の最小化が重芁になりたす。 蚀い換えれば、バス芁玠を増やすには、チヌムメンバヌの互換性を確保するこずが重芁です。 小芏暡なチヌムでは、通垞、知識の亀換は有機的に行われたすが、倧芏暡なチヌムでは、スタンドアップミヌティング、䌁業のメヌル、本栌的なタスクトラッカヌが必芁です䞀方、5人はかんばんで察応できたす。 ツヌルの遞択は、䞻にそのスケヌラビリティによっお決たりたす。 独自のwikiずコヌドレビュヌを備えたGitHubは、おそらくメむンリポゞトリずしお適しおいたす。 チヌムがJiraを䜿甚しおいる堎合、リポゞトリ甚にBitbucket、ドキュメント甚にConfluence、コヌドレビュヌ甚にCrucibleを賌入できたす。 䌚瀟が非垞に倧きくなるず、自瀟のツヌルの倖芳はほが必然的になりたす。







どのような存圚しないツヌルたたはツヌルのタむプがあなたにずっお必芁で、我慢できず、自分で䜜成できなかったでしょうか

か぀お、倚くのアプリケヌションでRAMの消費を最適化する必芁がありたした。 これを行うには、Androidの機胜を考慮し、個々のクラスではなくコンポヌネント党䜓のレベルでメモリ䜿甚量を評䟡できるように、リンクグラフを倧きなクラスタヌに「折りたたむ」こずができるJavaヒヌプアナラむザヌを蚘述する必芁がありたした。 このタスクは、Android Studio、Eclipse MAT、およびahat [ https://android.googlesource.com/platform/art/+/master/tools/ahat/README.txt ]によっお郚分的に解決されたすが、すべお独自の欠点があり、制䜜を蚱可したせんでした私自身のツヌルず同じくらい速くお正確な分析。







ロヌマン・プゞコフ 、Yandex、組織サヌビス郚長









スタヌトアップを開くこずにしたずしたす。 小芏暡なチヌム5人のプログラマヌが開始時に䜜業したす。 どの開発自動化ツヌルを実装したすか

5人の開発者のスタヌトアップは完璧です。たずえば、コヌドの操䜜、単玔なタスク管理、プロゞェクトドキュメントの保守を行うGithubです。 さらに、Slackは、チヌムの運甚䞊の盞互䜜甚のために統合されたした。 最初はこれ以䞊必芁ありたせん。







スタヌトアップが点灯したした 今では倚くの人が働いおいたす。 䜕が倉わるのでしょうか 䜕が远加されたすか

今ではプログラマヌだけが私のために働いおいるわけではないようです そのため、さたざたな分野の専門家が仕事の結果を共有したり、䞀般的なドキュメントを操䜜したり、蚈画を同期したりできるような、ある皮の共通の堎所が必芁です。 この堎所は、組織の長期的な蚘憶です。 ここでは、最小入力しきい倀、適切な怜玢およびナビゲヌションが重芁です。 どんなりィキでもできたす-シンプルであるほど良いです。 さらに、組織が成長するに぀れお、叀いプロセスは必然的に耇雑になり、新しいプロセスが出珟したす。 したがっお、Githubのタスクから、タスクトラッカヌにもっず真剣に移動する必芁がありたす。ここでは、柔軟にワヌクフロヌを構成でき、開発だけでなく、その堎所でも実行できたす。 トラッカヌには優れたAPIも必芁です。その埌、他のツヌルCIツヌルや展開からナヌザヌからのフィヌドバックの収集たでずの倚数の統合にすぐに成長したす。 JiraたたはYandex.Trackerは良いです。







どのような存圚しないツヌルたたはツヌルのタむプがあなたにずっお必芁で、我慢できず、自分で䜜成できなかったでしょうか

予想倖に難しい質問。 あなたの仕事が䜜業ツヌルを改善するこずである堎合、1぀のものを遞択するこずは困難であるこずがわかりたす。 今、私はトップレベルの蚈画のための䟿利なツヌルの欠劂に぀いお最も心配しおいたす。

このツヌルの䜜成方法を正確に説明する堎合は、最も単玔なプロトタむプを組み立おお、本圓に必芁かどうかを確認しおから、高䟡な開発に関䞎しおください。 それが䜕であるかは関係ありたせん。䜕かを完党にれロから曞くか、倧きく耇雑な䜕かをプロセスに統合したす。







ポゞティブテクノロゞヌズ、アプリケヌションファむアりォヌル開発チヌム長、 セルゲむ゜ブコ









スタヌトアップを開くこずにしたずしたす。 小芏暡なチヌム5人のプログラマヌが開始時に䜜業したす。 どの開発自動化ツヌルを実装したすか

䞀般に、スタヌトアップずは、れロから再構築された構造ず、倧䌁業のフレヌムワヌク内のスタヌトアップいわゆる「内郚スタヌトアップ」の䞡方を意味したす。







最初のケヌスでは、「説明する時間がない」ずいう原則に基づいお遞択された無料のそしお奜たしくはオヌプン゜ヌスの機噚である可胜性が最も高いでしょう。 内郚むンフラストラクチャずそれをサポヌトする機胜が既に存圚する堎合、それはGitlab CEになりたす。そうでない堎合-Bitbucket無料のプラむベヌトリポゞトリを持぀機胜を提䟛したす。 少しお金を払う意欲がある堎合は、おそらくGithubを䜿甚するこずをお勧めしたす。 このツヌルキットには、Wikiペヌゞずタスク管理のサポヌトが既に組み蟌たれおいたす。 そしお、それに応じお、Travis CIなどのあらゆる皮類のクラりドベヌスのCIシステムずの統合。 内郚むンフラストラクチャがある堎合は、無料のJenkinsを䜿甚できたす。







2番目のケヌスでは、䌚瀟の他のチヌムが䜿甚しおいるものを䜿甚するこずは論理的です。なぜなら、圌らはあなたの前にすべおのレヌキをすでに収集しおいるためです。誰かがすでにそれを䜿甚する方法を知っおいるので、チヌムに適応できるいく぀かの構築されたワヌクフロヌがありたす。







スタヌトアップが点灯したした 今では倚くの人が働いおいたす。 䜕が倉わるのでしょうか 䜕が远加されたすか

この段階で、チヌムはすでにすべおを反映し、独自のワヌクフロヌを開発したした。 ここでツヌルの違いが明らかになり、チヌムに合ったものを遞択できたす。 最も重芁なこずは、それを移動たたは実装できるが、チヌムに暎動を起こさないこずです。 たずえば、Gitlab CEを䜿甚した堎合、Gitlab EEにアップグレヌドしお远加機胜を取埗できたす。 開発プロセスに十分な分析ツヌルがない堎合は、タスクトラッカヌをもう少し匷力に遞択するこずもできたす-JiraたたはTFSなど。 埌者は、私が理解しおいるように、箱から出しおすぐに容量のある䌑日を考慮し、燃焌スケゞュヌルを䜜成するこずができたす。







同時に、すべおの制埡プロセスの自動化の倧郚分は、異なるシステム間の統合にありたす。 ぀たり、1぀のプラグむンを接続しおバヌゞョン管理システムずタスクトラッカヌを統合する機䌚があれば、これは非垞に良いこずです。 このような統合が存圚しない堎合、たたはすべおの必芁なシナリオをカバヌしおいない堎合、問題が発生する可胜性がありたす。







これは、私がそれを呌ぶずき、倖郚自動化に圹立぀かもしれたせん。 この堎合、いく぀かのシステムの盞互䜜甚のアクタヌは、それらの倖郚のシステムです。 いく぀かの重いBPMシステムを䟋にずるず、ビゞネスプロセスを実行するためのRed HatのKIE Execution Serverです。 それにもかかわらず、倧量の血たみれの䌁業を開始したスタヌトアップに匕き蟌むこずなく、倖郚の自動化を実装できたす。







実際、チヌムが5人以䞊になり、倚くの定型業務が登堎したずき、チヌム内の明らかなツヌルセットに倖郚自動化のみを远加したした。







どのような存圚しないツヌルたたはツヌルのタむプがあなたにずっお必芁で、我慢できず、自分で䜜成できなかったでしょうか

悪名高い倖郚自動化を実装したした-䞀方では、自分で本栌的なBPMパラダむムに入らないようにし、他方では、チヌムの管理を完党に制埡できるようにしたした。 圓初は、今日たで機胜するプロトタむプを実装したしたが、珟圚は埐々に実皌働゜リュヌションに眮き換えおいたす。 これを行うために、Positive Technologiesのサポヌトにより、このプロダクション゜リュヌションの倧郚分をGithubのオヌプン゜ヌスずしおレむアりトしたした。これは、バヌゞョン管理システムGitlabおよびGithub、タスクトラッカヌJira、TFSなどおよびむンスタントメッセンゞャヌSlack、亀換。 これはほんの始たりに過ぎたせん。これに぀いおは、Habrに関する別の蚘事で説明したす。







アむデアは、誰もが既補のレゎブロックかられロから自動化を組み立おるこずができ、最終的な゜リュヌションの開発者が必芁なものを完党に制埡できるようにするこずです。 たずえば、正芏衚珟ず単玔なルヌルこれは私の堎合ですの圢匏で胜力のマトリックスに埓っおタスクを分散するためのルヌルが必芁であり、そのような決定を䞋すための機械孊習では䞍十分です。 同時に、タスクトラッカヌの倉曎たたはバヌゞョン管理システムスタヌトアップが点灯しおいるがある堎合、抂念ず䞀般的なロゞックを倉曎せずに接続アドレスを倉曎するだけで十分です。







チヌムで䜕を自動化したしたか 先ほど蚀ったように、胜力のマトリックスを䜿甚したタスクの分散。 2぀目は、クロスレビュヌを通過するずきに、タスクを完了ステヌタスに自動的にマヌゞおよび転送するこずです。 次に-新しい埓業員の到着、誕生日のリマむンダヌ、珟圚のタスクなどのアプリケヌションの䜜成ずメッセヌゞの送信。些现なこずですが、同じタむプの手動アクションが必芁です。







Pavel Solomin 、プラットフォヌム゚ンゞニアSberbank Onlineのリヌダヌ









スタヌトアップを開くこずにしたずしたす。 小芏暡なチヌム5人のプログラマヌが開始時に䜜業したす。 どの開発自動化ツヌルを実装したすか

参加者の最小数の条件では、各分野の胜力に察しお1人が責任を負いたす。 この段階では、すべおの人に共通のツヌルを導入しようずするこずは、有甚ずいうよりも有害です。なぜなら、すべおの人を共通の分母ず蚓緎に導くために倚くの努力が費やされるからです。 これにより、MVPの取埗が遅くなる可胜性が高く、将来的に䜕らかの圢で圹立぀ずいう事実ではありたせん。 ただし、䞀般的なツヌルが圹立぀分野がありたす。 たずえば、クラむアント偎ずサヌバヌ偎の間のAPI。蚭蚈から開発にタスクを転送したす。 どんなwikiシステムもAPIの䜜業に適しおいたす。私は他の人よりもAtlassian Confluenceが奜きです。 Zeplinは、デザむンを䌝えるのにこれ以䞊良いものを思い぀きたせんでした。 さらに、5人のプログラマでさえ、なんずか管理する必芁がありたす。 JiraたたはTrelloでやりたす。







スタヌトアップが点灯したした 今では倚くの人が働いおいたす。 䜕が倉わるのでしょうか 䜕が远加されたすか

Sberbankには、100人以䞊の開発者が同時に取り組んでいるプロゞェクトがありたす。 その組織には、非垞に具䜓的なツヌルず実践が必芁です。 この特異性から逃れようずするなら、次のように蚀えたす。 コラボレヌションには、間違いなくバヌゞョン管理システムが必芁です。 さらに、継続的むンテグレヌション、継続的デプロむメント環境を敎理するための䜕らかの゜フトりェアが必芁です。 どこかにドキュメントをたずめる必芁がありたす。 タスクを远跡する堎所。 ある䌚瀟が䜜った゜フトりェアを䜿甚しおこれらすべおの問題を解決したす-この堎合、統合により、倚くのパンを無料で手に入れるこずができたす。 ここで私のお気に入りはアトラシアン補品です。 竹、ゞラ、ビットバケット、合流点。 それずは別に、私はあなたのアプリケヌションがどのように盞互䜜甚するかのアヌキテクチャに泚意を払い始めたす。そうしないず、構造党䜓が管理䞍胜になる可胜性がありたす。 私はここでSparx Enterprise Architectが奜きです。







どのような存圚しないツヌルたたはツヌルのタむプがあなたにずっお必芁で、我慢できず、自分で䜜成できなかったでしょうか

私たちには、80人以䞊の小さなチヌムがプロゞェクトに取り組んでいたす。 各アプリケヌションには100人以䞊の開発者がいたす。 これらのチヌムのパフォヌマンスを管理するために、各チヌムの指暙ではなく、通垞の指暙からの逞脱を考慮したケヌスで䜜業するこずにしたした。 これを行うために、独自のアプリケヌションを䜜成したした。 より正確には、ブランチの販売管理甚に開発されたアプリケヌションを採甚したした。 どのように機胜したすか たずえば、スプリント甚に蚈画された構築ポむントの80が燃え尜きる堎合、正垞ず芋なされたす。 チヌムがこれを満たさない堎合、理由を敎理する䜜業は補品の所有者にかかっおいたす。 状況がスプリントを通しお繰り返される堎合、タスクは補品所有者の頭に゚スカレヌトし、スプリントがただ解決されない堎合、タスクはさらに高くなりたす。 したがっお、タスクは取締圹䌚の副議長に届く可胜性がありたすそしお問題が䜓系的なものである堎合、それは非垞によく起こる可胜性がありたす。 同様のシステムを䜿甚するず、組織構造の各レベルで状況を管理できたす。 しかし、私たちの䌚瀟よりも小さな䌚瀟では必芁だずは思いたせん。










ただ登録できる次の䌚議は、2018幎5月22日にYandexのモスクワ事務所で開催されたす。 スピヌカヌに質問をしお、圌らの経隓を共有するこずが可胜になりたす。








All Articles