私は大規模な人道支援団体で働き、食糧の流通をスピードアップすることで緊急時に命を救うソフトウェアを構築するプロジェクトに取り組んでいます。多くのNGOは私たちのソフトウェアを必死に必要としており、私たちは数週間遅れています。
このプロジェクトで私が心配していることの1つは、コーディング標準に過度に焦点を当てていることだと思います。python / djangoで記述し、さまざまな変更を加えたバージョンのPEP0008を使用します。たとえば、行の長さは最大160文字で、可能な限りすべての行を長くする必要があります。クラス、問題を解決するための最良の方法などではない場合でも使用する必要がある多くのテンプレートなど。
あるコア開発者は、システムの主要部分を1週間かけて書き直して、当時の新しいコーディング標準に適合させました。その過程でいくつかのテストスイートを破棄しました。失われたすべての機能を書き直し、バグを修正するのに2週間を費やしました。彼は主任開発者であり、彼の言葉には重みがあります。そのため、これらの標準が必要であるとプロジェクトマネージャーに確信させました。ジュニア開発者は、言われたとおりにします。プロジェクトマネージャーは、これらすべてについて認知的不協和音を強く感じているが、それでも他に何をすべきかわからないと感じているので、激しく同意しているように感じます。
今日、キーワード引数のコンマの後にスペースを入れるのを忘れていたため、深刻な問題に直面しました。Skypeの通話中に、私は文字通り他の2人の開発者とプロジェクトマネージャーに怒鳴られました。個人的には、コーディング標準は重要であると思いますが、それらに夢中になるのに多くの時間を浪費していると思います。そして、これを言葉にすると怒りを引き起こしました。私はチームのトラブルメーカーとして見られています。チームはその失敗のためにスケープゴートを探しています。コーディング標準が導入されて以来、チームの生産性はかなり低下しましたが、これは強迫観念を強めるだけです。つまり、リード開発者は、標準に準拠していないことを進歩がないと非難します。彼は、私たちが慣習に従わないと、お互いのコードを読むことができないと信じています。
これは粘着性に変わり始めています。今、私はさまざまなスクリプト、autopep8、pep8ify、PythonTidyを変更して、規則に一致させようとしています。また、ソースコードに対してpep8を実行しますが、標準に対する暗黙の修正が非常に多いため、それらをすべて追跡することは困難です。主任開発者は、pep8スクリプトが検出しない障害を選択し、次のスタンドアップミーティングで叫びます。毎週、既存の動作するテスト済みのコードを書き換えることを余儀なくされるコーディング標準への新しい追加があります。私たちにはまだテストがあります(ありがとう、いくつかのコミットを元に戻し、彼が削除したコミットの多くを修正しました)。
その間、締め切りに間に合わせるように圧力が高まっています。
基本的な問題は、リード開発者と別のコア開発者が、他の開発者が自分の仕事をするのを信頼することを拒否していることだと思います。しかし、どのように対処するのですか?私たちはすべてを書き直すのに忙しすぎるので、仕事をすることができません。
私は、ソフトウェアエンジニアリングチームでこのようなダイナミックに遭遇したことはありません。彼らがコーディング標準を順守していることを疑うのは間違っていますか?他の誰かが同様の状況を経験し、どのようにうまく対処しましたか?(私は人々が見つけた実際の解決策だけの議論を探していません)