パスワードを忘れた? アカウント作成
815611 story
プログラミング

標準的なソフトウェア開発環境って? 110

ストーリー by hylom
あなたの標準は私の非標準 部門より
あるAnonymous Coward 曰く、

本家/.「Ask Slashdot: Standard Software Development Environments?」より。

自分はソフトウェア開発に携わってまだ5年であり、今までずっと同じ会社に務めてきた。最近転職したのだが、転職先の開発プロセスの技術の低さに驚いている。

今までの会社では継続的インテグレーション、単体テスト、オートメーション化された回帰テスト、業界標準の(オープンソースではない)バージョンコントロールが採用されていた。また自分もJavaのリリースなど最新のツールを身につけるよう努力していた。しかし現在の会社ではこれらは全て無く、コンパイルされたファイルはそのまま本番環境に手動で移され、バージョンコントロールはされていない。使用しているツールはもうサポートが切れて5~7年になる上、Java自体も古い。

このような開発環境はよく見受けられるようなものなのだろうか?最新技術に遅れないようにする環境の方が多いのか、それとも何とかやっていけるならそれで良いという方が多いのだろうか?現在の仕事は業界に入ってまだ2社目であるので皆さんの経験談をお聞かせ願えないだろうか。

前職の環境が整いすぎていたという見方や、タレコミ人は「幅広い」開発環境の端から端に身を置いたのだという意見、また「バージョンコントロール無し?継続テストなし?開発規律に欠けるやばい会社だ、逃げろ」といったアドバイスなど、本家/.には多くの意見や経験談が寄せられている。

/.J諸兄方がみてきた開発環境の「ピン」と「キリ」はどんなものだっただろうか?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by baku3393 (32616) on 2011年10月12日 18時23分 (#2033526) 日記
    そんな会社に仕事を出す会社がある事にびっくりですわ……。

    むしろ品質報告とか進捗報告とかどうやってやっているのか知りたいです。
    --
    ---- ばくさん!@一応IT土方
    • Re:むしろ (スコア:3, 興味深い)

      by tarosuke (2403) <webmaster@tarosuke.net> on 2011年10月12日 19時11分 (#2033554) 日記

      そりゃーKKDさねw

      今俺は、LinuxカーネルのバリアントをSubversionで管理しているという奇妙なプロジェクトにいる。
      本家がgit使ってるのにパッチ当てて追加されたファイルや削除されたファイルを手動でリポジトリへ反映とか、複数ソースの変化を一つのブランチにごたまぜにしておいて後でログ見てチェリーピックとか(藁

      当然チケットドリブン開発とかみたいな開発管理は一切やってない。
      ユーザの要望も伝言ゲームで...このくらいにしておく

      親コメント
      • by Anonymous Coward

        あー・・・その会社のそのプロジェクトって・・・
        他人事とは思えない

    • by saitoh (10803) on 2011年10月13日 20時29分 (#2034299)

      そんな会社に仕事を出す会社がある事にびっくりですわ……。

      客先でカスタマイズしたソースをそのまま自社に持ち帰って、他の客へ渡すマスターにデータごと複製してたMDISに多くの図書館が仕事を出してたわけで。

      親コメント
    • 品質報告とか進捗報告をまともに検証するには、発注する側にも相応の技術と体制が必要です。
      ・・・が、日本においては大企業であってもCIOを置いていない事は珍しくありません。能力が無いなら、第三者的な企業に進捗管理や品質管理を頼めば良いのですが、その手の事もしませんからね。

      技術的な面ではいかようにでも嘘の付きようがあるのが現実です。

      親コメント
  • 本家のタレコミ人が転職先を間違えたのは確かだと思う。

  • VCSなくとも、担当範囲内のメンバーと飲みや遊びや休憩時間に充分交流できている場合は問題が発生した事がなかったりします。 あ、作業前処理前のバックアップは総員で確認し続けるべき。 あと先日やらかしましたが風邪薬とかでぼーっとしてるのに仕事長引いてついうっかりとかありますねごめんなさい。 やっぱりVCSできっちり管理してた方がいいんでしょうね。 :手持ちのITILバッジ剥奪されても仕方ない感じの昨今
  • by sumeshi0206 (12305) on 2011年10月13日 15時50分 (#2034137) 日記

    5年くらい前だけど、面接でどうしてそんな質問したのか忘れたけど、バージョン管理どうやってるか聞いたら
    専門の人が居てその人にファイル渡してバージョン管理するって若干恥ずかしそうに答えてくれた人が居た。
    お金のある所は雇用が生まれていいですね。

  • by Anonymous Coward on 2011年10月12日 18時16分 (#2033515)
    偉くなれ。
    オールドタイプなプロジェクトリーダーに継続的インテグレーションだの、単体テストだの、オートメーション化された回帰テストだの、業界標準のバージョンコントロールだのを教え込むくらいなら、そういうの使いこなせるお前が開発リーダーになった方が100倍早い。
    • 多分、日本では、「偉くなれ」「その会社に技術を持込む」というのは正解

      ただ、元ネタは本家なので、おそらく米国
      その会社にいたままでプログラマがマネージャはおろか、プロマネやアーキテクトに昇格する事は難しいと思う。ましてや、プログラマの分際で開発プロセスを改革するのも難しいかと。
      効率が悪い、品質が悪い、会社に勤めていたという負の実績が積み上がる前に、さっさと再転職すべき
      親コメント
    • by Anonymous Coward
      一番重要なのは、自分がオールドタイプに<ならずに>、あるいは<なる前に>偉くなることだな
    • by Anonymous Coward

      転職したのがヘッドハントなら投稿者の培ってきた物を導入したいってことだと思うんだ。
      そうでなく給与に引かれて転職したのであれば人生の罠にはまったとか下り坂の運をひろったって事だろう。

      #良くあることだと思うんだがなぁ

  • by Anonymous Coward on 2011年10月12日 18時16分 (#2033516)

    今までの会社では継続的インテグレーション、単体テスト、オートメーション化された回帰テスト、業界標準の(オープンソースではない)バージョンコントロールが採用されていた。また自分もJavaのリリースなど最新のツールを身につけるよう努力していた。しかし現在の会社ではこれらは全て無く、コンパイルされたファイルはそのまま本番環境に手動で移され、バージョンコントロールはされていない。使用しているツールはもうサポートが切れて5~7年になる上、Java自体も古い。

    「俺のいた環境に合わせて、転職先の環境を変えたい」なんて要望はまず通らない。
    何が「ピン」で、何が「キリ」か、なんて、環境依存(その企業の生い立ち依存)だし。

    いままで、社内がsvnで管理していたところに居たので、それにあわせてログとバージョン管理をとっていたなら、
    以下の状況に合わせて、転職先の状況に合わせられる人が勝ちじゃね?

    1.転職したら、RCSで管理していた。
    2.転職したら、gitで管理していた。
    3.転職したら、バージョン管理なんてしていなかた

    ってときにシームレスで移行できたら勝ち組でしょ。
    そして、そういうパッケージを提供できたらより勝ち組でしょ・

  • by Anonymous Coward on 2011年10月12日 19時07分 (#2033550)

    なんかめんどくさいな。
    バージョン管理システムを導入していなかったり古いjdk使ってるだけで
    その会社の技術レベルが低いとかなに言ってますのんって感じ。
    マシンスペックに異様にこだわる無能プログラマに見えてしょうがない。

    • by Anonymous Coward

      動いているものが正であり、何かを変えるとその分の費用、時間、労力がかかるって事を良くわかっていない気はちょっとしますね。
      クライアントの了承を取ったり、すべてテストし直しになったりするのだって嫌ですし。

      • by firewheel (31280) on 2011年10月12日 22時36分 (#2033708)

        >クライアントの了承を取ったり、
        これは馬鹿なクライアントが自分のクビを絞めているだけだから放置するとして、

        >動いているものが正であり、何かを変えるとその分の費用、時間、労力がかかるって事を
        だからといって事態が悪化するのを手をこまねいてみているのは、愚かなマネージャーだけが
        することですよ。そんな風にレガシー化するに任せて、みずほ銀行みたいなトラブルを起こしたいですか?

        あなたが何も変えなくても、周りでは技術は進歩するし開発効率もあがるのです。
        あなたの生産性が昔と同じということは、ライバル企業に開発効率や品質で差を付け
        られるということですよ。さらにあまりに古すぎる場合は、製品販売も中止されるしサポートも
        打ち切られるし、解説書も手に入らなくなるしその技術を使う人間もいなくなります。

        「それでもあなたはCOBOLを使い続けますか?」な感じですね。そんなにCOBOLと心中
        したければあなた一人で死んで下さい。私だったらあなたのような人に足を引っ張られて、
        巻き添えを食うのは御免被ります。

        親コメント
      • しかし, だからと言って2社目の開発環境のままでは開発能力の向上は望めない。

        元コメの#2033550へ。
        バージョン管理システムがないのは, 技術レベルが低いというには十分だ。
        親コメント
      • by Anonymous Coward

        世の中、それでちゃんとお金もらってるところもあるから・・・

        うちはもらえてないけどね!
        #1次受けメインだけど某大手から下請で仕事もらうとギャップに苦しむ。

    • by Anonymous Coward

      jdkのバージョンはいいとして、バージョン管理システムの有無は非常に重要なファクター。
      ソフトウェア開発(主に製造)のプロセス上のいろいろなしきたりはバージョン管理(リリース)を手動で管理する事に起因することが多かったし、
      その結果、非常に非効率的だった。
      バージョン管理システムそのものも、運用も十分こなれてきているのに、導入されていないのは何かしらの構造的な病巣があると言い切っていい。
      まあ、そういう実例も知ってるんだけどね。

      • by Anonymous Coward on 2011年10月12日 20時52分 (#2033633)

        jdkのバージョンはいいとして、

        いやいやJDKのバージョンも一概にいいとは片付けられないですよ。
        いまどきこんな古いJDK使ってんの!?という会話がされるのはほぼ間違いなく1.4以前の場合です。
        しかも酷いところは新規プロジェクトだったりします(Twitterのプログラマーの愚痴調べ)。

        5.0での変更が大きかったので付いてこれなかったわけですが、じゃあ5.0が出たのはいつよ?というと2004年、もう7年も前になります。
        この7年の間に、5で追加されたアノテーションや総称型といった機能は広く使われるようになりました。
        Javaプログラムの生産性は制限の多かった時代から大きく改善しています。

        ・・・が、7年もかけて、それらの進化に全く追随できなかったわけです。
        ついでに言うなら、とっくにサポート期間は終わっています(有償サポートはあるが)。
        昔の携帯や組み込み系のように特定のバージョンしか使えない、というのなら仕方ないですが、そうでないならその会社の技術レベルは低いと言われて当然でしょう。

        親コメント
      • by Anonymous Coward

        うちはバージョン管理システムを導しない理由はただめんどくさいからですね。
        複数人で同一ファイルを編集することはまずないので、
        皆さん勝手にsshでアクセスしてvimかemacsで編集してね!って感じです。
        バージョン管理といっていいのかは怪しいですが、修正前は~.java.20111012.bakの形式でコピー。
        これでなんとかやっていけてます。

        • うちはバージョン管理システムを導した理由はただめんどくさいからですね。

          親コメント
        • ありえねー!
          一人開発だってVCSは必須だろー。
          コピーを手動で管理する方がずーっとめんどくさいぞ?
          VCSってのはそれを簡単確実便利にやってくれるツールなんだから。

          親コメント
          • by firewheel (31280) on 2011年10月12日 22時41分 (#2033712)

            全く同感。一人で開発していても、以下のようなことは絶対に起こる。

            変更したファイルは全部バックアップを取ったと思ったけど、実は漏れがあった。
            どこを修正したか忘れた。
            差分はどうなっているか覚えてない。
            ついうっかり最新ファイルを/バックアップを/両方とも消してしまった。
            PCを変更する時にどれをコピーすればいいか良く分からない。
            コピーしたけど漏れがあるんじゃないかと怖くなる。

            そういうのを見るたびに、「バージョン管理くらい使えば良いのに」と思って見てます。

            親コメント
          • by Anonymous Coward

            vcs?cvsのことですかね?
            コピー手動がめんどくさければシェルスクリプト書けばいいかなって思っているもので・・・

            • by elderwand (34630) on 2011年10月12日 20時37分 (#2033624) 日記

              一般名称としての Version Control System [wikipedia.org] (参考: 英語版 [wikipedia.org]) のことでしょう。
              対する Concurrent Versions System [wikipedia.org] は、固有名詞。

              だいぶ長いこと、ネットで使える VCS は CVS だけだったような気がする。Subversion [apache.org] が出てから、慣れたと思ったら、Bazaar [canonical.com] が出て来て、あっというまに分散型 VCS 全盛になってしまった。 (出て来た順番は個人差があると思うが)

              今使ってるのは bazaar ですが、開発ツリーのトップで bzr init . するだけなので、簡単ですよ。

              #おまけを書いてるうちに「既出」になってしまったぜ。おまけに免じて許してくれ。

              親コメント
            •  Version Control System を知らんのなら、とにかく使ってみるべし。
              私も初めて使いだしたときは、概念にもコマンドにも馴染んでなくて漠然と不安感を持っていたから、おっくうがるのは理解できます。
               Subversion入門本読むとVCSの一般論から解説してるので、シェルスクリプトでコピーするよりずっと魅力的であることがわかりますよ(ウェブ上のボランティア解説よりも、書籍のほうが一般的な話から始まっててわかりやすい)。

              親コメント
            • Version Control Systemじゃないのか?

              親コメント
            • VersionControlSystemのこと。総称。
              シェルスクリプトなんて書く必要ないじゃん。そこにツールがあるんだから。

              親コメント
            • by try.fanks (34832) on 2011年10月12日 22時30分 (#2033702)

              バージョン管理本来の目的とはそれるかもしれませんが、
              ソース本文以外で変更履歴などのコメントを確実に時系列に記録する目的で使ってます。
              自堕落で自分に甘いので、ソースコメントは端折ったり、日付変更日付加えなかったり変更理由すら記録しなかったり。
              当然仕様書の差分も書かないので、バージョン管理からのコメントが初版仕様書からの変更分として運用しています。
              ちゃんと、”変更”とか”改訂”だとかの短いコメントもrejectしてます。どれだけ自分を信用していないんだ・・・

              親コメント
        • めんどくさいって、なんか美徳だったっけ?
          いや、プログラマの美徳ではあるんだけど。なんか違うぞ。

          --
          #存在自体がホラー
          親コメント
        • > これでなんとかやっていけてます。

          なんとかやっていってるものを普通にやっていけるようにするのがVCSですよ。
          --
          # yes, fly. no, fry.
          親コメント
        • by Anonymous Coward

          >修正前は~.java.20111012.bakの形式でコピー。
          で、まあそういうしきたりに起因するコストをどう考えるかという事で。
          リリースで何かしら問題が起きたときに、バージョン管理のミスを考慮に入れなきゃいかんのと、ある程度切り離せる(もしくは追跡できる)のは
          大きい。ある程度経験を積むと非常にありがたく思えるようになる。大体、そういうヒューマンエラーでギスギスするのっていやだし。
          めんどくさいって、SVNのサーバ立てるのって15分もいらんよ。
          立てられない事情がある場合もあるというのは分かるけど、それがまあ構造的な病巣ってやつで。

        • by Anonymous Coward
          > 複数人で同一ファイルを編集することはまずない
          でも一人で複数ファイルを編集することはあるよね。
          機能ほにゃららを実装したときに変更したファイルはどれとどれだったかな〜ってときに日付でしか管理してなかったら即破綻するんじゃね、それ。
          答え:複数ファイルを編集することもない。全部main()に書いてある。
    • by Anonymous Coward

      確かにバージョン管理システムを導入していないとかはどうかと思うが
      使っているOSやフレームワーク、ここではJDKが古いことに理由があるのではないだろうか
      組み込み業界では、実績のあるOSやチップを選択するのが最良のことがあるし
      インデント開発なら動作環境を変えるなんて普通しないよね

      結局表面だけじゃなく、どういう理由でその開発環境になっているのか次第じゃなかろうか

  • by tacores (43628) on 2011年10月13日 9時16分 (#2033885)
    開発プロセスの改善に非常に前向きな組織でも、テスト等を自動化していないプロジェクトは多々あります。 プロジェクトの特性により自動化しにくかったり、本当にコスト削減になるか明らかでない場合があるからです。 継続的インテグレーションやオートメーション化された回帰テストを採用するかどうかはマネジメントの判断になるので使ってないからレベルが低いとは言えません。 でも、バージョン管理ツールを使ってない時点で推して知るべしだと思います。
  • by Anonymous Coward on 2011年10月12日 18時18分 (#2033518)

    バイナリエディタとか・・・

  • by Anonymous Coward on 2011年10月12日 19時43分 (#2033577)

    1台のPCと充分なハードディスク容量
    エディタとビルドに必要なコマンドラインツール
    実行(テスト)環境
    ビジュアルデバッガとか有れば小躍りして喜べ!

    • by Anonymous Coward on 2011年10月12日 21時39分 (#2033667)

      今いるところ

      ブラウザ:IE6以外をたとえサブでも導入する権利はありません、IEは早く死んでください。
      エディタ:秀丸以外を選択する権利はありません、慣れてないと使い辛いです。
      統合開発環境:どこかの会社がEclipseを改悪したツールしか選択する権利はありません、アホ重いです。
      ネット:使えません、たぶん発展途上国にいるのだと思われます。
      HDD:40GBです、アホ重いツールでほぼ埋まっています。

      ここは生産性を重視している職場だと説明を受けました。
      七年ぐらい前にタイムスリップしている可能性が高いので、早く現代に帰りたいです。

      親コメント
  • by Anonymous Coward on 2011年10月12日 19時52分 (#2033581)

    という言葉を初めて聞いた時は、ちょっとワクワクしたな。

typodupeerror

192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり

読み込み中...