Joel Spolsky:卒業プロジェクトと時間管理

Joel Spolsky による最後の記事の翻訳のための興味。 私はすぐに、いくつかの場所で翻訳がかなり自由に見えるかもしれないと警告します-これはロシア語で読みやすくするために意図的に行われました。



また、私は記事にリンクを追加し、ロシア語を話すほとんどの人には理解できないと思われる単語や用語の説明、および自分の翻訳の妥当性を強く疑う人について説明しました。



卒業プロジェクトと時間管理



開発者の基本的なツールを勉強していなくても、チームで働いたこともなく、自動的に参加するためだけの最小点数を取得できないコースを受講したことがなくても、トップ大学でIT専門職を取得することがどれほど簡単かは驚くべきことです。 多くのIT部門は80年代に行き詰まり、同じ古いコースを教えていましたが、すでに現代のソフトウェアエンジニアリングの現実とは離婚していました。



生徒はどのようにしてバージョン管理、バグ追跡、チームワーク、計画、評価、デバッグ、ユーザビリティテスト、ドキュメントについて学ぶことができますか? 20行以上のプログラムを書くことをどこで学ぶのでしょうか?



多くの大学は、カリキュラムが現実の世界から乖離すればするほど、よりエリートであると確信することができました。 人道的アプローチ。 本物の職業学校のプログラマー、 赤レンガ大学 、小規模学校のトレーニングは、フロリダ州ノースサウスウエスト大学のようなコンパスで名前にたくさんのポイントを与えてみましょう。 ワールドアイビーリーグは線形代数、計算理論、およびHaskellを提供する必要があります。すべてのIT部門は、より多くの理論を支持して、カリキュラムから実用的なものをすべて削除して基準を引き上げようとしています。



誤解しないでください、これは必ずしも悪いことではありません 。 彼らは少なくともJavaをSchemeに置き換えますが、それは「彼らはMITでそれを行う」 からです遅すぎる! )。 そして、生徒に特定の方法で考えることを教えます。 そして、平均的なIT教授が実際のプログラミングについてどれだけ知っているかを想像して、フォグクリークでのインターンシップ中に子供たちにこれらすべてを学んでもらいたいと思います。



トロント大学の上級講師であるグレッグウィルソンは、トロントで開催されたStackOverflow DevDayカンファレンスで講演を行いました。 私たちは会話を交わし 、彼は彼の最後の子孫であるUCOSPについて教えてくれました。



これは、主にカナダの15の大学のコンソーシアムで、共同卒業プロジェクトを開催しています。 彼らは、半ダースの将来の卒業生のチームを作り、信用と学位のためにオープンソースプロジェクトに参加します。 このプログラムについて聞いてすぐに、Mercurialに貢献するチームのスポンサーになりました。 スポンサーシップは、すべての参加者にトロント旅行の代金を支払い、プログラマーにチームをひいきにすることです。



UCOSPブログは、 学生プロジェクトは 称賛に値する ものの、有用なものを提供しないことが多い理由を思い出させてくれました。 「このコースの目標の1つは、目標を設定し、それを達成することを理解する機会を与えることです」とグレッグは書いています。 「現時点での純枯渇は非常に明確です。多くの場合、学生はこのコースの1週間で、同じコンテンツのより合理化されたコースでできるよりも、少ないことをします。」



昨年の大学生は、短いプロジェクトで16年の経験があり、最後の瞬間をすべて忘れています。 あなたは学部生ではありませんが、一晩ではできないタスクに遭遇したことはほとんどありません。



私はこれについていくつかの経験があります-卒業プロジェクトでローズハルマンの学生と仕事をしました。 私たちは彼らに彼ら自身のスケジュールを選ぶことを許しました、そしてもちろん、彼らは最後まで最後まですべてを延期し、不完全なものを配りました。 典型的なITの仕事は、学生がコードの「興味深い」部分を書くことを意味します(言葉の学術的な意味で)。 バグを修正して実際の状況に対処することは「面白く」なく、ほとんどの教師が働いたことがないため、コードを「実生活で使用できる」レベルにするために必要な作業の残り90%は、年長の生徒には決して期待されません実際の世界では、ユーザーとのミーティングを生き残ることができるプログラムを作成することの意味がわかりません。



通常、時間管理が原因です。 4人の生徒のグループでは、そのうちの1人または2人が学期の初めに十分に活動的であっても、残りは遅くなる可能性があります- 明日完了しなければならない他のコースからの緊急プロジェクトが常にあります。 起業家の学生は、最初に開始するか、最終的には公正にすべきよりも多くの作業を行うか、最後の夜まで残りを期待するかを選択する必要があります。 彼らが何を選ぶか推測してください。



学生は長期的なチームワークプランニングの経験がありません。 したがって、彼ら自身がスケジュールを計画している場合、彼らはほとんど常に学期のプロジェクトの仕事を吸います。



そのようなプロジェクトから何か生産的なものが出てきたら、おそらく毎週締め切りがあり、おそらく締め切り前の夜にすべての作業がどのように行われたかを見たでしょう。 中間的なマイルストーンのない長期的な期限はめったに実現しないように思われますが、これは人間の本質の不可欠な部分です。



おそらく、これはスクラムを試す絶好の機会です。 週に1回、チームは個人的または仮想的に集まり、過去1週間の作業を解析します。 次に、来週に行う機能とタスクを決定します。 FogBugzは、これらすべてを追跡するためにうまくいきます。 卒業プロジェクトを行っており、FogBugsにアクセスする必要がある場合はお知らせください。無料で提供いたします。 Mercurialのホスティングであるklinへのアクセスを手配することもできます。これには、コードレビューのオプションがあります。



私はここで、先延ばしにする代わりに学期中に学期プロジェクトを行う規律の欠如を学生を非難しましたが、もちろん、問題は非学生の間でも一般的です。 時間がかかりましたが、最終的には、長い期限(または期限がないこと)がプロのプログラマーにはまったく適していないことに気付きました:長期的な生産性のためには、コンポーネントの定期的かつ頻繁な出力のスケジュールが必要です。 これが現実の世界でうまく機能し、純粋に学生チームが失敗する唯一の理由は、現実の世界には期限を設定できるマネージャーがいるからです。 誰もが平等である学生のチームはこれを引っ張らないでしょう。



All Articles