ソフト開発でコストを削減する方法とは?

このQ&Aのポイント
  • IT業界でソフトウェア開発をしている私は、覚えるべきことの多さと技術の進化に辛さを感じています。
  • 勉強量を削減するために、暗記ではなく根本を理解し、ググれば思い出せる状態を目指しています。
  • しかし、開発対象に応じて技術を選定する必要があり、別の言語に移る時には「ググり直す」コストがかかってしまいます。対策方法はあるのでしょうか?
回答を見る
  • ベストアンサー

ソフト開発で「ググり直す」コストを減らすには

私はIT業界でソフトウェア開発をしていますが、基本的に楽しいと思いながらも、覚えるべきことの多さと、技術が移り変わる速度に辛さを感じることがそれなりにあります。 完全に暗記しようとはせず、根本を理解して、ググればすぐ思い出せる程度の状態にすることで、勉強量を削減するようにはしています。 ただ、エディタは同じものを使うよう意識していますが、使用する技術は開発対象に応じて柔軟に選定する必要があり、慣れてきたプログラミング言語から別の言語に移るときなどは、それなりの「ググり直す」コストがかかって面倒です。 理想的には全部頭に入った状態で、設計を見た瞬間にスッと実装方法が湧き出れば良いのですが... このコストは仕方ないものなのでしょうか。それとも対策方法はあるのでしょうか。諸先輩方、何卒ご教授の方、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.1

勉強量を削減することは実は無理なことが多いです。 IT業界では使用ツールやテクノロジは常に日進月歩。かと思えばCOBOLプログラマが不足しているという業界もあったりします。 COBOLで仕事を始めた人は最新のフレームワークがわからないし、最近プログラムを覚えた人はCOBOLがわからないし・・・ 一つのプログラミング言語を覚えていればそれで済むという話でもないですからね。 ということで、新しいツールは常に勉強が必要。 だけど、基礎的なことは時代が変わっても通用することが驚くほど多いです。 特にソフトウェアのエンジニアであってもハードウェアの知識があればコードを組み上げる時の発想がソフトしか知らないエンジニアとは異なります。 逆もしかり。 個人的なことになりますが、私は中学生の時にアマチュア無線の免許を取るつもりで勉強をはじめました。トランジスタを使用した増幅回路の基礎とか、電波(特に周波数に関するもの)の特性とか変調方式とかを勉強している途中でマイクロコンピューターというものが登場したのです。ワンボードマイコンというものですね。 月刊誌を買ってコンピューターとはどういうものかを独学で学びました。マシン語も覚えコンピューターの動作原理の基礎を学びました。 走行しているうちに電源をいれれば即BASICが扱えるパーソナルコンクピューター(パソコン)が登場し、しばらくして一般家庭でも購入可能な価格まで下がった機種が登場。カセットポンでゲーム機にもなるバソコンもありました。 そういった積み重ねのおかげでつい最近になってVisualStudioの最新版(それまでもVisualStudioで開発はしていましたがVer.4くらいまで)を使ったり、Pythonを勉強したりしました。他にもOracle、SQL Server等のRDBMS、Apacheから始めたHTTPD、Windows Serverを置いたネットワークの構築など今でもなど・・・ 特に今はブランクが有るのにシステムを1から組んでいるので出来ることはわかっているけど具体的なコードを覚えられない?ど忘れすることが多いので使えるコードサンプルをワープロで作成し、PDFにしてタブレットに入れて必要なときに開いています。 今ではA4サイズで100ページを超えるようになったので目的別に別ドキュメントとして再構築しています。 元々はネットを検索して動作検証したものをテキストファイルとして保存していたのですが、テキストだけだと何かと不便だったので目次からジャンプできるWordを使うようになったのです。 初めは印刷して手元においていたのですが流石に100ページを超えると不便になったのでPDF + タブレットという組み合わせに移行。 こういうのは、ドキュメントを作成すると頭に残るので昔からこの方法をやっています。

okbigwaver
質問者

お礼

低レイヤは汎用性高そうだと思って最近本を読みました。実際にコンパイラ作ったりしてないし、ハードは触れてないので貴方には到底敵いませんが... コードサンプルをいっぱい持っておられるのですね。自前のライブラリを持っておくのは普通にアリですね。そういうのをためておけば多少は学習し直しコストというか車輪の再発明コストが減らせて良いですね。ただGitで管理したほうがいい気がします。 ご回答ありがとうございました。参考にさせていただきます。

関連するQ&A

  • コストダウン方法

    私は、金型設計業務に携わっているのですが、最近になりコスト削減の推進が始まりました。目標を挙げることは出来ますが、それを数値化して見えるようにするとなるとその手法が見出せずにいます。 同じ様に設計業務に携わっておられる方で、どのような方法でコスト削減(数値化)を進めているか宜しければ、アドバイスを頂きたいのですが・・・

  • システム開発者の方へ言語についてご質問です。

    はじめまして。 若輩者で知識が豊富にありませんので、 どうか先輩方々の知識をご拝借できればと思い質問させて頂きます。 皆様、それぞれ様々な現場や環境でモノ作りをされていると思うのですが。 その現場で利用されている開発言語はいったいどのようにして決定されましたか?? 開発しているモノや環境によって大きく左右はされるとは思うのですが、 どんな環境やどんなモノでも作れる最強の言語というものはありますか? ----------------------------------------------- 自分はどのようなモノを作っていて開発言語は○○。 開発言語の選定はこんな理由からした。 ----------------------------------------------- のような感じで気軽にたくさんの方々のご意見が聞きたいです。 ちなみに、私はWEBシステムの開発に携わっています。 開発言語はPHPで選定理由は既に設計者によって既に決められていたからです。 同僚の中には「PHPは脆弱性がたくさんあるからやめといたほうがいいよ」という方もおられ 私はどこにその脆弱性があるかすら分からないので「大丈夫です」と 反論すらできない状態です…(汗) これから長い人生、まだまだたくさんの開発に携わると思います。 「得意な言語は?」と聞かれた時に自信をもって「○○です!」と 言えるようにまだまだ勉強したいと思っています。 道を絞るにあたって皆様のご意見を参考にさせていただきたいと思っています。 どうかよろしくお願いします。 (だらだらと読みにくい長文をどうかお許しください…)

  • 機械設計職についての質問とプログラミングについて…

    機械設計職についての質問とプログラミングについての質問 技術的な質問ではありませんが、機械設計を志す学生の質問に寛大な気持でお答えいただけると嬉しいです。よろしくお願いします。 まず一般的な機械設計職について質問させていただきます。 業界の方々は「開発」という言葉と「設計」という言葉を違うように使用されているように思うのですが、開発=大きい企業での研究開発、設計=CADを使用した設計と考えて良いのでしょうか? つぎにプログラミングについて質問させていただきます。 ずばり、機械設計を志す人間はどの程度プログラミング言語(例えばC言語)が操れなければならないのでしょうか? NC言語、CAEなどの分野も含めてお答えください。

  • ソフト開発に関する仕様書の書き方は?

    ある携帯を用いたシステム開発における仕様書を作ってくれと会社の上司から依頼されました。 当方、プログラム経験は少々ですがあります。 (といっても、MS-DOS時代のC、エクセルVBAでのツール作りくらいですが・・) よって、具体的な仕様書をおこしたことはありません。 一口に仕様書といっても、システムの種類や内容などによって、いろいろあると思うのですが、何か具体的な仕様書フォームとかあれば、ぜひ欲しいです。 どういった項目が必要なのかがわからず、何から手をつけて良いかが、わからないもので・・ ちなみに、仕様書を作成する側(SEと呼ばれる立場?)は、開発する環境(使用するハードやソフト)、開発言語、使用するDB、開発するための規則なども細々と決めなければならない(仕様書に盛り込む必要がある)のでしょうか? プログラミングは、外部のソフトベンダーに依頼するそうなのですが、そうなると仕様書がしっかり書かれていないとマズいような気がしています・・ しかし、どこまでのことを仕様書を作成する側がやらなければならないかも、ちょっとわからないんです。 また、仕様書を作成する業務=システム設計またはプログラム設計と考えてもよろしいのでしょうか?

  • オンライン英会話の開発コストってどれくらい?

    今人気のオンライン英会話、例えばレアジョブのサービスの開発コストは大体どれくらいかかるのでしょうか?(ログインシステム、予約システム、料金支払いシステム等々、、) またどのようなコンピューター言語を勉強すれば独自で組めるようになりますでしょうか。 ちなみにレアジョブのサイトにログインするとphpと表示がされます。とうことはphpを勉強すればいいのでしょうか。 当方情報技術の知識がありません、不快にさせた場合はすみません(__)

  • 電卓ソフトを作成したいのですが、どの言語を勉強すればよいでしょうか?

    自分はハード(回路設計)エンジニアとして働いているものですが、プログラミングに興味があり、勉強したいと思っています。 現在のレベルは、入社時の研修で学んだ入門レベルのC言語ができる程度です(業務では一切使用しませんので、現状忘れております)。 自分には、ハードエンジニア向け電卓ソフトを作成し、フリーソフトとして公開したいという最初の目的(夢)があるのですが、どの言語で勉強をはじめるべきかを迷っています。そこで、次の質問をさせてください。 ・おすすめの言語とその理由、もしくは、選定する方法・基準をお教えください。 ・その言語の開発環境は無償版でと考えているが、その考えは正しいでしょうか? ・ひととおりの文法をマスターしてから、ソフト作成に着手という流れで良いでしょうか?(作成しながら覚えるのが良いという習得方法がありますでしょうか?) 環境の選択だけは自信を持って決めたいと考えております。そうしないと、設計時に迷ったときに、違う言語にすればよかったと迷ってしまいそうだからです・・・よろしくお願いします。

  • プログラミング開発の流れ

    現在一人でiPhoneアプリを開発中です。 今までプログラミングは入門書を読んでばかりでまともなプログラムはほとんど作ったことはありませんでした。 しかし、アプリ開発を通じて本に無い開発の楽しさがわかってきた気がします。 ですが大変なことも多いです。 今一番困っているのが、プログラム開発の全体的な流れについてです。 行き当たりばったりで開発を進めているので効率よく開発ができていません。 例えば、思いつきで新しい機能を付けようとしたり、実装方法を曖昧にたせいで一方が動いてもそのせいでもう一方の実装が困難になる、といった感じです。 始める前に悩んで挫折するより、わからないところは作りながら調べればいいかという気持ちで始めました。 しかし、開発が進むに連れコード量も増え全体を把握できなくなってしまいました。 インスタンス間の関係がわからなくなったりグローバル変数が増えたり。 頭が混乱してしまい、はっきり言って挫折しそうです(笑)。 他にも作りたいアプリがあるので、早くリリースしたいのですがうまく進んでいません。 そこで質問です。 あなたは開発する際どういう方針でプログラミングしますか? 例えば、始める前に全体の仕様を具体的に決めてそこから開発をするか。 もしくは、僕のように具体的に決める前にやり始めるか。 また、こういうった問題に直面した場合あなたならどうしますか? よろしくお願いします。

  • 淡水化のコストについて

    海外(特に中東地域)で淡水化プラントを開発するとなると、コストはどれくらいかかるのでしょうか? また、海水を淡水にする技術には、蒸発法と、海水に圧力をかけてろ過膜を通して海水をこす逆浸透法があるようですが、それぞれの方法で淡水化する場合には、どれくらいのコストがかかるのでしょうか?

  • 完全在宅でのシステム開発は可能になってきているか?

    システム開発といってもいろんな形がありますが、どんなものでも完全在宅というのは考えられません。 ユーザーの要件をヒアリングし、要件定義/基本設計/詳細設計/実装/テスト・・・というフェーズは人と人とのコミュニケーションが大切です。 「システム開発は在宅では無理」という常識があります。 この常識をくつがえす開発方法を考えたら、もしかしたら大きなビジネスチャンスにつながるのではないでしょうか。 在宅でシステム開発をするには何が問題なのか。を一つ一つつぶしていき、新たなビジネスにしたいと考えています。 「何が問題なのか・・・」思いつくものを教えてください。 逆に「何がメリットなのか・・・」についてもお願いします。

  • JAVAについて学習(開発)

    現在はプログラミングとは無関係の仕事をしていますが、 Javaについて学んでみたくJavaをつかってブラウザ等の ソフトウェアが作れないかと考えています。 (Linux使用の経験もありますが、Windows XP上での開発を考えています。) ・Javaの開発環境(JDKなど...) ・エディタ(秀丸など...) ・初心者がJavaについて学べるサイト ・オープンソース ・その他ツールなど 上記について何方かアドバイスをいただけないでしょうか? Javaについては短大時代に少しかじった程度です。 学生時代に経験したプログラミング言語は BASIC、C、Perl、HTML、アセンブラ、Java (どれも1年未満になります。)

専門家に質問してみよう