2021年5月〜2022年5月(約1年) | インストールツール作成(Win10対応) |
2022年8月〜2023年7月(約11カ月) | データ集計システム(バッチ処理) |
|
【役割】
某テーマパークを運営している会社様の社内システムをクラウド環境に移行するプロジェクトを紹介していただき、フリーランス(1エンジニア)として参画。
【当初の状況】
オフィス内のPCでシステム全般の資料(提案書・設計書・ソースコードなど)から「現状把握」を行っておりましたが、社内システム全般のクラウド移行にともない、社内PC(旧WindowsOS)環境を段階的に「Windows10」に移行するプロジェクト計画を共有していただきました。
その中で、社内PC(旧WindowsOS)用のシステム・アプリのインストーラーを「Windows10」用にバージョンアップする必要があり、社内PC環境に割り振られた設定情報(config)を書き換えるツール(マクロ)のバージョンアップも担当することになりました。
【技術的な課題】
1. 社内システム・アプリのインストールを「完全自動化」させる
※旧WindowsOSのインストーラだと「手動でのDBインストール及び初期パラメータの設定」が必要だった為
2. インストール処理のパフォーマンス(特に処理時間)を改善する
具体的には、当初のプロジェクト計画でWindows10用に社内アプリ用のDBもバージョンアップする事になっていた為、旧インストーラのソースコード解析だけでなく、技術的な調査の為、「海外サイト」などの技術的な記事内容で実際にプログラミングし、何度もデバッグを行いながら、お客様要件(インストールの「完全自動化(上記1.)」、「パフォーマンス改善(上記2.)」をクリアする事ができました。
併せて、「Windows10」用に「仕様書(要件定義~詳細設計~テスト仕様書)」もブラッシュアップ致しました。
【プログラムリリース当日】
「リリース管理」として当然ですが、リリースの内容(ソースコードの差分(diff))を確認した上で、お客様への事前・事後連絡(メール・電話連絡)でクラウド環境へリリースを行いました。
リリース自体は1時間程でしたが、実際にお客様環境にある特定のPC(数台)で社内システム・アプリの自動インストール~正常動作を確認する事ができました。
【プログラムリリース後】
お客様への「契約納品物」に関してレビューしていただく機会がございましたが、他の社内PCでもWindow10環境でアプリ・DBの自動インストール化による時間の短縮やインストール後の余計な設定変更が不要になり、業務効率が上がったと仰っていただきました。
【プロジェクト所感】
「インストールが途中で止まる」という不具合や「DBを手動でインストールしなければならない」という課題が発生した時に、「必ず技術的な原因があるはずだ」と冷静に受け止めた上で対応した結果、当プロジェクトの場合、「海外サイト」の技術的な記事の内容が具体的な解決策になりました。
ITの世界、技術的な課題で同じような境遇になる人にとって、ネット記事などの断片的な情報も意外に役に立つ事がございます。
まさに、「本質」を見極める一つの事例でした。
☆参考:「技術」検索キーワード
□Oracle timezone upgrade □Oracle Data Pump □Oracle CDB PDB upgrade mode
□Oracle Directory Object □Oracle Response File silent install
【役割】
卸売業の現行システム改修及び新規システム導入プロジェクト(主に仕入・在庫・売上データの集計(金額・数量など))に参画。
【当初の状況】
卸売業のシステム導入は未経験でしたが、建設業(主に注文住宅・リフォームなど)のシステム保守の経験がございましたので、特に「価格」に関するマスタ・トランザクションデータ管理や売上計上の発生タイミングなど、似ている点もあるのでは?と予想しておりました。
主に携わったプロジェクト(1.~2.) ※バッチ処理(ストアド・DB設計・ジョブ実行環境設定を含む)
1. システム改修(約2か月)
「組織変更」が発生した為、仕入・在庫・売上データを集計する現行システムの「集計単位(計上部門)」を変更
2. 新規開発(約9カ月)
お客様単位(各取引先:系列会社(支店など)))の契約実績 (月次でデータ発生、契約期間は1年単位)で仕入・在庫・売上データを集計
※当年度と前年度のデータ比較(金額・数量、比率(%))
【技術的な課題】
■上記1.(システム改修)について
課題: 現行システムを「どこまで改修するか?」
プロジェクトに参画して間もない為、システム保守・運用の不具合対応の履歴(QA)を確認した所、プログラム改修ではなく
保守・運用(パッチ適用)でデータメンテンナンスしている事が判明。
「改修案(集計単位の変更)」としてプログラム及びDB(テーブルのカラム追加・値の変更)の影響範囲を資料(Excel)でまとめ、
お客様レビューにて最小限の改修を行うように心掛けました。
また、今回の改修に伴い、定期的に手動実行していた一連のバッチ処理~パッチ適用を「手順書」として整備し、保守・運用の品質向上を実現する事ができました。
■上記2.(新規開発)について
課題:当初要件(特に性能負荷面:実データ量を想定した処理時間)の考慮不足
プロジェクトフェーズとしては主に結合テスト(仕様確定~詳細設計~開発完了~単体テスト(一部完了))からの参画でしたが、
特にシステムテストフェーズでプログラムの動作確認をした所、特定のプログラムの長時間走行が発生。
既存の設計書やプログラムを見直した所、そもそも導入予定の本番環境のデータ量を考慮したシステム仕様~プログラミングではないものが
存在しておりました。
そこで、仕様確定当時の状況を把握しているメンバー(3名)の協力をいただき、仕様の見直し~プログラム・DBのテーブル単位で「パフォーマンスチューニング」を行い、DBのテーブルの軽量化及びプログラム処理時間の短縮を実現致しました。
しかしながら、システムテストのタイミングで仕様変更~再テスト作業時間が発生した為、システムテストフェーズに至るまで、システムの仕様を確定させる「レビュー」に課題があったと思います。
【プログラムリリース当日】
システムテストフェーズでの「パフォーマンスチューニング」対応などが発生致しましたが、お客様に実施していただく「受入テスト」の準備や「契約納品物」の整備・業務引継ぎを行い、プロジェクトを収束させる事が出来ました。
【プロジェクト所感】
お客様からの追加要件として、システム開発における「仕様変更」は珍しい事ではございませんが、特に「レビュー」時に当初要件(特に性能負荷面)を満たしているかどうか、「ボトルネック」を早期発見し、「責任分界点」を明らかにさせた上、お客様の承認の元でプロジェクトを進めていく事が改めて重要だと思いました。
☆参考:「技術」検索キーワード
□SQL 一時テーブル □SQL データ圧縮 □SQL 実行計画 □SQL bulk insert
□SQL トランザクションログ 管理 □SQL Transaction ロック
2020年8月~2021年2月(約7ヶ月) |
サーバOS・DB環境リプレースに伴う通信制御(旧OS) |
【役割】
ITフリーランスとしての「初仕事」でしたが、新しい環境に「リプレース」しない古いサーバOS・DB環境バージョン(Windows・Linux)の通信制御の主担当でした。
【当初の状況】
プロジェクト就業当初(2020年8月~)、コロナ禍(緊急事態宣言)で主要な現場メンバーはテレワークになる事が多く、「現状把握」はWEB会議(ZOOMやteams)でしたし、「お客様」からのスケジュール管理や技術的な要望をその都度、対処しなければならない状況でした。
【技術的な課題】
この記事を読んで「通信制御」というキーワードからピンときた人はいると思いますが、「通信制御」とは「コーディングを間違えると、リモート接続先のサーバOS・DBとの通信が遮断されてしまう」技術の為、サーバの保管先(データセンター)で通信復旧作業の「現地対応」を行っております。
逆に言えば、「現地対応」の場合、リモート接続ではなく、現地のサーバOSをコンソール端末で操作するので、「現状把握」で予期しないプログラムのバグを検出して、お客様の承諾の元、プログラム改修を行う事ができました。
ただし、データセンター内は広いスペースに各企業様のサーバが保管されている為、入退館の申請方法がルール化されておりますので、緊急入館は難しい状況でした。
【プログラムリリース当日】
久しぶりの「徹夜作業」でしたが、主要メンバー(3名)の協力もあり、事前に作成していたリリース手順書に従い、納品。
納品するプログラムを「スクリプト化」して一括リリース~ログ出力させて、リリース作業~確認のシンプル化を致しました。
【プログラムリリース後】
納品後、毎日、リモート接続によるサーバOS・DB環境の「通信制御」のチェックを行っておりましたが、「通信遮断」による業務影響は無く、「契約納品物」を成果物として取りまとめ、「初仕事」は無事に完了致しました。
【プロジェクト所感】
フリーランスの「初仕事」でしたが、現場での技術的な課題については業務外の時間で調べた上で、業務内で試す事やスケジュール管理・「契約納品物」についてお客様と直接打ち合わせを行い、納期や成果物の内容を調整する機会もございました。
上手くいかない事をそのままにせず時間をかけても解決させる集中力など、今、思えば「働き方」を育てる良いきっかけになりました。
☆参考:「技術」検索キーワード
□Linux iptables □protocol 通信 確認 netstat □TCP Dump
□IPSec □firewall inbound outbound
□サーバ 冗長化 負荷分散
2015年5月~2020年6月(約5年) | いきなり「採用・営業担当」 |
【役割】
転職先のIT系企業でいきなり「採用・営業担当」として就業することになりました。
■採用担当として(1.~4.)
1. 採用広告掲載活動:業者選定~取材対応~記事内容の再構成(添削・その他)
2. 採用活動(スカウトメール対応~1次面接まで)
3. 経営会議参加(採用活動の予定・実績の報告及び年間スケジュール及び予算化)
4. 社内研修担当(開発、インフラ)
■営業活動として(1.~3.)
1. 提案営業
(1)採用人材のスキルシート作成
(2)お客様先プロジェクトへの提案活動
(3)契約締結
2. スタッフフォロー
(1)就業プロジェクトの業務内容や課題ヒアリング
(2)職場環境(社内外)の改善
(3)社内クレーム対応
3. クライアント訪問
(1)打ち合わせ(就業先の営業担当やエンジニア)
(2)クライアント先からのクレーム対応
(3)新規開拓
【当初の状況】
■採用活動として
当然、採用広告を掲載した事が無い(未経験)ので、今までの「転職活動」で活用してきた採用広告会社のホームページや、電話・メールで問い合わせを行い、業者選定~取材~何とか採用広告に掲載する事が出来ました。
■営業活動として
「既存スタッフ」とお会いした事がなかったので「どういう働き方をしていて、将来的なキャリア志向の有無や社内外で感じている不満など」を直接プロジェクト先を訪問し、ヒアリングする事から始めました。
その後、就業先クライアントの担当営業やエンジニアと直接お会いする機会があり、スタッフからヒアリングした内容とクライアントからのスタッフの評価をお聞きする事が出来ました。
【課題】
■採用担当として(1.~2.)
1. 「面接する応募者」の集客について
初回の採用広告掲載(約3ヶ月)の実績は「ゼロ」でした。
そこから「採用活動」の見直しを行い、「広告掲載」での集客だけでなく「スカウトメール」というアプローチを知り、別の採用広告会社から採用広告を掲載。
※主な採用広告掲載内容(IT業界未経験可、学歴・年齢不問、採用した人材の「IT研修(開発・運用)」でITエンジニアとしての初めてのプロジェクト就業を技術的にサポート など)
⇒採用活動の「効果」:月間(平均:1~2名)、年間約20名の人材(IT業界未経験者多数)を採用する事が出来るようになりました。
2. 「採用プロセスの明確化」~評価・判定
途中で採用選考を辞退したり、入社後のキャリア形成(例:定着率(例:早期退職の有無))を見極める為、
採用選考(応募者とのメール・電話連絡~一次面接~最終面接~内定)での「チェックポイント」を設けて、評価・判定するように致しました。
⇒評価・判定結果と入社後のキャリア形成の傾向をフィードバックし、「採用後の定着率」を改善して参りました。
■営業担当として(1.~2.)
1. 社外(クライアント)からのクレーム対応
例:スタッフからのヒアリング内容とクライアントの評価(スキル・役割)が一致しない
クライアント先での就業ルール違反(エンジニアとしての勤務状況やシステム管理運用方法及び就業先からの貸与物
(PCや周辺機器(Wifiルーター・USBなど))の取り扱いなど)
⇒主に直接お客様とお会いしてのクレーム対応・再発防止策を社内協議~お客様へ回答する事を徹底致しました。
営業活動の「効果」:
実体験として直接お客様とお会いしてクレーム対応する方が望ましいと思います。
例えば、電話・メールだと対応しづらいけれど、直接お会いすると応対が柔らかい人もおります。
当事者同士がお会いする場所や状況によって印象は変わるものです。
2. 社内のクレーム
(1)就業先プロジェクトとのミスマッチ
「スキル」が上がらない為、就業先プロジェクト内や外部プロジェクトで「役割」を変えたい(例:運用担当⇒開発・保守担当)
⇒社内のクレーム対応について:
とにかく「話を聞く」環境を用意する事だと思います。
「何を伝えたいのか?、何を実現したいのか?」を聞くだけでなく、(私 or 既存スタッフ)の
過去の成功・失敗体験に基づき、具体的に「いつまでに成果を出す」など、目標を設定するように致しました。
(2)退職希望者のフォロー
主な退職理由:
a.「キャリア形成(スキルアップ or 社内の役職 or 待遇面を含む)」が望めない
b. 家庭内の事情(例:配偶者の転勤)など
c. 他社への転職(内定)が決まった ※社内に相談せずに転職活動を進めた
d.その他
※「退職理由」につきましては「表向き」の内容を伝えてくる場合がほとんどで、
「実情」を伝えないケースは多いと思います。
【私の「退職理由」とこれからの「心構え」】
「採用活動(1次面接)」で対応後、入社した人材の営業活動もサポートし、お客様から就業の機会をいただきました。
それでも、様々な理由で折角採用した人材が辞めてしまう事に関して「辞めたら次の応募者を採用すれば良い」という社内の意見も
ございましたが「責任を転嫁」するのではなく、「最新の技術的なスタンダードを実務経験として身につけた上で人材をとことんフォローアップ
していきたい」と思ったからです。
実際にフリーランスで就業したプロジェクトでの「技術的な課題」に関しては、「環境」に合わせた「ポイント」を踏まえた上で現場でのプロパー様(システム請負会社)との協力関係を構築していく事で解決する事が出来ました。
なぜなら、「技術的な課題」を解決しなければ、お客様としても納品が遅延する事による売上の減少や開発コスト増だけでなく、そのシステムやアプリケーションなどの「仕組み」をお客様が業務で活用できない状況など、様々な「機会損失」が発生する為です。
いきなり「採用・営業担当」を任されてから培ってきたのは、社内外のクレームに対して「組織」の中での立場を弁えた上で、何事も
「イエスマンにならないように!」でした。
なぜなら、会社側の立場(例:社内外のクレーム対応の責任者)は、相手の話を聞こうとしないケースが皆無ではなかった為です。
たとえ、意見を求められなくても「良し悪し」をそれとなく指摘した上で代替案を提示するだけでなく、相手の意見をしっかり受け止める「心構え(主体性・コスト意識・バランス感覚)」は社会生活の基盤を「創る」為、これからも育てていきたいと思います。
〒102-0083 東京都千代田区麹町4丁目5-20 KSビル7階
03-6867-1638
※当社の採用・営業等に関しましては、上記お問い合わせフォームからご連絡をお願い致します。