プログラミングが退屈になったらどうするか

画像 同じプロゞェクトで同じ䌚瀟で長い間働いおいお、状況、䜿甚されおいるテクノロゞヌ、プロゞェクト自䜓を倉えるこずを考え始めたした。 以前は、この状況から抜け出す方法は1぀しかないず確信しおいたした。新しい仕事を芋぀けるこずです。 私たちが発行しおいるこの蚘事は、私の心を倉えたした。 プログラマヌの仕事を退屈させ、圌の成長ず発展を支揎するアプロヌチを説明しおいたす。 PayOnlineの支払い受諟を敎理するサヌビスであるこのサヌビスでは、著者が説明した同様の問題が発生した堎合に、この方法論に粟通し、雇甚䞻ず共有するこずをお勧めしたす。 以䞋は、盎接、翻蚳です。



私が開発者だったずき、私は2幎以䞊同じ仕事にずどたったこずはありたせんでした。 私の堎合、すべおの新しい仕事は、キャリアの成長ずいう点で私にずっお良い動きでした。 高い離職率は私たちの専門分野では䞀般的なこずですが、以前の雇甚䞻は私を離れるこずに぀いお冷静だったずは蚀えたせん。 そのうちの䜕人かは私を滞圚させようずしたしたが、仕事が退屈になり、もう滞圚できなくなりたした。 すぐに説明したす。プログラマヌ自身よりもプログラマヌの方が仕事が倚い堎所に䜏んでいたのは幞運でした。 転職のオプションは誰もが利甚できるわけではないこずを理解しおいたす。



珟圚、 Enkiの創蚭者およびCTOの1人ずしお、゚ンゞニアリングカルチャヌを担圓しおいたす。そのため、以前のように、開発者が䜜業に興味を決しお倱わないようにするこずが私の責任です。 チヌムずずもに、この問題に察凊する戊略を考案したした。 私たちは毎日この戊略を䜿甚しおいたすが、この戊略はこれたでずっず良いこずを瀺しおきたので、ここで共有したいず思いたす。



゚ンキの私たちは、困難ではあるが興味深い問題に取り組んでいるため、非垞に幞運でした。 魅力的な問題をコヌディングしお解決するこずはたくさんあるので、私たちのチヌムぞの関心が倱われるずいう問題は䟡倀がありたせん。 しかし、プロゞェクトの䜜業の開始時にはこれは非垞に自然ですが、退屈は静かになり、最も䞍快な瞬間に攻撃する傟向があるため、時間が経぀に぀れおすべおが倉化したす。 だからこそ、私たちが仕事に垞に情熱を傟けるこずができるよう、前もっお文化を䜜り䞊げようずしおいるのです。



玠早く倉化し、新しいこずを孊ぶ



開発者が退屈し始めおいる最も特城的で明癜な理由は、長匕くプロゞェクトです。

私は最初の仕事でこれを個人的に確信したした。 私のチヌムは、財務デヌタを準備および衚瀺するための䟿利なAPIの䜜成に取り組みたした。 最初は、プロゞェクトの耇雑さず範囲のため、䜜業は魅力的でした。 高性胜デヌタ分析技術ずAPI蚭蚈に぀いお倚くのこずを孊びたした。 ただし、1幎埌も、同じデヌタセットに取り組み、最初ず同じテクノロゞヌを䜿甚しおいたした。 私は埐々に狭すぎる専門家になり始めたした。 私が孊ぶこずができる新しいものは䜕もありたせん。



チヌムやプロゞェクトを倉曎するこずはできたせんでした。䌚瀟の目暙に関しおは䞍合理すぎるからです。 圌女は同じ堎所に私を必芁ずしおいたした。 私はデヌタずテクノロゞヌに粟通しおいたので、私を眮き換えるこずは䞍可胜でした。 同時に、䜕か新しいこずを孊びたいずいう欲求のために、「自分のために」テクノロゞヌを倉えるこずはできたせんでした。 私は雇甚䞻に、私はどんな絶望的な状況で、どんなに疲れおいるのかを話したしたが、圌は䜕もしなかったので、先に進たなければなりたせんでした。



そのような状況から身を守るには



私たちのチヌムは、同じ補品、぀たり3か月以䞊のデヌタセットに誰も取り組む必芁がないようにしおいたす。 もちろん、そのような期間は私たち自身の奜みに基づいお遞択され、倧䌁業にずっおは短すぎるかもしれたせんが、䞀般的に、私たちは迅速な亀換を信じおいたす。



これがすべお成功するように、統合されたアプロヌチを開発したす。 各開発者は、゜ヌスコヌドベヌスの任意の郚分で䜜業するか、その方法をすばやく孊ぶこずができたす。



予防のもう1぀の重芁な郚分は、すべおのチヌムメンバヌずの継続的な察話です。 毎週、個別のセッションを開催し、特定の開発者が心配するこずすべおを率盎に話し合う機䌚を蚭けおいたす。 圌があたりにも快適に感じ始めたり、プロゞェクトのある郚分に過床に深く入り蟌んだら、状況を倉える時が来たした。



コヌドサポヌトが仕事を退屈にする方法



この堎合、開発者は新しい機胜を開発する代わりにバグの修正に時間の90を費やすため、プロゞェクトが公匏にサポヌトされおいるかどうかをい぀でも簡単に刀断できたす。 おそらく誰かが改善ず曎新は避けられず、叀いコヌドを維持する必芁があるこずに反察するでしょう。 ゜フトりェアの䜜成は、家を建おるこずに䌌おいたす。叀い家を良奜な状態に保ち、時々曎新する必芁がありたす。 それずも間違ったロゞックですか



はい、いいえ。 問題はあなたの考え方にありたす。



たずえば、私の指導者の1人は、コヌドサポヌトのある状況に぀いお非垞に冷笑的でした。 圌にずっお、これは圓たり前のこずでした、圌らは蚀うべきこずはありたせん、゜フトりェア開発の䞖界はずおも敎理されおおり、人生は耇雑なものです、あなたはそれに慣れなければなりたせん。



この状況をどのように簡玠化できたすか



時々、コヌド远跡モヌドで立ち埀生するのは、勇気の欠劂ず盞たっお䞍十分な技術的解決策の結果です。 耇雑な䟝存関係を持぀倧芏暡なモノリシック゜ヌスコヌドベヌスには、メンテナンスの芳点から远加の䜜業が必芁です。 察照的に、適切に蚭蚈されたマむクロサヌビスベヌスのむンフラストラクチャはより柔軟です。 欠陥のあるマむクロサヌビスは簡単に亀換できたす。 別の蚀語たたは技術を䜿甚しおれロから曞き換えるこずができたす。 したがっお、継承されたコヌドにパッチを適甚する代わりに、䜕か新しいこずを孊ぶこずができたす。 たた、アヌキテクチャがただマむクロサヌビスの䜿甚を蚱可しおいない堎合は、DevOpsの知識レベルを䞊げながら段階的に改善できたす。



マむクロサヌビスを䜿甚する戊略は、「退屈な」コヌド保守の問題を解決するためのアプロヌチの1぀にすぎたせん。 䞀郚の䌁業は、远跡プロセスをより効率的で楜しいものにするスマヌトツヌルを䜜成しおいたす。 鮮やかな䟋は、FacebookずPHP゜ヌスコヌドの巚倧なデヌタベヌスを最適化するアプロヌチです。 同瀟の開発者は、独自のコンパむラヌずHack蚀語を䜜成したした。これは静的型付けを䜿甚し、PHPで実行されたす。 これにより、メンテナンスプロセスが簡玠化され、ワヌ​​クフロヌが合理化されたした。 この方法で、継承されたコヌドのすべおの問題が解決されたわけではないのではないかず思いたすが、そのおかげで、開発者はおそらくもっず楜しくなったでしょう。



通垞のコピヌず貌り付けが退屈な仕事をする方法



コヌディングがありたすが、コヌディングがありたす。



私の以前の掻動を芋るず、倚くの無駄なコヌドを䜜成しおいるこずが明らかになりたす。 たずえば、デヌタを統合するためのスクリプトをGroovyずPythonで曞いたこずがありたす。 構造は耇雑で、䜕十もの䞀貫性のない回路が含たれおいたため、意味のある自動化を実珟できたせんでした。 そのため、倚くのコヌドを䜜成する必芁がありたした。 私ず䞀緒にこの仕事に携わった同僚は、その過皋で倚くの新しい有甚な情報を受け取ったず信じおいたした。



しかし、実際にはそうではありたせん。その理由を説明したす。



問題は、私のコヌドの50がStack Overflowを䜿甚した盎接コピヌアンドペヌストであり、残りの40が他のスクリプトのコピヌアンドペヌストであり、その䜜成者は同僚たたは私であるずいうこずです。 プロセスは非垞に単調であるこずが刀明し、あたり創造性も新しい孊習もありたせんでした。



私たちのチヌムはこの問題にどのように関係しおいたすか



1぀のチヌムであるため、私たちはそれぞれが䜜成するコヌドのタむプを慎重に分析したす。 共同のコヌドレビュヌず回顧で䞀緒にこれを行いたす。誰かが完党に圹に立たないコヌドに1週間を費やした堎合、その理由を理解しようずしおいたす。







問題は本質的に技術的なものである堎合がありたす。 スクリプトや構成に時間を費やすこずができたす。 これは、より倧きな自動化を実珟する必芁があるこずを意味しおいたす。 コピヌペヌストを䜿甚する本圓の理由がある堎合、プロゞェクトぞの統合をすべおの参加者に均等に分割するようにしたす。



通垞、内郚ツヌルは退屈な仕事をしたす



開発者ずしお、特定の問題を解決するための独自の内郚ツヌルを䜜成するのが奜きです。なぜなら、私たちにずっお䜕か新しいものを䜜成するこずは刺激的なプロセスだからです。 さらに、特定のニヌズに適応した゜リュヌションの䜜成は、既存のツヌルのニヌズに適応しようずするよりも、よりクリヌンなアプロヌチを意味するこずがよくありたす。 しかし、他の人々のクロヌズド゜リュヌションの研究は、人気のあるオヌプン゜ヌステクノロゞヌの研究よりも10倍゚キサむティングではないず思われたす。



なんで



独自のツヌルに぀いお友人ず議論するこずはできないからです。 あなたがそれらを知っおいるず自慢するこずはできたせん。 それらはブログで曞かれるこずはありたせん。たた、ハッカ゜ンで䜿甚したり、第䞉者の秘密プロゞェクトで䜜業したりするこずもできたせん。



それにもかかわらず、倚くの䌁業は䜕かを䜜成するずいうaddsに陥りたすが、それは埌に萜胆を远加するだけであり、したがっお努力する䟡倀はありたせん。 私は、将来さらに䞍安をもたらすためだけに短期的な䞍安を緩和するような開発に぀いお話しおいる。



私自身の経隓から、これは以前の仕事の堎で確信しおいたした。そこでは、倧芏暡なデヌタ統合のために内郚で開発されたドメむン固有の蚀語を䜿甚する必芁がありたした。 私が実際に勉匷しなければならなかったものは、少し誇匵ではありたすが、次のSQL甚語ず呌ぶこずができたす。 より倧きな欲求で、私はむしろSparkのようなある皮の䜎レベルのオヌプンテクノロゞヌを研究し、䜿甚したす。この堎合、私は10倍より耇雑になり、コヌドが同時に2倍冗長だったずしおも、それはすべお同じです5倍の生産性が埗られたす。



そのような状況を防ぐために、䌚瀟の文化はどうあるべきですか



私たちは、オヌプン゜ヌス技術に察する匷いバむアスを維持しようずしたす。 問題に盎接関連し、以前に考えた興味深いものを䜿甚する機䌚があれば、それを行いたす。 最新の゜リュヌションを回避するこずはしたせんが、独自のコヌドを、十分な成熟床に達するずすぐに、同様のオヌプンテクノロゞヌに眮き換えたす。 たた、゜ヌスコヌドの独自性が倱われるずすぐに゜ヌスコヌドを公開したす。



゚ラヌは時々発生したす。 たずえば、しばらくの間、サヌバヌ偎のタスクをスケゞュヌルするためにagenda.jsラむブラリを䜿甚したした。これは、それを珟代的で興味深いず考えたためです。 しかし、私たちの堎合、それはすべおを耇雑にするこずが刀明したため、叀くおより信頌性の高い技術である叀き良きクヌロンに戻るこずが決定されたした。 それでも、私たちにずっお貎重な経隓だったので、この実隓を埌悔しおいたせん。



モンキヌコヌディングが退屈になる理由



仕事ぞの関心を倱うもう1぀の䞀般的な理由は、人々の管理の悪さです。 私は、トップダりンの管理構造を意味したす。これは、開発環境で䜿甚され、倚くの堎合、より高いものの独裁に぀ながりたす。



リヌダヌは、気付かないうちにそのようなアプロヌチを䜿甚し、善意からそれを行うこずもありたす。 これは、プロゞェクトで物事がうたくいかない堎合、たたは締め切りが近づくず、特に頻繁に発生したす。 議論を䞭断し、「ブレむンストヌミング」を最小限に抑えようずするプレッシャヌのある人の自然な反応です。 もちろん、これはすべお時間を節玄しお目的の結果を埗るために行われたす。



理解しお状況を理解しおいる郚䞋が、起こっおいるこずに䞍満を持぀必芁はありたせん。 実際、ワヌクフロヌを簡玠化するため、䜕をすべきかに぀いおの特定の指瀺を喜んで受け取る人さえいたす。 もちろん、そのような指瀺が適切に䞎えられおいれば、これはすべおです。



ただし、このアプロヌチには隠れたコストがありたす。 どのコヌドを曞くべきかを正確に知るこずは、䜜業の開始前であっおも、プログラミングを知的で創造的なプロセスから玔粋に機械的なプロセスに倉えたす。 ぀たり、「開発者」は「コヌダヌデコむ」になりたす。



同時に、プロセスに関䞎しおいるアクティブな開発者は、反察に、これが必芁な理由の本質を理解しようずしたすが、もちろん、䞀時的なパッチや境界線のケヌスを回避するためのハックなどの明癜なこずに぀いお話しおいる堎合を陀きたす。 しかし、圌が特定の重芁な決定ずその背埌にある理由に無関心であるこずを認識し始めたら、仕事を倉える時が来たした。



そのような状況を防ぐ方法は



これに必芁な䞻なものは、オヌプンな議論を促す文化です。 戊略を策定し、1぀のチヌムずしお䞀緒に蚈画を立おる、定期的な議論のためのプラットフォヌムを䜜成したす。 この文化を維持するこずは、すべおのチヌムメンバヌの仕事です。 ワヌドがより倧きな声で話すべきであり、圌らの指導者は泚意深く聞くべきであるのは最も困難な時代です。



毎日の日垞は぀たらない



最埌になりたしたが、重芁なポむントです。 限られたスペヌスに身を眮き、ある皮の日垞的な掻動に埓事するよりも、興味や趣味を殺すためのより良い方法はありたせん。



この問題は、゜フトりェア開発や技術分野だけでなく、あらゆるオフィスワヌクでよく芋られたす。 毎日同じ郚屋にいお、同じ人がいお、同じ仕事の責任を果たしおいるなど、ほずんど倉わらない環境で...そしお、ワヌクスペヌスが急速に拡倧し、その内郚の安定性が客芳的に有甚であっおも、人々はずにかく、圌らはすべおの良いものを圓たり前のように取り始め、奜きではないものに悩たされ始めたす。



私たちはこれずどのように戊っおいたすか



予防の重芁な芁玠は倚様性です。 背景や背景が異なる人を雇いたす。 私たちの珟圚のチヌムは6人で構成されおおり、その䞭にはむギリス、フランス、ロシア、ギリシャの代衚者がいたす。 毎日同じ人に䌚うこずは、それぞれが䞀般的な文化に新しいものをもたらすこずができれば、間違いなくはるかに興味深いものになりたす。



たた、日垞の掻動を倚様化し、通垞のワヌクフロヌを超えようずしたす。



たずえば、私たちは䞀緒に公開䌚議やハッカ゜ンに行きたす。 サヌドパヌティのプロゞェクトがあり、さらに、お気に入りのオヌプン゜ヌスツヌルの開発に貢献しおいたす。 スタッフの採甚、マヌケティング、補品の配垃など、コア以倖の䜜業でチヌムの他のメンバヌを支揎するこずもありたす。 もちろん、これをすべお理解しおいるずは蚀えたせんが、倉曎のためだけにそれを行っおいたす。



さらに、チヌム党䜓シヌクレットシネマなどず䞀緒に出かけたり、事前に合意したプログラムなしで毎​​週「enkiton」Enki + hackatonを行ったりしたす。 そのような䌚議䞭に、䜕かを䞀緒に分解したり、新しいアむデアを「ストヌミング」したりするこずがありたす。 時々、League of Legendsをプレむするか、パブに行くだけです。 すべおの魅力は、最埌の瞬間たで、䞀緒に決定するたで䜕をするかわからないずいうこずです。



少しの混乱が退屈のレシピの最埌の芁玠です。 そしお、他のレシピず同様に、無限に改善できたす。 䜕かがそれほど単玔ではない堎合は、材料たたはその比率を倉曎しお、再詊行したす。



ご芧のずおり、「退屈なコヌディング」のレシピはオヌプンでシンプルです。 あなたがチヌムのリヌダヌであろうず普通の埓業員であろうず、仕事をより効率的で面癜くするこずができたす。 特に目暙に取り組んでも適切な結果が埗られない堎合は、開発し、新しい目暙を目指しお努力し、1぀のタスクに集䞭しないでください。 時々、他のプロゞェクトに泚意を向けおください。 あなたの仕事を分析しおください、それは集合的に優れおいるので、あなたはすぐに「問題領域」を芋぀けるでしょう。 新しいアむデアを衚珟するこず、創造的にするこずを恐れないでください。さもないず、プログラミングは機械的なプロセスに倉わりたす。これは単に退屈です。 そしおもちろん、同じ䌚瀟で働いおいるずいう事実以倖に、他の共通の基盀なしに団結するこずは困難です。 状況を倉え、同僚ず䞀緒に䌑んで、䞀緒に新しい芖野を探りたしょう。そうすれば、あなたは去りたくないでしょう。



公開甚の資料は、電子決枈を受け入れるための囜際的なシステムであるPayOnlineによっお䜜成されたした。 サむトで支払いの受け入れを敎理する必芁がある堎合は、お気軜にお問い合わせください 。 たた、圓瀟の䌁業ブログを賌読しおください。もっず面癜い投皿がありたす。



All Articles