はじめに
どうも、自社開発企業の SES 部隊として日々客先で業務をこなしているはずれと申します。未経験からエンジニアに転職し、だいたい 1 年半くらいが経ちました。
今回は、私がプログラミングを始めた頃から、ユーザー目線でコードを書くようになるまでの経緯を振り返り、その重要性(個人の意見)等をお話ししたいと思います。
この記事の対象者
- プログラミング未経験者
- プログラミング経験者でも、ユーザー目線での開発に興味がある方
プログラミングにおける 3 つの要素
① ユーザーの要件 ≒ アウトプット
ユーザーの要件を明確に理解することが最初のステップです。これは、何を実現したいか(アウトプット)を定義します。要件定義フェーズでは、ユーザーインタビュー、ユーザーストーリーの作成、機能要件のドキュメント化などが含まれます。これにより、どのような機能が必要か、どのような問題を解決するかが明確になります。
② それに対しての前情報等 ≒ インプット
次に、その要件を実現するために必要なデータや情報(インプット)を特定します。これは、アプリケーションが処理する入力データや、外部システムから取得する情報、またはユーザーが直接入力する情報などです。このステージで、どのようなデータが必要で、どこからそれを取得できるかを決定します。例えば、ログイン機能を実装する場合、ユーザー名とパスワードが必要になります。
③ インプットからアウトプットを作成する ≒ プログラミング処理
最後に、具体的なプログラミング処理を行います。このステージで、受け取ったインプットを処理し、要件に合わせたアウトプットを生成します。ここでは、アルゴリズムの設計、コーディング、テストが行われます。例として、受け取ったユーザー情報を認証し、アクセス権を決定する処理が挙げられます。
初心者の頃の私のアプローチ(②→③→①)
やっていたこと
プロジェクトに入りたてのプログラミング初心者の頃は、主に「インプットからアウトプットを作成する」ステージから開発を始めていました。コーディング楽しい!処理が動いたヤッター!状態で、ユーザーの要件を理解することを後回しにしていました。
結果
- 無駄の多いコードの量産
- ユーザーの要件を満たしていない
- ユーザーからのフィードバックが多い(戻り工数の発生)
そりゃもう、たくさんの指摘を受けました(泣)
今の私のアプローチ(①→②→③)
やっていること
今は、ユーザーの要件を理解することから開発を始めるようにしています。結局のところ、ユーザーが求めているものを提供することが開発の目的です。そのため、ユーザーの要件を理解し、それに対して必要なインプットを特定した上で、プログラミング処理を行うようにしています。
結果
- ユーザーの要件を満たすための最小限のコードを書くことができる
- ユーザーからのフィードバックが減った(戻り工数の削減)
- ユーザーの満足度が向上
- 自分の評価も上がった!
学び
- 結局のところユーザーが求めているのはアウトプットのみ
- アウトプットを実現するための最小限の処理を行うことが重要
- エンジニアの自己満足でコードを書くのは厳禁
おわりに
ユーザー目線でコードを書くことの重要性について、私なりの考え方をお話しました。これからプログラミングを始める方、またはユーザー目線での開発に興味がある方にとって、少しでも参考になれば幸いです。また今話した内容は、私の個人的な意見です。他の方の意見も参考にして、自分なりの考え方を見つけていただければと思います。そして私にもっとユーザー目線でコードを書くためのヒントを教えてください!