システム開発における大切な要素

目的

このnoteの目的は、システム開発において
どんな要素が大切なのかということを
自分が感じてきた経験を踏まえて
まとめそれを伝えることです。

もくじ

システム開発を目指す意思
何を思考したのか
国語力
推理能力
健康管理
スキルアップの習慣
危機管理能力

システム開発を目指す意思

システム開発というと
花形のような職業だなと感じる人
結構多いですよね
ゲームクリエイターとか
ゲームエンジニアとか
結構稼げるイメージが多いですね

確かにこういったシステムは
お金が集中する=人気がでたら
業界であるので夢はあります

ただ、そういったスポットライトが
光っているもの以外にも
エンジニアリングの仕事が
たくさんあるということを
知っておいて欲しいと思います

というのもインターネットを通じて
サービスを受けるものすべて
システムエンジニアが設計して
プログラムを書いて実装をしています

この状況を考えると
プログラミングの幅は多種多様です
そうしたなかでエンジニアとして
生き残るためにはどんなことを
やっておくのが正解かを
私なりに出した結果

「自分のスキルを用いて人々の仕事を効率化すること」

こういった意思を持とうと
私は思い、それを実践していきました。

まずはあなたは何をしたいのかを
明確化することから始まります。

Q:あなたはエンジニアになり何をしたいですか?


何を思考したのか

さて、先程の質問には
応えてもらえましたでしょうか
まだの方は心の中で自分に答えてください。

エンジニアになってどんな事が
できるかわからないけどエンジニアに
なりたいなと思った人

現場を知っていくのが一番かと
思うので、ざっくり業界のことを
お伝えしていこうと思います

エンジニアという言葉の中に業界を加えると

情報通信業界
├ ハードウェア
└ ソフトウェア

製造業界
├ ハードウェア
└ ソフトウェア

私は雑に捉えているので、
情報通信業・製造業ていう具合
で理解をしています。

情報通信業はいわゆるネットを使って
どういったサービスを展開するか

製造業はものづくりをして
世の中にどんな製品を販売していくか

というような分類だと認識してください。

そんな中でも情報通信業・製造業それぞれ
ハードウェアとソフトウェアに分かれます

情報通信業でいうハードは通信機器
製造業でいうハードは組み込み機器

こういった機器があります。
この機器に興味がある人は、
ハードウェア設計とか電子工作向きです。
電子工作をする際には今はソフトウェアを
書き込まないと動かないっていうことも
あるので一概にハードウェアだけで
やっていけるかはわからないです

あとはソフトウェアの分野では
目指したい分野によって
かなり変わってきます

通信系のインフラエンジニアリングだと
通信設備のルーティングやパケット通信
といったプロトコルを触りOSIモデルの
物理層あたりの理解が必要です

一方でサーバサイドのインフラ構築と
なるとインターフェースあたりを触るので
ネットワーク構成に関する知識
DNSやSMTPやSSHやFTPやHTTPなどの
プロトコルなどを扱える人が中心です

あとサーバは意識しないけど
ウェブ・サイトとかサービスを作りたい
っていう人は、言語を学ぶ必要があります

ざっくりと説明するとこんな感じです

その上でどんな方向を向きたいか
何をしたいかというものを見つけて
自分が目指したいエンジニアは
どんなエンジニアリングスキルを
持つのかを想像してみてください


国語力

さて、エンジニアであっても
自分の母国語で思考しますよね
コミュニケーションをとりますよね
そんなときには
確実に言葉を用いています

したがって言葉で理解しあえる
そういった場面は日常茶飯事というわけです

技術に没頭すると
寝食忘れ一徹・二徹なんかは
当たり前かもしれません。

けど寝る間を惜しんでスキルアップを
するのは歓迎ですが、
人とコミュニケーションを
取ることを忘れてはいけません。

絶対にです。

現代のネトゲとかモンハンが
世相を表していると思ってるんですけど
基本ソロではなく群れで狩りに行く
みたいな設計が組まれています

ゲーム攻略の為にパーティを組んで
役割分担をするのに

システム開発をする上でソロで
活躍するなんて、よほどレベルが高い賢者か
勇者くらいです

あなたのスキルセットはすでに
賢者・勇者レベルですか?

胸を張ってそう言える人は
このnoteは読まないで問題ないです。

そんな中でコミュニケーション忘れない
っていうことと、それの基礎にある
国語力を向上させましょうということ
これはかなり重要なので

技術書ばかりにならずに
小説や詩、ドキュメント・新書
至るところに存在する表現された
なにかに触れて心を豊かにすることが
必須です。

世の中には定義づけができない
ゆらぎの多いもので満ち溢れています
ソフトウェア業界はたかだか50年なので
有史以来続いてきた人間文化を
表現するなんて到底無理です。

なので人間性を高めるためにも
国語力を身に着けましょう。

自分はちなみに菜根譚とか
漢文とか五行思想とかが好きです。

古き良き時代の科学者たちの
心中を察する旅が読書であり国語力を
豊かにする習慣です。

推理能力

日本語力が基礎にあったらば
つぎは推理能力を高める
必要があると私は考えています

システム開発をする中で
エンジニアはどんなことをするか
それは

「カオスななかに法則性を見つけ、その法則性が再現できるような手順を模索する」

という荒業をやってのけるのが
エンジニアです。

システム開発は
こういった過程に対して
定義し、条件分岐し、例外処理を施す
といったことをします。

ソフトウェアでもそうですが
ハードウェアについても同じスキームで
対応していきます。

そういった中で開発中は
問題の連続。

この問題をどうやって解決するか
というと思考するしかないということです

起きている問題を事実として捉え
問題が発生するまでの過程を
1つ1つ解析して何が悪かったのかを
検証するという行為

この行為そのものが推理力です
また推理力は国語力が無いと
まったく意味を持ちません

つまり現実を把握するために
どれだけ言葉のチョイスができるかと
問題の捉え方の確度を高める必要があります

健康管理

エンジニアが一番おろそかにして
しまいがちなのが体のことです
クリエィティブなことをするときには
健康であることが第一です

寝不足にならないように注意する
0時を回らないようにすること

糖質過多にならないようにすること
座りすぎ運動不足は糖尿になります

適度な運動をしもって
自分の体のメンテナンスをしてください
できるなら自分の体のメンテを
してくれるマッサージ屋さんなんかを
見つけるのもありですし

フィットネスクラブに行くということ
などを習慣化してもらえると
エンジニアとして長続きできます
ついつい深夜になりがちな
作業時間を明け方に持ってくる等
そういった対策を取るのが最善策です

かくいう私も糖尿病になってしまってます
なので十分健康には注意してください


スキルアップの習慣

自分が持っているスキルは
どういった種類のものがあるのか
ということをまずは把握すること
これが習慣化していた場合

スキルの完成度がどれくらいか
そしてスキルと活用して
どういった仕事ができているか
という観測ができるかと
思います

そして自分で持っているスキルセットを
日々の努力で向上させることは
継続っていう力が不可欠です

危機管理能力

プロ意識を持つということは
全体を俯瞰してはじめから終わりまで
一貫した視野で周りが見えていること
トラブルが起こった場合はどうやって
対処するのかということを
即座に判断するという能力が
必要不可欠です

危機管理能力の内容は様々で
システムトラブルが起こった場合の
対処方法から

どうやったらシステムトラブルが
起こらなくなるのかということ
までを守備範囲として

現象から対策を取れるような
そういった仕掛けが必要になります

これもある意味習慣の問題だと
私は感じています

(了)

この記事が気に入ったらサポートをしてみませんか?