20050809

347 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
347
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

20050809

  1. 1. 仕事の現場から~ これから開発者となる人へ ~ 株式会社 エフワン 小野 修司MVP for Visual Developer – Visual C#
  2. 2. システムを構成する要素 開発したプログラム  プログラムが動作する環境を含む  ハードウェア  ソフトウェア  ネットワーク データ  入力データ  出力データ 利用者  利用する人がいなければシステムを構築する意味は ない
  3. 3. システムを開発するとは? 顧客が抱えている問題を解決する方法を提案す ること  ソフトウェア産業は「サービス」産業である  問題を解決するという「サービス」を提供する 必ずしも全ての問題をプログラムが解決しなく ともよい  そもそもプログラムが解決できるのは問題の一部分 でしかない  運用する人の動きも含めてシステムを考える
  4. 4. システムのライフサイクル(生 存期間)とは(1) 開発  要件定義  基本設計  詳細設計  プログラミング  テスト  リリース  開発のサイクルを繰り返す開発方法論もある  開発者のモチベーションをいかに高めるか、が最近 の 開発方法論の着目点
  5. 5. システムのライフサイクル(生 存期間)とは(2) 運用  保守  改修  開発期間より運用期間が長い  ハードウェアのリースに合わせて 5 年というのが よくあるパターン  バージョンアップにより、一つのシステムは そのライフサイクルを終了する  ただし、システムの目的や機能は引き継がれる
  6. 6. システムの要件は誰が定義する のか 何が必要かよくわかっているのは顧客  ただし、顧客はコンピュータの専門家ではない 顧客とコンピュータの間を取り持つのが開発者  顧客の問題を解決し、満足させることが重要  顧客の問題をきちんと聞きだす必要がある  顧客の考えを鵜呑みにするのではなく、専門家とし てのアドバイスも必要  できないことはできないときちんと説明し、対案を 含めて提案する  顧客の使う言葉の意味を確認しながら話をすすめる
  7. 7. システムを開発するのに必要な 知識とは プログラミングの知識だけでは満足のいくシステムはで きない 業務に関する知識が最も重要  業務知識が足りない場合、顧客の持つ知識をいかに引き出せる かがポイントとなる 動作環境に対する知識も必要  マシン管理(サーバ、クライアント)  データベース  ネットワーク  セキュリティ  Web ( HTTP ): Web アプリケーションの場合
  8. 8. 実際の開発現場では 最先端の技術を使ったシステム案件は少ない  業務で使うには実績があるという安心感が必要  顧客、開発側ともにリスクは背負いたくない  既存の機械で利用したい、という要望も多い 開発要員の知識に左右される場合も  現時点では Java や VB6 なら開発できる人が多い  会社として人を育てたところなのでその分を回収し たい  .NET での開発は今伸びてきている
  9. 9. 開発チーム 規模によっては一人ですべてを行う場合も チーム編成する場合も現状では役割がきちんと別れていることは少 ない  プロジェクトマネージャ  チームリーダ  プログラマ  テスター  環境構築(サーバ、ネットワーク、 DB ) 最近はチームメンバーの意欲(モチベーション)を高めることに重 点をおいた開発方法論も多く語られている  アジャイル チーム内でうまくコミュニケーションをとることが重要  問題点ほど早く報告して手当てをする必要がある
  10. 10. チーム内コミュニケーション のコツ 同じことは何度も繰り返し聞かない  メモをとろう 質問をするときは回答(選択肢)を用意する  自分がどこまで理解できているかをきちんと提示する  選択してもらうだけならすぐ回答が返ってくる 上司、先輩はうまく使おう  上司、先輩の持っている知識をうまくひきだそう  上司を通して交渉してもらうという考え方も必要 問題は早めに報告する  早い時期なら対処にかかる作業も小さくて済む  取り返しのつかないことになるのが最悪
  11. 11. 技術的な知識を獲得する方法 (1) 技術はどんどん進歩する  全体を見渡せる広く浅い知識が必要  メーリングリストなどで技術的な言葉に慣れるというのは知識を広 げる取掛かりとしてよい  興味のある分野は深く突っ込んで  興味があることの知識が増えるのは「楽しい」 最初は書籍で体系だった知識を身につける  基本が理解できていないと応用は利かない 掲示板やメーリングリストのやりとりのコツ  文字だけのやりとりの怖さを理解する  自分の状況をきちんと説明できるよう心がける
  12. 12. 技術的な知識を獲得する方法 (2) 定点観測による知識獲得  継続してみることで、今何が話題となっているのかを確認でき る  Web サイト  ニュースサイト  技術サイト(例)  MSDN (日本、米国)  TheServerSide.NET  DevX.com  CodeProject  掲示板(例)  @IT  GDNJ  Ailight  Blog 、日記、 mixi  メーリングリスト  users.gr.jp
  13. 13. 技術的な知識を獲得する方法 (3) ネット上の検索を利用するときの注意  嘘とはいわないまでも一面的な情報だったりする  何が書かれているのか咀嚼してから利用する  サンプルプログラムがあったら、ドキュメントやリファレンスを元に何が行われてい るのかを自分で納得いくまで確認する  実際に動かしてみて、小さい変更を加えて再実行する、という作業を繰り返すのが理 解するのに一番の早道 仲間をつくろう  仲間のがんばりに触発されてモチベーションが高まる  勉強会、オフラインミーティングに参加することから仲間ができてくる 情報を発信する ( 人に教える)  まとめることが自分の知識の整理になる  新たな視点を教えてもらえることも多い  Web サイト、 Blog 等を活用する  自分で開設する  人の掲示板、 Blog に書き込む
  14. 14. 開発者に最も必要なこと 人ときちんとコミュニケーションできる能力を身につけ る  対顧客  対上司、同僚  ネットを介したコミュニケーション コミュニケーション能力とは  相手が伝えようとしていることを正しく理解できる能力  思い込みを極力排除して人の話を聞く(文章を読む) すべてコミュニケーションからはじまる  システムというのはある意味、人とコンピュータとのコミュニ ケーションであり、開発者はその仲立ちをつとめる

×