• 締切済み

ソースコードがない開発の仕事

ソースコードがない場合 システム開発を請け負いました。 既存システムの開発です。 今、次の問題に遭遇しています。 請け負ったシステムのソースコードがどれかわかりません。 ドキュメントも管理されておらず、まったくわかりません。 本当はあるかもしれませんが、発注元が理解していません。 どのサーバで何が動いているのかもよく分かっていません。 お客さんから要望があるたびに口頭で指示をうけますが 現状が分からないので着手できません。 現状分析や分からないときの相談先として 発注元から前に請け負っていた会社の人を紹介されました。 紹介された方は、同じ階にいる別部署のひとです。 この会社は複数の子会社が発注元に常駐して開発を請け負っています。 その人に訊いてみたところ、 当時からまったく同じ状況だったとのことで分からないとのこと。 同じ苦労をされていたようで、期待していた成果が出ないという一方的な理由で契約をきられたそうです。 さらに契約が切れているんだから、もう関わりたくないは持ちたくないとの様子でした。 しかし発注者は前の請負会社に訊けというばかりです。 発注元が巨大メーカーで影響力が大きいので前の請負会社も渋々対応しています。 どうしたら普通にシステム開発ができるスタートラインに立てるでしょうか?

みんなの回答

  • root139
  • ベストアンサー率60% (488/809)
回答No.5

最初からデスマーチ決定な感じですね。まあ、珍しくはないですが。 まずは、潔く手を引くか、腹をくくって徹底的に取組むか、決める事でしょう。 一から調べ尽くしてプロジェクトを立て直すぐらいの覚悟で臨まないと、辛いだけで何も成果を出せないかと。 手を引くことも簡単には行かないでしょうが、顧客を失ってでも、傷が深くなる前に損切りをするというのも、一つの考え方だと思いますよ。 どの道、プロジェクトが破綻すれば顧客からの信頼も地に落ちますので、早い段階で手を引いた方がお互いの為かも知れません。 取組むと決めた場合は、存在する資料・ソースコード・実行モジュール・その他情報の収集/調査から始めるべきでしょう。 存在するサーバを出来る限り把握し、何が動いているのか一つ一つ確認して、担当しているシステムに関係の有るサーバを全てリストアップし、現状の構成・運用状況・運用担当者などを探り出していく作業を行うべきかと。 また、開発当初のドキュメントや関係者も出来うる限り調べた方が良いでしょう。 もちろん、発注元や前の請負会社に何十回も質問を繰返す必要があるでしょうし、何人も経由しなければ、知っている人にたどり着かないことも多いと思います。相当に嫌がられることになるとは思いますが仕事と割り切ってやり続けるしかないでしょう。 また、使用しているプログラム言語によっては、実行ファイルからある程度の情報を得る事も可能です。 いわゆるスクリプト言語なら実行ファイル=ソースコードですし、バイトコードを使う Java などの言語なら、デコンパイルして有る程度読めるコードが取得できると思います。C/C++などだった場合は、あまり手段がありませんが。 そして、まともなドキュメントが見つからなければ、例え新規開発するにしても現行システムの全面的なリバースエンジニアリングは必須でしょう。おそらくは仕様を把握している人もおらず、動いているシステム以外に仕様が反映されているものが存在しないという状況だと思われますので。 ドキュメント・ソースコード共に見つからなくデコンパイルでもまともなソースコードが得られなかった場合は、お手上げでしょうね。その旨を発注元(と上司?)に伝えて契約を見直すしか無いでしょう。

  • itou2618
  • ベストアンサー率26% (319/1209)
回答No.4

基幹システムなら、ソースコードが管理されていない、ドキュメントが分からない、といったことありません。 それほど重要なシステムではないのでしょう。 でも、システム開発を外注しているのですから、成果物としてドキュメントは必ず残っているはずです。 まず、それを捜索することからですね。 ドキュメントを時系列に眺めてみれば、現状がどうなっているか、おおざっぱに把握できます。

noname#164113
noname#164113
回答No.3

すいません、catじゃなかった。 ls -R (unix系) dir /s  (dos系) でした。 後はリダイレクト指定して、ファイルに書き込めばすべての ディレクトリ階層が確認できます。 cd . ls -R > file cat file

noname#164113
noname#164113
回答No.2

cat 、dir などで ルート直下からのすべてのファイル名を出力するしかないんじゃ?

回答No.1

何も無い状態から新規開発するのが早道ですね。 >システム開発を請け負いました。 普通は請ける前に解決すべき問題ですね。 請けてしまったのなら発注元の担当者を(合法的方法で)脅してこちらのペースに巻き込むしか有りません。

関連するQ&A

  • 装置の製作会社でソフト開発をやっていますが、お客にソースコードを提供す

    装置の製作会社でソフト開発をやっていますが、お客にソースコードを提供するのって当たり前なんでしょうか? 請け負いで作った装置のプログラムですが、納品後にソースコードを要求されることが多々あり、 営業部門は渡せというのでそうしてます。 どの顧客にたいしても当たり前で、特にソース提供の契約は無いようです。 ですが、過去の資産を流用してコストダウンしているので、 ちょっと疑問に感じております。

  • なぜ開発者が個人で開発したソフトのソースコードを公開することによって満足するのか?

    「ソースコードを公開することで満足できた」と言っている人がいますが、なぜ個人で開発したソフトのソースコードを公開することで満足することができるのでしょうか?

  • ソースコードの読み方

    ソースコードの読み方 いま基幹システムのプログラム開発の仕事をしてるんですが、 今度の仕事ではソースコードを読んで、 プログラム全体を理解することが求められてます。 で、質問なんですが、ソースコードと詳細設計書を読んで そのプログラムの一個一個の処理とその目的を、 完全に理解するにはどうすれば良いでしょう? いま現場にはそのシステムの設計についての知識のある人はおらず、 (したがって人に聞くことは出来ない。) 前任者から一切の引継ぎを行えず、 手元の資料はあくまでソースコードと詳細設計書のみです。 おまけに、この作業担当を一人でやらなければなりません。 したがって、 ソースコード解読のノウハウを伝授して頂きたいです。 いまのところ、ソースコードの処理の流れ自体は プログラムの概要説明等からなんとなく掴めるのだが、 (そんなの当然ですが) ある一つの処理について、 その処理をしたところでそれがどんな要件を満たしているのか? ってことがわからないことがよくあります。 例えば、いま見てるプログラムでは、 タイムスタンプのためのテーブルを読み込んで、 処理の制御をするといった事があるのですが、 いまの能力だとそのテーブルの時刻が、 何を意味しているのか掴む事が出来ないとか、 そういうこまごましたナゾが沢山あって、それらが積み重なって、 プログラムに対する理解というのが不完全なものとなっています。 コーディングの技術的な事柄に関しては、 ほかの現場にいる先輩に聞いてみたり、 何とか書物等で問題を解決するものという前提で、 どのようにすればプログラムの詳細な業務要件を掴む事が出来るか というところまわりをご教示頂けると幸いです。 回答をお待ちしています。 よろしくお願いします。

  • 請負開発のルール

    私は、小さなソフト開発会社でSEを行っております。 PerlPHPなどによるWEB開発おこなっております。 規模的には、小規模な開発が多いです。 今回の質問内容は、昨年当社でトラブルがあった件について投稿いたしました。皆さんの意見をお聞かせいただけますと幸いです。 昨年8月にあるシステムを請けました。 PHP+Postgresにての開発です。 サーバー構築も含めて請けました 発注元とのトラブル 当方PGの体調不良等あり 私の会社は一部の開発とサーバー構築を担当。 発注元が最終的に請負部分の納期に間に合わなかったので、見積の支払いを減額。また、できた部分の評価をされてしまいかなり減額されてしまいました。できなかった部分に関しては、発注元が引き継いだのです。 設計は当方で行いました。 サーバー構築も作業 各フェーズの仕様は、何度か変更になり、最終的なシステム全体の仕様書は無いまま開発にはいる。 11月末納期で作業していたのですが、フェーズ毎にチェックが入るたびに戻りがあり納期までに納入できませんでした。 しかも発注元では、私の会社に内緒で同じフェーズの開発を行っていたようなのです。そうとは知らず私の会社は請けた作業を行っておりました。WEBシステムなので、開発を行っている部分は発注元もリアルに確認できます。 またノウハウ等全て持っていかれているかと考えられます。そして最後には、納期に間に合わないので当方開発部分はほとんど使えないといわれ、開発環境サーバーへのアクセスもできないようにされました。 このような場合ですが、PHP関数、Javaスクリプトでのエラーチェック等、単体納品物とならないのでしょうか。 成果物が納期に間に合わないと言うことで、このような形になってしまうのでしょうか。 最初からトラブルがあったこともあり、発注元からのメールは喧嘩腰でした。 皆様の意見をお聞きできればと思います。

  • プログラムのソースコードについて

    私は個人事業主でシステムエンジニアをしております。 ある商店からプログラム開発を依頼されて間もなく納品予定なのですが、 納品物は各種ドキュメント(操作説明書など)とプログラムのインストーラ(実行ファイル)一式をDVDにして納品しようとしたところ、お客様からプログラムの実行ファイルだけでなくプログラムのソースコードなどのファイル一式も欲しいと言われました。 最初の契約ではその旨を記載していないのですが、通常プログラム開発を請け負って納品するときはソースコード等もファイルとして納品するものなのでしょうか? 初歩的な質問ですがご教授のほどよろしくお願い致します。

  • javaのソースコードからUMLを自動生成してくれるソフト

    システム開発を新しく手伝ってくれる人にソースコードを説明する際にUMLで説明をしようと考えています。 しかし今のシステムをUMLで書くのはめんどくさいので、javaのソースコードからUMLを自動生成してくれるソフトがあればいいなぁと思っています。 ご存知の人がいれば教えてください。

  • ソフトウェアの開発金額って?

    あるシステムを請負で開発中なんですが、開発工数の考え方について発注元と食い違いがあり、困ってます。 その開発は、発注元の事情でリリースまで全く時間的余裕のない状態でスタートせざるを得なかったため、 わが社ではその分野の業務知識のないプログラマを投入せざるを得ず、代わりに経験豊富な上級SEまで緊急投入して、 厳しい納期に対応する、という方針で進めました。 私はこのような場合、通常の開発に比べて ・投入した上級SEの工数 ・品質を保つための社内会議や設計書/テストレビュー等にかかる工数 が増え、その分は当然そのままソフトウェアの開発費用に載せられるものだと思ってます。 ところが発注元の認識は 「スケジュールが厳しくても、成果物としてのソフトウェアの機能は変わらないのだから、工数に載せるべきではない。 どんな人(『業務知識のないプログラマ』や『経験豊富な上級SE』)を使うかはこちらには関係ないことだ」 ということで一貫しています。 「ソフトウェアの価格=作成する機能の積み上げ」という考えがあるのは知っています。 「同じ機能のソフトウェアなのに、開発する会社の事情で工数が変わるのは困る」というのも理解できます。 しかし、厳しい納期が原因で開発原価が膨らむのは事実ですし、 納期も要求定義の一つだと思いますから、それによって開発金額がかわるのは当然ではないでしょうか? いろんな立場の方からご意見を伺いたいです。

  • 業務が理解できるソースコードの読み方

    約1年程前からシステムエンジニアの仕事に就きました。 一番不思議なのは、ベテランSEの人たちは、ソースコードを見て仕様がわかるということです。 例えば私なら、配属されたばかりの部署でソースコードを読んでみて、書いてあるソースを文法的にであればわかるのですが、それが業務としてどうなっているのか、言葉で説明しろと言われたらしどろもどろになってしまいます。 しかし、ベテランSEの人たちは皆、それをやってのけます。 新しい業務に携わるようになって2,3日目ぐらいで、全ての業務がわかったかのようなしゃべり方をするし、実際にそれなりにわかっています。 そういう人に何を見ているのかきくと、ソースコードを読む、という人がほどんどです。 しかし私は、文法はわかっても、仕様書も無いのに、ソースコードから業務まではわかりません。 SEのベテランの皆さん、業務が理解できるソースコードの読み方を教えて頂けないでしょうか。 よろしくお願い致します。

  • ホームページのソースコードを読込

    ホームページのソースコードを読込 こんにちわ。 現在会社内にて自社専用に開発された勤怠管理システムを使用しています。 システムの概要は各々の予定を携帯から送信して、その一覧をWeb上で確認でき、誰がどこ で作業しているのかを確認できるものです。 しかし、その一覧のフォーマットが非常に見にくいため、独自のフォーマットに変更しよう と思いました。(一覧は以下のような感じです) 名前:場所 ○○:社内 ○○○○:社外~作業 ○:指定休 ※名前のあとの:の位置がそろっていない、それぞれの人の所属している課がばらばら その一覧のソースコードを見ると誰が、どこにいるの情報が入っているので、読み込むこと ができればあとは好きなように編集できるかなと思いました。 どなたかWebから必要な情報(あるいはソースコード全部)をメモリ上に読み込む方法を教え て下さい。 ちなみに私は普通の事務職ですが、C言語は一応理解しているつもりです。 以上、よろしくお願いします。

  • システム開発ライセンスについて

    システム開発ライセンスについて Linux + RubyOnRails + MySQL をベースにしたシステム開発(受託)をする予定です。 以下の条件を契約に入れたいのですが、よくある GPL等のライセンスだと何が一番私に合っていますかね? 『ソースコードはお客様に提供する。改変しても構わない。ただし著作権は開発側にある』

専門家に質問してみよう