2 ポイント 投稿者 GN⁺ 2023-12-02 | 1件のコメント | WhatsAppで共有

ソフトウェア開発の価値体系

  • ソフトウェア開発の過程では、コードは書かれるより読まれることのほうが多く、これは保守しやすいコードを書くことが良い投資であることを意味する。
  • コードは単に書かれるものではなく、ユーザーにサービスを提供する目的を持っており、ユーザー体験が重要である。
  • ユーザー中心の開発のためには、ユーザーにプログラムを早い段階から頻繁に見せ、フィードバックを得ることが重要である。

コード運用の重要性

  • コードが実行されるということは、プログラムを運用することも含み、デプロイ、アップグレード、モニタリングなどを含む。
  • ソフトウェアが実際の運用環境で実行されるとき、KISS(Keep It Simple, Stupid)の原則はさらに重要になる。
  • 実際の運用では、コードだけでなくシステムの各部分を理解し、障害時にも動作できるようにすることが重要である。

ビジネス観点の重要性

  • ユーザー中心の開発は、ソフトウェアが組織に価値を提供するという前提のもとで有効である。
  • ビジネス観点を開発プロセスに含めることは有益であり、予算、マーケティング、期限などを考慮する必要がある。
  • 組織全体を考えたとき、ソフトウェア、チーム、またはユーザーにとって意味のある決定が、常に最善とは限らない。

ソフトウェア開発の一般的な問題点

  • 保守が難しいコードは、作成者中心のアプローチから生じる。
  • ユーザー体験を考慮しないソフトウェアは、開発者中心のアプローチによって生じる。
  • 運用を考慮せずに設計されたソフトウェアは、開発者中心のアプローチによって生じる。
  • ビジネス観点を考慮しないソフトウェアは、開発者中心のアプローチによって生じる。
  • 実際には運用されないソフトウェアは、ビジネス中心のアプローチによって生じる可能性がある。

GN⁺の意見

この記事で最も重要なのは、ソフトウェア開発の過程でさまざまな要素の相対的な重要性を認識し、それに基づいて意思決定を行うことである。ユーザー、運用、開発者、ビジネスの関係を理解し、バランスを取ることが重要である。この記事はソフトウェア開発者に興味深いインサイトを提供し、開発プロセスで見落とされがちなビジネスと運用の重要性を強調することで、より効果的で責任ある開発文化の醸成に役立つ可能性がある。

1件のコメント

 
GN⁺ 2023-12-02
Hacker Newsの意見
  • 言語設計者・標準ライブラリ開発者、モジュール開発者、一般開発者、最終ユーザーの間で増加する利用量

    言語設計者に対して、モジュール開発者、一般開発者、最終ユーザーの比率はそれぞれ約1000倍ずつ増える傾向がある。これは、言語設計や標準ライブラリ開発の初期段階における小さな怠慢が、下流で大きな影響を及ぼしうることを意味する。

  • システムが使われる理由と中間管理職の役割

    ユーザーがシステムを使う理由は、会社がそれを購入したからかもしれず、その場合、開発者は実際のユーザーの必要よりも中間管理職の要求に応えなければならない。これは、ユーザーが不完全な製品に縛られる可能性を示唆している。

  • 比較関係を表す数学記号 ≹ の発見

    「≹」という記号は、2つの対象が互いに大きくも小さくもない一方で、必ずしも等しいわけでもない関係を表す。これは、数値だけでは比較できない状況において重要な区別である。

  • コード実行コストに対する開発者時間の価値

    コードを10億回実行するコストは、開発者の数分の時間よりも低い場合がある。AWSサーバーを1か月使えば、Web APIコードを1000億回実行することもできる。コード最適化は、経済的に非効率になるまでは常に人間にとっての可読性を優先すべきだ。

  • コード可読性の重要性

    コードが読まれないなら、長く実行されることもないことを意味する。これは、システム管理者から開発者へ転向しようとする初心者の視点から理解できる。

  • 著者の理論に対する批判的視点

    著者は一般的な真理を再解釈して自らの理論を構築しているが、その表現は苦痛であり、有用でない略記法として誤解されかねない。

  • ビジネスの本質とユーザーの重要性

    ビジネスは実在するものではなく、資源を組織化するのに役立つ仮想的な構造である。ビジネスの目標はユーザーに奉仕することであり、社内政治が混乱してビジネス上の利益だけを追求するようになると、組織は有害なものになる。

  • 開発・運用・ビジネスの複雑な関係

    開発、運用、ビジネスはそれぞれ単一の存在ではなく、多様な専門性や組織内で異なる役割を持つ人々によって構成されている。これらすべてが、コードの書かれ方やユーザーに届けられる時期に影響を与える。

  • ソフトウェア業界の倫理的問題をめぐる議論

    ソフトウェアの専門家たちの間で高まる居心地の悪さの原因を説明しようとする試みとして、ユーザーが顧客ではないとき、そしてビジネスモデルがユーザーに悪影響を及ぼすときの倫理的義務についての問いを提起している。

  • 開発・運用・ビジネスの相対的重要性に関する個人的見解

    開発、運用、ビジネスの重要性は状況によって異なり、ときには開発がビジネスや運用より優先されるべき場合もあることを認めている。