|
|
|
|
|
■このプロジェクトはリリース予定日までに確実に間に合わないと大変な事になる。
|
統括する大規模案件のリリース予定日が刻一刻と近づいてきており、
進捗表では予定通りに進んでいるので、安心していたのだが、気になって管理画面を確認してみた。
ここで気がついたのだが、書類上は進捗表通りに進んでいても、全てにおいて設計通りでない実装になっており、
特に管理画面(View)と呼ばれるUI部分のデザインや機能がまともに実装されていなく、色もおかしい。
至急、設計通りに修正するように手配を行ったが、何度修正を行っても直っていない。
これではリリースまでに絶対に間に合わないが、現状の人的リソースではもう無理だと判断。
■違約金程度ではすまない状態なった際には、どのようになるのか想像もできない。
|
解決できる人的リソースを投入すべく、取引先の信頼のおけるシステム開発会社に声をかけてみたが、どこもUIやデザインが関わるシステム開発業務というのは大変苦手で、この業務には対応が出来ないと断られた。
守秘義務の優先度も難易度も高く、信頼のおけない単価の安いシステム会社に頼めるレベルの案件ではなく、
ホームページ制作会社程度のレベルでは、作業依頼すると余計に悪化してしまうのは分かっているので論外。
上流行程から相談でき、リリースに間に合わせて修正を行って、見えない問題も指摘してくれる所は無いだろうか?
正直言って設計通りに実装されていないのは画面部分(View)だけとは到底思えない。
恐らくロジック(Model)やコントローラー(Control)部分も同じような状態の可能性は高い。
とにかくリリースまでの、日程を考えると頭痛がしてくるくらいの精神状態が続いている。
何処に相談していいのかさっぱり分からずに困っている。
|
|
▲コンサルティングシーン選択に戻る |
|
|
|
|
■実際にコンサルティングの依頼を受けて資料や状況を詳しく確認。 |
システム開発における管理画面とは、通常の誰にでも見れるようなホームページとは違い、
目的を達成する為に、余計な機能やデザイン等は一切ついてなく、とにかく業務の信頼や効率を最も重要視するデザインで設計されます。
この管理画面というホームページは誰にでも見れる物ではなく、決められたエリア、決められた担当者にしか見れない様になっています。
またパスワード等で厳格に管理されており、まさに管理専用のホームページです。
※ここではウェブブラウザ(Internet Explorer、FireFox、Google Chrome、Opera)で閲覧する物を、全くシステム開発を知らない方にも分かりやすく説明するために、全てホームページという表現で表記しています。
■シンプルなデザインで作られるシステム開発における管理画面というホームページ。
|
デザインもチープな感じで、誰にでも出来そう、これくらいたいした事は無く自分にも出来るのではないか?
と、誰もが感じる位に、見た目はとても簡単に修正が出来そうなホームページで、単価も高くおいしい仕事に見えます。
これがポイントで、本格的なシステム開発の管理画面と呼ばれるホームページはそんなに甘くはありません。
これは実は最も難易度が高いとされる、ホームページ制作業務(WEB案件)になります。
■大変重要なので、良く記憶しておいて欲しいのですが、見た目で判断してはいけない典型的です。 |
確かな実績や高い資質、デザインやシステム開発の上流行程から以下、全ての行程を実務で行った事が無いと対応ができません。
何故出来ないのかはコンサルティングの内容をご覧頂ければすぐに分かります。
軽い気持ちでは絶対に受けてはいけない案件になりますが、実際には普通のホームページ制作会社は気にする事はありません。このような業務依頼がくるようなホームページ制作会社は殆どいないからです。
理由は、発注元も素人ではありませんので、このような状態になると本当に解決出来ると判断した所にしか絶対に発注しないからです。
この発注元は素人ではないということは、本業そのもので困っているという事になります。
※通常において、ホームページ制作依頼というのは、本業以外で困っている為の依頼が殆どです。
※管理画面のホームページ制作依頼(修正)というのは、本業で困っているという根本的な違いがあります。
この業務依頼は大規模開発特有の、かなりの人的リソースが投入されているにもかかわらず、それでもホームページ制作で発生している問題の解決が出来ていない。
こういった、本格的なシステム開発における管理画面のホームページが炎上(納期に間に合わない)しているケースはすでに特定の条件を満たす案件のみになり、必ず以下の条件キーワードに一致します。
Web Logic(ウェブロジック) 、Java(ジャバ) 、Oracle(オラクル)と呼ばれる有名な3セットです。
あまり深く考えなくていいのですが、システム開発の管理画面というホームページの修正には、普通のホームページ修正と違い、ウェブロジック、ジャバ、オラクル、というキーワードが必ず入っていると思ってください。
■システム開発の管理画面(ホームページ)の修正作業について、これからご説明します。 |
このキーワードが全て入っているホームページの修正作業についてこれからご説明していきます。
このウェブロジック、ジャバ、オラクル、という環境で動作する管理画面というホームページはMVCという設計思想の元に、通常は各種設計や実装(総合的なデザインの事)が行われていきます。
MVCというのはModel,View,Controlの頭文字からとった物で、順番にモデル、ビュー、コントロールと呼ばれます。
あまり、通常のホームページ制作において聞いた事が無いという方は多いのではないでしょうか?
通常のホームページ制作会社等が制作を行うのは、この中でビューと呼ばれる部分だけだからです。
ビューと呼ばれる物は簡単にいえば、ウェブブラウザで表示される管理画面、すなわちホームページの事です。
様は機能ごとに役割を決めて、それぞれの担当部分のみを実装していこうという考え方がMVCであり、
ビューには画面デザインを、ロジックと呼ばれる部分にはプログラムを、コントローラーにはサーブレットと呼ばれる機能を生成します。
このようなイメージで、フレームワークとよばれる共通処理を簡素化した開発キット等も選定して、要件定義や設計が進んでいくのですが、
通常はこのような美しい理想通りの設計や実装になる事はまずありません。
これはあくまで教科書どおりの概念であり、このようにしましょうという理想論にすぎないからです。
■結果論で書かれる参考書や教科書等は、実務においては何の役にも立ちません。 |
実際には至る所で様々な関連が複雑に発生してしまい、気がついた時にはもう実装した人も手が付けられない状態になっています。書類はもちろんソースコードのみで、その他は全く存在すらしていない事も多いです。
ここで最初に戻りますが、シンプルでチープなホームページである管理画面の修正が最も難易度が高いというのは、
見た目上の業務依頼は管理画面のデザイン修正でも、実際は全く異なる業務レベルだからです。
管理画面というホームページには沢山のロジックと呼ばれるプログラムのコードが至る所に記述されている訳です。
フレームワークのタグも組み込まれていますし、直接ベタ書きでプログラムのコードも多数埋め込まれています。
フレームワークと言うのは高頻度で使用する共通箇所をひな形の様にしたコードの枠組みの事です。
こういった管理画面というホームページを修正する為には、このシステム開発における業務の要件を理解して、実際の実装も理解しないといけません。単純に画面のデザインが出来るだけでは、出来ない理由はこれになります。
いわゆる上流行程にあたる要件定義を極めて短期間で行わなければいけなくなります。
これが出来なければ、業務が分からないという事ですから、この業務依頼を履行する事はできません。
なぜなら、既に管理画面というホームページに埋め込まれているプログラムのコードには独創的なコードや致命的なバグが多数潜んでいるからです。それは論理的なエラーも当然含みますので、単純な物ではないのです。
しかも、そのプログラムのコードはロジックやサーブレットと密接に関連しており、複数のメモリ上のオブジェクトを参照したり、インスタンスを生成したりした作りで安易に修正そのものが出来ないからです。
■無数に存在するホームページ制作会社のような気分で出来る仕事ではありません。 |
こういった作りになっているシステムは、一カ所変更するだけでも全て追っていかないといけません。
HTMLのタグを読めるから、簡単に管理画面をDreamWeaverで修正しましたでは、余計に問題が増えるだけです。
また、管理画面というホームページ部分以外は、触れない事が多く、修正等も単なるデザイン会社気分で簡単には出来ないのです。これはロジックを修正するとコンパイルして再度パッケージを作ったりする為です。
システム開発特有業務の流れとしてファイルの全ての履歴をとり、選任の管理者が管理を行っているのは通常です。
そして管理画面と呼ばれるホームページの修正を行っていく訳ですが、これが作業を行うと次から次へと問題が多発します。
その度にコードを追っていかなければ行けません。
画面の見た目だけで、管理画面特有のにたような画面デザインの連続だからといって、DreamWeaver等で適当にコピー&ペーストを繰り返しながら直すと更なる障害を引き起こすからです。
このシステム開発における管理画面炎上の修正を行えるという事は、その時点でそのシステム開発において誰よりも設計や実際のスパゲッティ状態になっている実装に詳しくなっているという事になります。
そうでなくてはこの修正作業はできません。
できても余計な障害を発生させてしまうだけで、更に手が付けられなくなります。
■管理画面の修正作業を行う為には、プロジェクトの誰よりも業務を理解する事になります。 |
そもそも、設計書やER図等も全く違うものや、概念的なこうして欲しい的な物である事が多く、
実装を意識した物ではなく、また実装する担当者も、業務を理解していない場合が殆どです。
業務を理解出来ていないとどうなるのか?
全てにおいて自分たちの出来る範囲で強引に力技で実装を試みようとしますが、これは当然のふるまいかもしれません。なにしろ、何も出来なかったら先に進む事はできませんが、進捗表は日に日に更新されていきます。
具体的には何をどうしたいかは分からないけど、それを実現する為には、どこのクラスやDBの値を書き換えたいかは分かると言った感じです。
だから、業務は分からないけど、とりあえず動作する様には実装出来る。
これは実際は大変な問題です。その後発生する状況の事等、一切考慮していないからです。
力技で実装したロジック等は、後ほど記載するUMLで書類を作ればすぐに視覚的に分かります。
逆にUMLを作成しなければ、ソースコードだけを追っていてもどんなにスキルがあっても把握する事は出来ません。
※UMLとは、この規模のシステム開発の一連の動作や関連を正確に書類化するフォーマットです。
■人間の記憶力を過信してはいけません。必ず共有出来る書類を作成する事です。 |
このジャバというホームページの作り方で作ったシステムというのはリソースの数やコード数も桁違いで、どれだけ記憶力に自信があっても、所詮、人の記憶の中で全てを管理出来る物ではないのです。
こうなると、もう手が付けられなくなるのですが、これは永遠の課題かもしれません。
一部の外資系の様に、全ての行程ができる人材のみで開発を行えば少人数でチームを決めて、その都度、適切な配置も出来ますが、この手法をとるには大変優秀とされる人材を集めるくらいの魅力が必要です。
しかし、日本の開発は残念ながら、そのような概念は全くありません。書類のみで進捗表を作り、あとは適当に人数合わせをして補充していく手法だからです。偽造されたスキルシートが唯一の選別手段です。
コストの問題や、日本独特の価値観等もあると思いますが、根本的な問題は、トップの能力そのものではないでしょうか?プロジェクトの最高責任者が天下りの実務も何も知らないおっさんというケースが多いのは大規模開発特有です。
座っているだけで、高額の報酬をうけとる天下りのおっさんは楽で高収入ですから、辞められない仕事なのでしょう。 これが日本のシステム開発の現状です。もちろん外部から見れば成功は全てこのおっさんの手柄になります。
■どの業種でも、最も強いストレスにさらされるのは、現場のマネージャーになります。 |
コンサルティングの結果、管理画面に埋め込まれている多数のロジックやDBを呼んでいる振りをしているコードを発見、
全てを直す事は出来ないと判断、今回のリリースや運用を考えて最適な改修方法を提示。
その後、修正を行い、手を付けない方が良い部分は、出来る限り何もしない方向で修正を行い完了。
無事に管理画面は稼働する様になり、ホームページとしてテストサーバにあがりテストを受ける事になりました。
リリースには間に合い、出来る限りの修正を行い、軌道修正が出来ましたので、無事に事なきを得ましたが、まだまだ潜在的な不具合は多く、
それを修正するには次の大幅な改修の際には行わないといけないでしょう。
しかし、これでなければ、全てを最初から制作し直すことになり、そのような事は当然出来る訳がありません。常に最高ではなく、状況を常に判断して、現時点で出来る最高を求める仕事になります。
奇麗なコード、HTMLタグは完璧に記述する等、そればかり叫んでいても、実際には何も進展する事はありません。
参考書のような、業務を理解出来ずに奇麗な概論ばかり話している人には、到底出来ない実務的な仕事になります。
また、システム開発の管理画面というホームページを制作した際には、UMLも同時に制作しなければならないケースが多く、この業務もホームページ制作業務に含まれる事が更に難易度を上げています。
実務的なUMLというのは、書こうと思って誰でも書ける物ではないからです。
単に書いただけという、書く事そのものが目的であれば、本を読んでツールを使えば誰でも出来ますが、実際に使える実務性の高い、正確で見やすいUMLとなるとその難易度は格段に跳ね上がります。
■その理由は、実務的なUMLは嘘が書けないからです。
|
要件定義、設計、実装、運用等、全ての行程が理解出来ていないと正しい書類は書けません。
知らない事や理解出来ない事を、知ったかぶりをしてUMLで書類化しようと思っても出来ないという現実があります。
ホームページ制作業務を見た目だけで判断したり、本やネットで入手した知識で簡単に出来るだのと自慢げにクライアントの前で語るWEBコンサルタント等は沢山いますが、実際のコンサルタント業務はそんなに甘くはありません。
|
|
|
▲コンサルティングシーン選択に戻る |
|
|
|
|
■ここでは、この業務のクライアントの立場になって考えます。
|
システム開発における管理画面が炎上している状態で、それをなんとかしたい訳ですが、
良くあるのは評論家的にソースコードの作りが悪いとか、デザインが美しない、タグが駄目だと評論家的な発言ばかりする人物。
自称アナリストやITコンサルタントの肩書きを持っている方々を知っている方は多いのではないでしょうか?
この状態になって、ソースコードの評論やMVCの概念を、いくら熱心に語られても全く意味が無いのですが、それが全くわかっていない。
評論家はいらないから、とにかく問題を確実に解決してくれる人を捜している訳であり、ソースコードが崩れている事くらい誰でも知っています。自分で出来ないのであればすぐにその旨を意思表示しないと次の行程に進みません。
誰でも知っている事ばかり叫ぶ専門家は専門家ではなく、ただの趣味の評論家にすぎません。
逆に言えば、ソースコードが一切崩れていないシステム開発の管理画面など見た事がありません。
評論家的なアナリストやコンサルタントを名乗る方は、何かあるたびに問題を複雑にしようとする傾向が高いです。
■評論家は何処の現場でも必要とされません。必要なのは実務が出来るコンサルタントです。 |
それはそうしないと仕事がなくなるからか、もしくは本当に能力が低いかのどちらかでしょう。
テストサーバで稼働テストをした後に、本番サーバに無事リリースをされてシステムは本格稼働を行いました。
ここで、管理画面を修正していた際に、多数の気になる箇所がありましたので、このままでは問題があると判断。
UMLでの現在稼働している実装を表す書類を作成する事をお客様に提示。
快く了承されてUMLの制作に入ります。
これは簡単ではなく、安い作業でもありませんが、この現在の実装を表すUMLがあるとないとでは今後の運用や改修で多大な違いがあります。
見えない障害が分からないまま次の改修を行うと二次障害が発生する為です。
目的に合った正しくて分かりやすいUMLを作成するという事は、書類を制作する事が目的になっている全く使えない書類でなく、
書類を制作する事によって不具合を明確に確認し、それを共有するという目的があります。
その結果、UMLは完成して、これまで見えなかったシステムの根本的な不具合までも把握する事になりました。
作った事自体が目的になっている、誰も見ない書類は本当に役に立ちません。だから誰も見なくなります。
炎上する前に適切なUMLを作成していくと、出来る限り、最悪のリスクを回避する事が可能になります。
ご不明な点やご相談はお気軽に、お問い合わせ下さい。
|
|
▲コンサルティングシーン選択に戻る |
|
※このコンサルティングの実例は、依頼を元にご対応させて頂いた、ホームページの制作・運営に深く関わる事例です。
※ホームページの視覚的なデザインだけしか理解出来ないのであれば、クライアントに対して本当のコンサルティングは出来ません。 |
|
|
|