2018年の振返り━SEの上流工程面と外部アプリケーション操作という課題

2018年ももうあと数日となりました。時間が経つのはあっという間で、それは年々強く感じるようになっています。毎年同じことを言ってる気がしますが、特に年齢を重ねるほど「時間は有限」なんだという思いにさせられます。

 

そのような感覚に迫られると否応なく「時間を無駄にしてはいけない」とか「今できることをできるだけやっておかないと、たぶん後で非常に苦しむことになる」という感覚も生まれてきます。

 

まぁそんな感覚は今に始まったことではありませんし、いつも意識していることではありますが、この2018年という年はそんな意識が強く反映された年だったような気がします。

 

2019年をよりよくするためにも2018年の自分がどんな年を送ったのかを今回は簡単に振返ってみようと思います。

2018年はそれまでとは違って飛躍した年

2018年という年はそれまでと違って、自分にとって非常に飛躍した年になったと思います。同時に新たな課題も見つかった年でもあります。

 

もう少し具体的に説明すると、経理からExcelVBAを使うSEを経験することで、経理の世界とは全く異なる世界を垣間見た年になりました。

 

「ExcelVBAってこんなことまでできるんだ」

「ExcelVBAって使える範囲はExcelだけじゃないんだ。こんな広い範囲で使えるんだ」

といった感覚が一番大きかったです。

 

2017年は以下の過去記事にあるように「ExcelVBA」というプログラミング言語を知った年です。それまで経理業務でネックだったミスをほとんどしなくなり、業務のスピード面でも大きく改善されたことでその凄さを知るようになった、と書いています。

2017年は派遣先でExcelVBAというものに出会い、仕事をしながら勉強をするようになっていくのですが、2018年の最初の方で派遣先の契約期間が満了。

 

それと同時に次の派遣先を決めるまでの間を少し長く取って、この期間に本格的に勉強を始めました。その期間中は以下の過去記事にあるように「ExcelVBAエキスパートスタンダード」「MOS Access 2013」「AccessVBAエキスパートベーシック」の資格を取得します。

 

また、立山秀利さんのExcelVBA、AccessVBAに関する「ツボとコツがゼッタイにわかる」シリーズの本も読んできました。

 

VBAの資格関連の本だけでなく立山さんの著書を通して「実際にシステムをつくる」という経験を何度か積むことで、以下の過去記事にあるように派遣先での実装面での業務はそれ程滞りなく進めること出来ました。

 

しかし、良いことばかりではなくたくさんの課題も見つかります。

上流工程面の課題

SEという仕事をするようになってから知るようになったのですが、この職種の仕事の段階として「上流工程」と「下流工程」というものがあるようです。

 

上流工程とはシステムをつくるための仕様を決めたり要件定義をする段階。下流工程が、上流工程で定義されたシステムをプログラミングで形にしたりそのテストをする段階、といった位置づけになります。

 

現在の仕事に就く前はここまで書いてきたように「ExcelVBA」に関する勉強はしてきました。しかし、VBAを使って実装する前の段階である要件定義やUMLを使ってシステム全体の設計図をつくる、という勉強は全くしてきませんでした。

 

もうひとつ大きな課題だと思ったのは、「システムについて詳しくない人から要望を聞く、理解する」とか「聞いた、理解した要望から相手がわかりやすいように伝える、そのための文章をつくる」といった領域があることです。

 

これには非常に参りました。今の仕事に入ってやっと「あっ、そんな領域もあるんだ」と気づいたというレベルだったので、これは一度初めからやり直さないといけないなと思いました。このことについては以下の過去記事でも触れています。

 

今の状態までいくつかシステムをつくって経験を積んできたからこそわかるというか、「こういうことだからなんじゃないかな」と思ったことがあります。

 

それは、SEの業務にはなぜ上流工程といった領域があるのかについてなんですが、これは「ある程度規模の大きいシステムをつくるためにはどうしても必要になってくる」からなんじゃないかなと思いました。

 

上流工程の存在意義は「ある程度大きな規模のシステムをつくる」ということを前提にしているということです。

 

これまでの経験から初めから「こういうシステムをつくる」ということがわかっていると非常に楽だと感じました。というのも、実際にシステムをつくる途中で何度も仕様変更の指示が出されたからです。

 

仕様変更がある度にシステム内のいろいろな箇所を修正しなければならないというのが大変だったのと、それに合わせて再度テストもやり直さなければならないといったことも大変でした。

 

この時は「仕様変更にも柔軟に対応できるようにコーディングする」(最初から固定で数値を入れるのではなく、変数などを使って柔軟に対応できるようにするといったこと)ことが非常に大事だなと身をもって実感しました。

 

「最初からこういうシステムをつくる」という風に形がわかっていればシステムをつくるのは楽です。特に規模の大きいシステムであればあるほど、最初から「こうだ」と決まっていると楽だと思います。

 

そのように最初に要件定義がしっかりできていると、それに合わせて設計図をつくるのも楽になります。

 

経理の仕事をしていた時に自分ひとり分の業務に合わせてマクロをつくっていた時は全然意識していなかったのですが、やはり複数人を対象にして作るシステムの規模が大きくなってくると、何らかのわかる形、例えば図にできないと途中でわけがわからなくなってしまいます。

 

これが設計図も何も図がない状態で途中で何度も仕様変更されると、たぶんとんでもないことになるなと感じました。

 

変更された仕様はシステムのどの部分に該当して、仮に修正した場合、他のどの部分に影響するのか、といったことがわからない状態でシステムを修正しなければいけなくなるからです。

 

そのような状態から修正を強いられた場合、おそらく非常に時間と手間を要することになり、それに合わせて人件費等も多大に費やすことになるのでとても非効率になってしまうでしょう。

 

そういった事態を避けてトラブルを少なくし、スムーズに規模の大きいシステムをつくるために「上流工程」という領域が必要になってきたのではないでしょうか。

下流工程面での課題

「ExcelVBA」という言葉があるように、ExcelVBAが使える範囲は基本的にはExcelだけだと考える人が多いのではないでしょうか。(最近になって全然そんなことはないということに気づき始めました)。

 

WordVBAだったらWord、PowerpointだったらPowerPointVBAなど、そのOfficeソフトをVBAで操作するためにはそのOfficeソフトに搭載されているVBAを使う必要があります。

 

以下の過去記事にも書いたのですが、VBAが使える範囲はExcelだけではないということだけでも凄いと以前は思っていました。

どうやらVBAというのはそれだけにとどまらないようです。

 

以下の過去記事にも書いたのですが、ExcelのExcelVBAを通してAccessやWord、Outlook、PowerPoint、IE等々を操作できるようにする必要があるといったことを書きました。

 

注意したいのは、ExcelからExcelVBAを使う、WordからWordVBAを使うというのではなく、ExcelVBAからWord等その他OfficeソフトやPDF、IE、WindowsAPIなどを操作できるということです。

 

今の職場でそこまでのレベルを求められたのは正直参りました。というのも自分は基本的に「ExcelVBA」しか勉強してきていなかったので(多少はAccessVBAも勉強はしてきたが)、これは一回勉強しなおさないとまずいなと思わざるを得ませんでした。

 

同じOfficeソフトだからExcelVBAがある程度できれば大丈夫だろう、と思っていた時もありましたが、実際に取り組んでみるとちゃんとそのOfficeソフトの「オブジェクトモデル」とやらを勉強しないとどうやら駄目そうです。

 

というのも、どのOfficeソフトも基本的にはExcelVBAと比べて表記方法に大きな違いはないのですが、文法というかオブジェクトそのものもそうですし、オブジェクトの階層構造といったものが違っています。他にもOfficeソフトごとに搭載されているイベントも違います。

 

以上のような事から、自分にとっての課題が見つかったというか、これは一度根本的に勉強しなおさないといけないかもしれないと思いました。

まとめ

今回の記事をまとめると、次のようになります。

 

2017年にExcelVBAというプログラミング言語に出会い、2018年に本格的に勉強して「これぐらい勉強すればそこそこやれるだろう」と全く甘い考えで意気揚々と新しい仕事を始めます。

 

しかしそこに待ち受けていたものは、自分が想像したこともないとんでもなく広い領域だった、というものです。

 

ここまで書いてきたこと以外で「クラスモジュール」とか「オブジェクト指向」といった知識も必要なのですが、とにかく勉強しなければいけないことがたくさんあるという状況です。

 

この領域の広さに驚愕をしつつもやりがいも感じています。今の時代の流れとして少子高齢化から人手不足によって業務の効率化が必要になってきています。

 

そのためには昨今話題になっている「RPA」や「プログラミング」の知識が必須あり、そのような知識がある人が多く求められています。とはいっても自分のこれまで経験してきた会社の数や肌感覚から、事務職でプログラミングが出来る人は非常に少ないです。

 

そんな中でExcelVBAだけでなく、他のOfficeソフトのVBAが使えたり、ExcelVBAから他のOfficeソフトが操作できたら業務効率化の幅が大きく広がります。

 

そういった知識があれば仕事に困ることはないでしょうし、もっと別のこと(会社に行かなくもよくなる働き方)もできそうです。

 

そのためには、今後の2019年の時間の使い方が重要になってくるだろうと思っています。

あわせて読みたい

こんな記事も読まれています

コメント