10周年のSPコンテンツ!

プログラミングとはソースコードを書くだけではない+α(SEとプログラマの分担はどこ?)

・・・と思うんだけどなぁ。 つまりは gokou__ruri さんの言う「プログラミング」と私の認識する「プログラミング」は違うらしい、ということは分かった。
プログラミング
10
ツイートまとめ プログラミングの設計など一連のツイートまとめ(仮) とりあえず、雑にツイートを集めました。文脈は分かるのかな? 今後、追加、削除して行きます。誰でも編集可なので、適当に追加してまとめを充実していだたけると幸いです。 32136 pv 298 59 users 23
夢乃 @iamdreamers
仕様書からソースコードに落とす段階で素人もベテランも変わらないのなら、仕様書を作った時点でプログラミングは9割方終わっている、それだけのこと。ベテランならそういう仕様書を作れるけど素人には無理。 http://t.co/JwaRUlRsy1
おおの @_oono_mjlnbvcfi
@iamdreamers まず、仕様書をもとに設計しますよね? 設計書では仕様書を忠実に設計書にかきなおす。数式やアルゴリズムも忠実に設計書に書きなおし。それからその設計書を忠実に、たとえばC言語化してく。仕様書から直接ソースになんかもってかない。それから仕様書をかくのは発注者側
夢乃 @iamdreamers
@gokou__ruri ウチの職場だと、gokou__ruriさんの言う「仕様書」→要求仕様書、「設計書」→詳細仕様書、と言う感じで、ソースにいたるほとんどのドキュメントを仕様書と呼んでるので、その感覚でした。違和感があったらごめんなさい。
おおの @_oono_mjlnbvcfi
@iamdreamers 言葉は職場によってかわるものなのでしょうがないですね。要求仕様書は顧客が作成。詳細仕様書はSEが作成。プログラムはPGが作成。ここで、要求仕様書、詳細仕様書、プログラムは作成する言語が異なるだけで、ほとんど一対一で対応した記述になります。
夢乃 @iamdreamers
@gokou__ruri 私の経験上ですが、「ほとんど一対一」にはなりません。ソースの改造が必要なとき、まず仕様書や設計書を読んで理解した上でソースを見ますが、仕様から私が想像したソースとは掛け離れた内容であることがほとんどなので。
おおの @_oono_mjlnbvcfi
@iamdreamers 一対一で対応してないとしたら、要求仕様書に忠実なプログラムになってないってことじゃないんでしょうか?
夢乃 @iamdreamers
@gokou__ruri いえ、そうではなく、要求仕様書に対応するためのプログラムの書き方は一通りではない、ということです。
おおの @_oono_mjlnbvcfi
@iamdreamers 要求仕様書から詳細仕様書をつくるときに、SEの工夫が入る可能性はありますね。でも、基本的には要求仕様書に忠実に書き上げないといけない。 それで、詳細仕様書とプログラムは完全に一対一で対応。 だと思ってたけど、そうでないところもあるのかな?
夢乃 @iamdreamers
@gokou__ruri 適切な例かどうか分からないけれど、例えば、クイックソートを実現するプログラムは、繰り返し処理にするか、関数処理にするか、で(プログラムの中身は)まったく別物になりますよね。より複雑な仕様だったら、実現方法はより多種あるだろうことは、容易に想像できます。
おおの @_oono_mjlnbvcfi
@iamdreamers 繰り返し処理にするか、関数処理にするかを決めるのはSEで、それは詳細仕様書の段階で決まりますね。詳細仕様書は、ほんと詳細に書かれてて、Cで書くか日本語で書くかの違い程度までかくの。なので、プログラマは何も考えなくていい。
夢乃 @iamdreamers
@gokou__ruri ソートの場合、 要求(客)「10個の数値昇順に並べ替える」 詳細(SE)「ソートアルゴリズムを決める」 実装(プログラマ)「繰り返し処理か再帰処理か決める」 と思いますが。尤も、現場によって誰がどこまでやるかは異なるから、これが絶対でありませんが。
おおの @_oono_mjlnbvcfi
@iamdreamers  ぼくの知ってる世界では、詳細設計書には「10個の数値を昇順に並べ替える」アルゴリズムを詳細に記載します。あるいは、要求仕様書に、「10個の数値を昇順に並べ替える」アルゴリズムが詳細に記載されています。
夢乃 @iamdreamers
@gokou__ruri アルゴリズムが詳細に記載されているなら(あとは何も考えずにソースにするだけなら)、詳細設計書の段階ですでにプログラミングまで進めている、ということです。ソースを書くのはプログラミングの最後の段階だけ、ということ。
おおの @_oono_mjlnbvcfi
@iamdreamers そういうことです。なので、プログラミングは誰にでもできる。10時間にもみたない研修を受けただけのド素人にもできるといっているのです。でも、どうやら、これは世間一般には通用しない特殊な環境の話だったようですが。
夢乃 @iamdreamers
@gokou__ruri なんで「そういうこと」になるんでしょう?「プログラミングは誰にでもできる」のであれば、「詳細設計書は誰にでも書ける」と同義になってしまいますよ。詳細設計書の段階でプログラミングを進めている、というのはそういう意味です。
おおの @_oono_mjlnbvcfi
@iamdreamers ぼくがここでいってるプログラミングは、詳細設計書->プログラミングの部分の作業です。詳細設計書はSEが書くものなので、詳細設計書のなかでプログラミングが行われていたとしても、それはプログラマの範疇じゃないので関係ありません
夢乃 @iamdreamers
@gokou__ruri それは「プログラミングの最後の部分」と最初から言っているとおりで、その段階なら素人でもベテランでも一緒でしょう。確かに。でも、ベテランのプログラマはプログラミングのより前の部分、すなわち詳細設計書から作れます。
おおの @_oono_mjlnbvcfi
@iamdreamers なるほど。「プログラマ」という職種の担当職務、職域の考え方が違うということですね。 でも、「素人でもベテランでも一緒でしょう」ってのは一致したようですね
おまけ・・・SEとプログラマの仕事の境界はどこ?

(会社によって違うだろうし、同じ会社でもプロジェクトごとに違う場合もあるだろうけれど)

夢乃 @iamdreamers
プログラミングまでやってくれるSEって、いるの?そりゃ、小規模なプログラムならSEが自分で詳細設計・プログラミングからコーディングまでやることはあるけど。大規模なプログラムでは、アルゴリズムも決めないんじゃなかろうか。(ウチはそう。どこでもそうとは限らないだろうけど)
夢乃 @iamdreamers
こっちのまとめ http://t.co/wyZsRMadum に例示したソートプログラムの場合、客からソートプログラムを要求されることは ほとんどなくて、客のシステム要件を満たするのにソートプログラムが必要、とSEが判断する。客と相談しながら、って場合もあるだろうけど。
夢乃 @iamdreamers
で、ソートプログラムの要件をSEが決める。実行時間はこれくらいとか、使っていいリソースはこれだけとか、安定ソートかどうか、とか。
夢乃 @iamdreamers
(ソートという、充分研究されたプログラムなら、SEがアルゴリズムまで決めるかもしれないし、そもそも小さいプログラムだから、前述のようにSEがコーディングまでしちゃうかもしれないけど)
夢乃 @iamdreamers
そして、SEから出てきた要件に合うように、プログラマがアルゴリズムや実装方式を決めて、実際に動くプログラムにする、という風になる。
残りを読む(2)

コメント

Tsuyoshi CHO @tsuyoshi_cho 2013年7月7日
関数の内容までほぼ確定している「詳細仕様書」なのかどうか、でどっちもあったなぁ(っつても自分がSEでPGなパターンだったが)
とげとげ @togetoge10 2013年7月7日
例のまとめコメントにもあったと思いますが、件の人が言ってるのは「コーダー」ってことかと。
たけ爺 @take_ji 2013年7月7日
完全に「言葉の定義」が違うだけだよね。「文章書いてます」って言った時、「作文」しているのか「清書」しているのかの違いくらい。
アゼリア @Azelia_BB 2013年7月7日
プログラミングってよりコーディングですねこれ
たるたる @heporap 2013年7月7日
それを言うと、全員が画家になれるし、作家になれるし、スポーツ選手になれるし、法律家(陪審員)にもなれるし。
たるたる @heporap 2013年7月7日
多くのアルゴリズムはテンプレート化しててコピーペーストで作れるから、そのコピーペーストで作れる範囲内なら、たぶん誰でもできると思う。でも1カ所だけ見て同じだったから「全てにおいて誰が作っても同じ」と言えるかというと、そうではないと思う。
30年寝太郎 @Avocado_Inside 2013年7月8日
一対一でソースに落とせる設計書を書いて、さらに「プログラマ」にソースを書かせるんですか・・・ そこまで労力掛けるならなんでプログラム自動生成ツール使わないんですかね? 言われた通りのコード書くだけならツールの方が正確迅速ですよ。
夢乃 @iamdreamers 2013年7月9日
SEとプログラマの作業分担に対する私の考えを追加しました。
onkapi @onkapi 2013年7月9日
システムエンジニアさんとプログラマさんという分担をはじめて意識。建築の設計屋さんと施工屋さんの違いみたいな感じも感じましたデス。私はその境界には幅がありそうに思います。
onkapi @onkapi 2013年7月9日
設計屋さんはできあがるものの方針がぶれないように、施工屋さんが困らないようにする事が大事。でも施工屋さんのすることや見方がが設計屋さんにヒントを与えることも多いと思います。
だいし @daishi_hmr 2013年7月9日
あるものから1対1で機械的に変換できるモノに何の価値があるんだろう。 そこにどうして疑問や虚しさを感じないんだろう。 わからん。
大石陽@聖マルク @stmark_309 2014年8月29日
これって詳細設計書を書く人がそのままコーディングまでしたほうが断然早くて安いんじゃ……プログラマ必要なんだろうか。
夢乃 @iamdreamers 2014年8月29日
stmark_309 若しくは、プログラマが詳細設計書から書いちゃうか。
ログインして広告を非表示にする
ログインして広告を非表示にする