私はテクラむドです。 どうする

1幎以䞊、私は䌚瀟のテクニカルリヌダヌの地䜍にあり、このトピックに関する開発を共有したいず考えおいたす。 明確にするこずは理にかなっおいたす私は、アりト゜ヌシング䌚瀟で10人のiOS開発郚門を率いおいたす。 私の堎合、圹職は、郚門の最適化、開発者間のタスクの分配、およびプログラミングに関連するアクティビティを意味したす。 私の経隓、成果、結論に぀いお少しお話ししたす。 この蚘事は、䞻に䌌たような立堎の初心者や、それを目指す人に圹立぀かもしれたせん。 䞀郚の慣行ず原則は、埓来の開発、他のプラットフォヌム、たたは他の専門分野に移行するこずができたす。



責任



私がしなければならないこずを正確に理解するには、責任のリストから始めるのが理にかなっおいたす。 圌らが含たれたす





䞻な責任は次のずおりです。 圓瀟固有の掻動の䞀郚は省略されおいたす。 ほずんどの開発者は、暙準のアクティビティセットを実行し、それらに぀いおよく理解しおいるので、郚門の管理に重点が眮かれおいたす。



郚門䜜業の最適化



基本的に䜕で構成できたすか 明らかに、暙準タスクを実行する速床ず品質を改善するこずにおいお。 通垞はどちらかが発生するように芋えたすが、経隓を積むこずが重芁です-䌚瀟は倚数のプロゞェクトを実装し、同じタスクがプロセスで解決され、時間の経過ずずもに最も成功した論理的な゜リュヌションを特定し、それらの䜿甚方法を郚門に教えるこずができたす これが最適化のグロヌバルな考え方です。



これをある皋床実珟するための手段を芋おいきたしょう。



ドキュメンテヌション



暙準アクティビティは文曞化するこずができ、文曞化する必芁がありたす。 蚘録された情報は、倚くの理由により適切に保存されたす。





耇数回行われるすべおを文曞化するこずは理にかなっおいたす。 これは、コヌドのガむドラむン、むンタビュヌの評䟡たたは実斜の手順、リポゞトリたたはバグトラッカヌを䜿甚するためのルヌル-垞に実行する必芁があり、新しい人々に䜕床も教える必芁があるものです。



最も難しいタスクは、ドキュメントを䜿甚するように人々を蚓緎するこずです。 たず、情報が利甚可胜であるこずを党員に䌝える必芁がありたす。 あなた自身でそれを語るのではなく、それを参照する必芁がありたす。



ドキュメントを最新の状態に保぀こずは非垞に重芁です。 無関係な情報源には信頌がなく、再び䜿甚されず、時間が費やされるため、これは圹に立ちたせん。 理想的な䞖界では、郚門党䜓が䞀般的なドキュメントの開発に参加する必芁がありたす。そうすれば、誰もがどのようなドキュメントが利甚可胜か、どこを探し、どのように共有し、情報自䜓が関連するかを理解できたす。



私は官僚䞻矩を育お、あらゆる小さな動きで指瀺をカバヌするこずを匷く勧めたせん。これは効果がないからです。 しかし、最も基本的なこずは、特定し、蚘録し、人々に䌝え始めるこずが理にかなっおいたす。



ポヌタブルコヌド



モバむルアりト゜ヌシングの堎合、サむズずラむフタむムが比范的小さく、ほずんどの機胜が䌌おいるか、䞀般的に繰り返されるプロゞェクトがありたす。 この堎合、プロゞェクト間で転送できるコヌドベヌスを䜜成できたす。 暙準的な実甚的な機胜、䞀郚のコントロヌル、個別のレむダヌなどです。



郚門に独自の歎史がある堎合、いずれにしおも、プロゞェクト間で単玔に別々のファむルずしお転送されるいく぀かの開発が既にありたす。 このオプションはよりシンプルですが、1぀のプロゞェクトのニヌズに合わせおコヌドが最終化されおおり、再利甚の堎合、その改良は異なる堎合がありたす。 ポヌタブル機胜を個別のリポゞトリに分離するず、゜リュヌションをより生産的に開発および安定化できたす。 䟝存関係マネヌゞャヌを䜿甚するず、再利甚の時間がさらに短瞮されたすが、サポヌトの時間が長くなり、制限が生じたす。



最初にコヌドベヌスがない堎合、開発者が別のリポゞトリで決定を䞋すこずは珍しくお䞍䟿です。 おそらく、誰かが䌚瀟の仕事の芳点から戊略的に説明する必芁があるでしょう。 時間が経぀に぀れお、プロセスは習慣になり、問題を匕き起こさず、誀解を匕き起こしたせん。



自動化



䞀郚の暙準アクティビティは自動化に圹立ちたす。 これにより、日垞的なアクションが簡玠化され、䜜業が高速化され、人的芁因が削枛され、時には手動モヌドでは実行できない実際的な機䌚がもたらされたす。



暙準的な䟋アセンブリプロセスの自動化により、ビルドの準備コストを倧幅に堎合によっおはほがれロに削枛でき、プロセスに静的分析たたはテストを確実に導入できたす静的分析を成功させるこずなくアセンブリを防止できるこずを意味したす。



別の䟋郚門の詳现を思い出すず、プロゞェクトを開始する手順は自動化に適しおいるず蚀えたす。 私たちの郚門は、すべおのガむドラむン甚に構成されたプロゞェクト構造、および構成されたgitおよび継続的統合を䜿甚しお、リポゞトリヌの初期コンテンツを生成できるテンプレヌトを䜿甚したす。 そのアプリケヌションは、新しいプロゞェクトの開始を倧幅に簡玠化し、高速化したす。



䞀般に、自動化の最も単玔なケヌスは、ドキュメント、コヌド、たたはその他のさたざたなテンプレヌトの䜜成ず考えるこずができたす。



均䞀性



開発䞭、プロゞェクトに没頭するこずで時間が倱われるこずがよくありたす。なぜなら、プロゞェクトはさたざたな方法で配眮でき、明確な理由もなく同じタスクを新しい方法で時々解決できるからです。 すべおが独自の方法で行われる新しいプロゞェクトに螏み蟌むず、開発者はツヌルの研究に時間を費やすこずになりたす。 圌の背埌に12を超えるプロゞェクトがある堎合、違いはありたせん。暙準タスクをどのように解決できるかに぀いお、すでにある皋床のアむデアを持っおいたす。 広範な経隓がない堎合、時間は無駄になりたす。 ここでは、開発を1぀のビュヌにたずめるこずで、費甚を節玄できたす。



プロゞェクトの均䞀性を達成するために、すでにリストされおいるすべおのものが適甚可胜です。䞀般的なルヌル、兞型的な問題を解決するためのベヌス、および自動化です。 それらを䜿甚するず、新しい開発者にある皋床䌌た理解しやすいプロゞェクトを䜜成できたす。



熱心すぎるこずは䟡倀がありたせん-2滎の氎のように、プロゞェクトは䌌おいる必芁はありたせん。 ツヌルずアヌキテクチャの実隓は 、経隓を積む楜しさず、朜圚的な革新を探求するために重芁です。 単䞀のベヌスから䜓系的に実隓するこずは理にかなっおいたす。



決定効率



䞖界の理想的な状況では、この決定たたはその決定が正圓化されるかどうかを監芖する必芁がありたす。 䞀定のしきい倀を超えるず、そのサポヌトのコストが利点を超える堎合がありたす。 ここで最良か぀唯䞀の客芳的な指暙は時間です。 䜿甚するセット党䜓をサポヌトするために、たずえば数か月間、少なくずも時々コストの削枛を怜蚎できる堎合、これはナビゲヌションの改善に圹立ちたす。 残念ながら、十分な時間がないため、すべおを目で刀断する必芁がありたす。 さらに、突然リリヌスされた開発者のおかげで、朜圚的に非効率な゜リュヌションが実際に含たれるこずがありたす。 この点での実際の開発は、論理的な理論ずは異なる堎合がありたす。



䜿甚するツヌルの数ずドキュメントの量を増やすず、すべおの開発やそのアプリケヌションをサポヌトするこずも難しくなりたす。 たずえば、50個のうち1個のルヌルを忘れるのは、5個のうち1個のルヌルよりもはるかに簡単です。 この芳点から機胜ず耇雑さのバランスを芋぀けるこずは、最も簡単な䜜業ではありたせん。 このバランスを芋぀けお、開発を最倧限に掻甚できたずは蚀えたせん。



トレヌニング



開発者向けのトレヌニングシステムの䜜成に倚くの時間を費やしたした。 高品質のトレヌニングシステムを構築するこずで、いく぀かの問題を䞀床に解決できたす。





珟時点では、システムの圢匏は次のずおりです。





したがっお、開発者は絶えず成長の過皋にあり、システムは最初に知識の朜圚的な穎を塞ぎ、次に兞型的な問題を解決するために蚓緎するように蚭蚈されおいたす。぀たり、垞に䜿甚される玠材のみで構築されたす。



ステップには、特定のアクティビティコヌドの䜜成、プロゞェクトの開始、評䟡を実行するための指瀺が含たれ、ステップが終了するず、開発者は適切な蚱容範囲を受け取りたす。



トレヌニングは、コヌドガむドラむン、バヌゞョン管理システムずバグトラッカヌを䜿甚するための手順、およびプログラミングの基本を含む入門ステップから始たりたす。 䌚瀟に到着するず、開発者はプロゞェクトに参加するこずができたす。すでに䜜業方法に関する知識ず最小限のスキルを報告しおいるだけでなく、テストプロゞェクトを完了し、プロセスの察応するレビュヌに合栌しおいる、぀たり䜜業プロセスを完党に理解しおいたす。



開発者のトレヌニングは、単䞀システムのフレヌムワヌク内であっおも長いプロセスであるため、資料ずその採甚圢態を研究するには倚くの時間が必芁です。 情報の研究は数週間から数か月続くずいう事実により、問題は耇雑であるため、材料の段階的な分解を迅速に圢成しおテストするこずは䞍可胜です。 ステップの採甚も比范的たれにしか行われないため、最倧限の泚意が必芁です。最初は、各完了手順を䜿甚しおシステムの利䟿性に関する情報を取埗する必芁がありたす。



タスク配垃



圓瀟の構造は、技術リヌダヌが開発者の配垃を管理しないように実装されおいたす。 チヌムの圢成ぞの参加には、誰ず誰を配眮するのが良いか、このチヌムたたはそのチヌムがプロゞェクトを匕っ匵るなど、助蚀フォヌムがありたす。



私の責任には、アクティブなプロゞェクトに関係のないタスクを確実に完了させるこずが含たれたす。 比范的自由な人がいる堎合、販売のためのアプリケヌションの耇雑さの評䟡、たずえば、正匏に䞭断されたプロゞェクトの緊急タスク、それらを実行する人がたったくいない堎合、郚門の内郚掻動たたは他の䜕かの評䟡を䞎えるこずができたす。 無料のリ゜ヌスがない堎合は、すべお自分で行う必芁がありたす。



タスクの転送は単玔でも耇雑でもありたす。開発者ずプロゞェクトマネヌゞャヌに盎接連絡しお、珟圚誰が無料かを確認する必芁がありたす。 私の本胜はそれをより簡単で透明にする機䌚があるべきだず蚀っおいるにもかかわらず、私はただ通垞の察話よりも効果的なものを思い付くこずができたせんでした。 コミュニケヌションを簡単にするために思い぀いた唯䞀のこずは、開発者向けの共通のチャットルヌムです。 時々、そこに曞くず、誰かが突然自由になり、必芁な仕事をするこずができるこずがわかりたす。



タスクを委任し、実装を監芖するプロセスは最も簡単な領域ではなく、私はその非垞に基本的なこずだけをマスタヌするこずができたので、ここでは啓瀺はありたせん。 すべおのタスクにはある皋床の譲枡性がありたす-その委任がどれほど効率的で安党であるか。 い぀でも簡単なタスクを実行できたすが、䜕かを倧きく損なうようにするのは困難です。 それはすべおアヌティストのレベルに䟝存したすが、最悪のシナリオに備えるこずは垞に良いこずです。 開発者のレベルが高く、信頌があれば、倧芏暡で耇雑なタスクを転送したり、特定の問題に関する共通のビゞョンを圢成したりするこずさえできたす。 基本的な゚ラヌを排陀し、誀った解釈の可胜性を枛らすために、転送されたタスクの履行芁件は垞に可胜な限り正確に瀺される必芁がありたす。 たた、結果を確認するこずを忘れないでください。



郚門が成長するに぀れお、責任が継続的に远加的に分散される構造を開発する必芁があるこず、たたは1぀の郚門党䜓をいく぀かの小さな郚門に分割するこずが必芁であるこずは明らかですが、実際にはこれに至りたせんでした。



すべおをマスタヌする方法



䞊蚘を芋お、これらの各アクティビティに必芁な時間を想像するず、ゞョブには本圓に倚くのタスクが含たれるこずが明らかになりたす。 これは、通垞の日に同じタむプのアクティビティが最倧で5぀、1぀たたは2぀ある開発者の平日ではありたせん。 私の暙準日には5〜10個、時には15個のタスクが含たれ、そのタむプは倧きく異なる堎合がありたす。 耇雑なバグの修正、新しいテクノロゞヌの孊習、タスクの䜜成、蚈画、優先順䜍付けを行う必芁がある堎合、脳はたったく異なる方法で機胜したす。 ほずんどの堎合、1぀のプロゞェクトに瞛られるこずはありたせんが、䞀床に耇数のプロゞェクトを行うため、1日に䜕床も頭にすばやくアップロヌドしお、倧量の倚様な情報をアンロヌドする必芁がありたす。



本来、私の脳には顕著なパラメヌタヌがなく、それ自䜓でそのような負荷を匕き出さないため、私は圌を助けなければなりたせん。 時間管理に関するスマヌトブックでは、これらのすべおのプラクティスがすでに考案されおいるず確信しおいたすが、プログラミングに向けた開発が優先され、珟圚もその開発が続けられおいるため、それらの研究に十分な時間を費やしおいたせんでした。



最悪なのは、私の堎合、蚘憶が察凊するため、実践の䞀郚は、脳の蚘憶をサヌドパヌティのツヌルず習慣に眮き換えるこずを目的ずしおいたす。 2番目のグルヌプには、他の人を集めお掻動を行うこずが含たれたす。 最埌から始めお、静かに最初に進みたしょう。



代衚団 私はすでに圌に぀いお少し蚀いたした。 時間がないため、䜜業を最倧限に他の人に転送する必芁がありたす。



文化レベルで開発者を匕き付ける 。 郚門で良い習慣が圢成されるず、技術リヌダヌの知識がなくおも、いく぀かの掻動を実行できたす。 たずえば、ポヌタブルコヌドの゚ラヌは、プロゞェクトでのタスクの通垞の実行の䞀郚ずしお開発者が修正できたす。



チェックリスト 。 アクションの順序を忘れないように、それらのリストを䜜成できたす。通垞の皌働日、アクティビティのパフォヌマンス、別のタスク、たたは特定のむベント機噚の曎新などの堎合です。 時間が経぀に぀れお、チェックリストの必芁性はなくなるので、その順守は習慣になりたすが、最初は非垞に䟿利です。



リマむンダヌ 。 タスクを完了するず、䜜業䞭に突然気が散ったり䜕かを忘れたりした堎合に備えお、あらゆる些现なこずに぀いおリマむンダヌを残すようにしおいたす。 コヌド内の「TODO」、別のドキュメント内のメモ、たたは玙に曞き留めるこずができたす。 䜜業䞭に䜕かが忘れられお完了しないように、できる限り保蚌する必芁がありたす。



し぀け タスクを芚えおおく必芁がないように、タスクを完党に完了する必芁がありたす。 プロゞェクト管理システムのステヌタスはタむムリヌに蚭定する必芁があり、タスクの䜜業を終了した盎埌に時間を取り消す必芁がありたす。1ダヌスの異なるタスクを完了し、脳のリ゜ヌスを䜿い果たした埌は、今日行ったこずを忘れがちです。 そしお、倚くのタスクがあり、それらが小さい堎合、䞀般にそれらを忘れるのは簡単です、そしお、それから䜜業時間がどこにも行っおいないようでした。 タスクをすぐに完了するず、䞊列アクティビティのプヌルには、すでに完了したタスクに戻す必芁がある堎合よりもはるかに少ない数のアクティビティがありたす。



コミュニケヌションの倱敗 。 倚くの責任は倚くのコミュニケヌションを意味したす。 珟圚のアクティビティを終了するこずで、むンスタントメッセンゞャヌの手玙やメッセヌゞに返信できたす。 最も匷力なコミュニケヌションは個人的なものであり、キュヌむングが最も困難です。 仕事䞭に人々が私に近づいたずき、私は忙しくお話すこずができないずよく蚀わなければなりたせん。 そうしないず、思考のコンテキストが絶えず倱われ、䌚話の埌、すべおをもう䞀床芚えおおく必芁がありたす。 特定の数の通信では、拒吊しないず、耇雑で膚倧なタスクを実行するずきのパフォヌマンスが䜎䞋し、堎合によっおはほがれロになりたす。 個人的にあなたに近づいた人を配眮するのは簡単ではないかもしれたせんが、非垞に倚くのタスクが必芁です。



タスクリスト



私の意芋では、別のアむテムにふさわしい最も重芁なツヌルです。 すべおのタスクを頭の䞭に入れられない堎合は、それらを远跡する必芁がありたす。 ここでは、バグトラッカヌよりも無料のものが必芁です。 単玔なテキストドキュメントを䜿甚しおいたす。



新しいタスクが到着するず、優先順䜍に応じお順序がほが維持されるように、リストに単玔に远加されたす。 アクティブなタスクが終了したら、リストに戻り、最も優先床の高いアむテムを遞択しお取り組みたす。 そのため、タスクの怜玢に時間がかかりたせん。



必芁に応じお、リスト内の各アクティビティに必芁な時間を評䟡し、実装のタむミングを瀺すこずができたす。 確かに、タスクはランダムな順序で到着するため、このような掚定倀は垞に正しいずは限りたせん。たた、い぀、さらにいく぀衚瀺されるかは事前にはわかりたせん。 ただし、これは、突然の雇甚に1日あたり䞀定の時間をかけ、悲芳的な掚定倀を䞎えるこずによっおも戊うこずができたす。



リストの別のセクションでは、転送されたアクティビティの実行のチェックに関連する項目を匷調衚瀺しおいたす。 他の人がタスクを実行する堎合は、定期的にステヌタスを確認する必芁がありたす。そうしないず、䜕も忘れないように気を぀けおいる開発者がほずんどいないため、単に倱われる可胜性がありたす。



䞀郚の人にずっおは、タスクの単玔なリストを維持するこずは「自転車」のように芋えるかもしれたせんが、これは時間を節玄し、タスクを忘れないようにするのに圹立぀単玔で実際に機胜するプラクティスです。 少なくずも忘れられおいるものの数を根本的に枛らしたす。



感芚



私が䜕をし、どのようにこれらすべおに察凊するかを説明したようです。 仕事から埗た自分の気持ちに぀いおの歌詞を少し远加できたす。 おそらく、これは誰かがこれを行うかどうかを決定するのに圹立ちたす。



結果は具䜓的ではありたせん 。 私がプロゞェクトを行う堎合、これは開始に関するものであり、結果ずしお、他の人がそれを行いたす。 開発者向けのトレヌニングを盎接远跡するこずはできたせん。 この゜リュヌションたたはその゜リュヌションが機胜するかどうかを理解するには、それを䜿甚しおたたは䜿甚せずに同じタスクを実行し、その開発ずサポヌトのコストに関する統蚈を取り、結論を出す必芁がありたす。 時間がありたせんし、私たちの状況ではそのような監査を受けるこずはできたせん。 結果ずしお、私の行動がどの皋床真実か停かを远跡するこずは䞍可胜です。 私の仕事の結果をそれぞれ玔粋な圢で提瀺するこずも䞍可胜です。 これは道埳を远加したせん。



プロゞェクトは匿名です。 開発者は、アプリケヌションの少なくずも1぀の完党なリリヌスを䜜成するず、その動䜜に粟通し始めたす。 アプリケヌションの起動、レビュヌ、たたはいく぀かの耇雑なバグの修正だけでは、プロゞェクトを蚘憶するこずはできたせん。 技術でさえどこでも同じように芋えたす。



単玔なタスクは開発者に枡されたす。 シンプルなものに取り組むこずは非垞にたれです。 暙準画面のシンプルなレむアりトを行い、ピクセルず色を調敎し、UIKitの問題ず戊うのが倧奜きですが、最近ではほずんどのタスクがアプリケヌションアヌキテクチャの構築に関係しおいたす。



短い蚘憶が悪化した 。 最初に倧量の情報を消化するず、脳が過負荷になりたす。 私はそれを降ろし始めたした、そしお、これは、原則ずしお、圌が蚘録されなかったものを芚えるこずに慣れおいないずいう事実に至りたした。 おそらくこれは私の堎合にのみ圓おはたりたす。



䜜業のコンテキストを倉曎するのが簡単になりたした 。 結局のずころ、この瞬間はトレヌニングに圹立ちたす。 脳はタスクを絶えず切り替えるのに䜿甚され、それらに察凊するこずははるかに簡単で迅速です。



なじみのないプロゞェクト/技術/アプロヌチが簡単になりたす。 個々のプロゞェクトを扱う堎合、開発者はそれらに限定されたす。 さたざたなプロゞェクトで倚くの異なる圢匏で具䜓化された同じものを芋るず、詳现から抜象化し、䞀般原則を理解するのがはるかに簡単になりたす。



䌚瀟の仕組みを芋るこずができたす 。 耇数のプロゞェクトずすべおの開発者に䞀床に関連しお、郚門党䜓ず関連郚門がどのように機胜するかを理解できたす。 このビゞョンにより、合蚈の党員にずっおどのアクションの順序が最も簡単か、叞法暩がこの決定たたはその決定などであるかに぀いおの非暙準的な質問に正しい答えを䞎えるこずができたす。



自分でタスクを蚭定する必芁がありたす 。 開発者ずしおプロゞェクトを実行するず、他の誰かが準備した䞀連のタスクを完了したす。 郚門にTKたたは䜜業範囲はありたせん。 郚門はそれ自䜓がプロゞェクトであり、私は開発者であり、プロゞェクトマネヌゞャヌであり、補品所有者です。 どのタスクを実行する必芁があるかに぀いおの決定は私次第です。



人々を教える必芁がありたす。 しばしば同じこず。 時々数回。 実際には、技術リヌダヌの圹割が必芁です。 䌚瀟が圌から孊ぶこずができる開発者を持っおいる堎合幞いなこずに、私たちはそのようなものを持っおいたす、これは非垞にクヌルで、倧きな泚意を払っおそれらを扱うこずは理にかなっおいたす。



割り圓おられたタスクが最埌たで完了するこずはほずんどありたせん 。 どこかでこれぱラヌ、急ぎ、䞍泚意、どこかで䞀般的なビゞョンの理解䞍足、どこかで味わうこずが原因です。 ほずんどの堎合、远加の指瀺を䞎え、修正のためにタスクを送信する必芁がありたす。期限が切れる状況では、圌らは自分でそれを行いたす。 これがプロセスの「ボトルネック」にならないようにしたす。



たずめ



蚘事は膚倧であるこずが刀明したした。 圌女が誰かのために䜕かを明らかにするこずを願っおいたす。 おそらく、誰かがこれらの開発のいずれかを実践するか、自分自身のために䜕か他のものを抜出するでしょう。 圓然、各䌁業および各郚門での技術リヌダヌの圹割は異なっお芋えたすが、珟圚の状況で最も重芁ず思われる偎面を匷調したした。 ありがずう



All Articles