基本情報
料金
期間
転職サポート
講師
  料金 リンク
テックアカデミーロゴ 99,900円〜
※給付金制度あり
公式
評判
DMM WEBCAMPロゴ 169,800円~
※給付金制度あり
公式
評判
デイトラロゴ 99,800円 公式
評判
侍エンジニアロゴ 165,000円~
※侍テラコヤは月額2,980円~
公式
評判
テックキャンプロゴ 657,800円~
※給付金制度あり
公式
評判
DIVE INTO CODEロゴ 647,800円~
※給付金制度あり
公式
評判
ポテパンキャンプロゴ 440,000円
※全額返金保証あり
公式
評判
  期間 リンク
テックアカデミーロゴ 4~16週間 公式
評判
DMM WEBCAMPロゴ 4~24週間 公式
評判
デイトラロゴ 90日間 公式
評判
侍エンジニアロゴ 4~48週間 公式
評判
テックキャンプロゴ 最短10週間 公式
評判
DIVE INTO CODEロゴ 4ヶ月 公式
評判
ポテパンキャンプロゴ 5ヶ月 公式
評判
  転職サポート リンク
テックアカデミーロゴ 公式
評判
DMM WEBCAMPロゴ 公式
評判
デイトラロゴ × 公式
評判
侍エンジニアロゴ 公式
評判
テックキャンプロゴ 公式
評判
DIVE INTO CODEロゴ 〇(10ヶ月間) 公式
評判
ポテパンキャンプロゴ 公式
評判
  講師 リンク
テックアカデミーロゴ 全員が実務経験3年以上の現役エンジニア 公式
評判
DMM WEBCAMPロゴ 実務経験豊富な現役エンジニア 公式
評判
デイトラロゴ 現役で活躍するプロ講師 公式
評判
侍エンジニアロゴ 一人の現役エンジニアが卒業までサポート 公式
評判
テックキャンプロゴ 未経験者にプログラミングを教えるプロ 公式
評判
DIVE INTO CODEロゴ 実務経験豊富なプロ講師 公式
評判
ポテパンキャンプロゴ 経験豊富な現役エンジニア 公式
評判

IT

プログラミングとは、バグとの戦いの連続である【SEあるある】

2021年1月13日

今回は、SEとしてプログラミングを経験したことのある人なら、誰しもが共感・納得する話をしていきます。プログラミング初心者の方でも激しくうなづいてくれるんじゃないでしょうか?
サカイ

ということで、今回話していくテーマは『プログラミングとは、バグとの戦いの連続である』ということについてです。

 

プログラミングをしていると必ずぶち当たるのがバグです。

バグとはつまり、ソースに欠陥があってシステムの動きに不備が出る、またはエラーで動かなくなる根本原因のことです。

エンジニアをしていて、今まで一度も経験がない人はいないといってもいいでしょう。

それだけシステム開発をする上では切っても切り離せない問題なのです。

 

今回はバグとの戦いについて、現役エンジニアの僕が感じることをつらつらと綴っていきます。

僕自身はエンジニア歴10年以上、フリーランス歴5年以上の中堅エンジニアです。

 

これまでの経験を振り返りつつ、

  • わかる!!
  • たしかに!!
  • そうなんだ!!

と、それぞれ共感や驚きをしながら見ていただければと思います。

 

特に有益な情報というわけではないかもしれないので、興味のない方はよかったらほかの記事を覗いてみてください。。。

プログラミングとは、バグとの戦いの連続である【SEあるある】

プログラミング・・・

つらすぎです・・・

 

再現性がないバグはめちゃくちゃ厄介

バグと一口にいってもいろんな発生の仕方があります。

「このデータを使ったら発生する」

「この操作をしたら発生する」

といったように、データや操作起因で起きるようなバグだったらまだいいんです。

 

原因が特定できているから、修正も比較的かんたんにできます。

厄介なのは再現性がないバグです・・・。

  • 毎回発生するわけではない
  • どの端末でも発生するわけではない
  • 昨日までは発生していた

などなど、バグを再現する方法が特定できないとき、でもなんとか直したいとき、これはめちゃくちゃ苦労します。。。

だって仮に修正しても直っているかの確認ができないんですから。

 

一旦様子見してみましょうとなればまだいいのですが、様子見じゃ困るからなんとか修正してほしいなんて言われた日にゃどうしようもありませんよ。

システム開発に携わったことのある人なら一度や二度はこんな経験ありますよ、、、ね・・・??

 

スキルがどれだけ上がってもバグ0は無理

プログラミング初心者のころはスキルも経験も伴っていないので、開発中にバグとぶち当たりまくります。

書いても書いてもうまく動かず、原因の特定に時間がかかり、できてみるとかんたんなコードに何時間も何日もかかったりします。

しかしやり続けていくとスキルは上がっていき、バグの発生頻度は減って、発生したバグもスムーズに修正することができるようになります。

ここまでくるとシステムエンジニア、プログラマーとしてある程度の仕事なら受注できるレベルだと思います。

 

しかし一方で、どれだけスキルが上がったとしても、まったくバグを起こさずに開発することのできる人は存在しません。

https://twitter.com/sakaiHulaHoop/status/1348996418883645444?s=20

こちらのツイートでも書いたとおり、倒してもまた次、倒してもまた次、と延々とバグ対応は続いていきます。

安定稼働していたと思ったらあるとき突然不具合連発なんてこともしばしば・・・。

 

バグを減らしたいけどゼロだと品質に問題がある矛盾

日夜バグと戦っているSEなのですが、一方でまったくバグがないシステムというのも問題があるんです。

数千行、数万行のコードがあって、それを人間の手で作っているということは必ず隙が生じます。

いわゆる『潜在バグ』(まだ発生していないけど、今後表面化する可能性のあるバグ)ってやつですね。

 

システム開発時にテストをして、エラーがあるということはちゃんとテストができていてシステムの品質が上がったとみなされます。

しかし、まったくバグが起きずにテストを終えると、

「ほんとにテストちゃんとやったのか?」

「テスト観点漏れがあるんじゃないか?」

といった感じで別の問題が生じます。

 

つまり、

「バグやエラーを無くしたい、でもまったくゼロでも困る」

という矛盾した悩みを持っているんです。

 

大事なのは自分のソースを自分で疑うこと

基本的には自分のことは自分が一番信じている必要がありますよね。

それが自信になっていきますし、自信があるように見えたほうがどう考えたってお得です。

 

しかし、ことシステム開発となると話は変わってきます。

自分で作ったシステムやソースコードを自分で信じてはいけません。

「どこかに欠陥はあるんじゃないか?」「こういう操作をしたらうまくいかないんじゃないか?」と、ある種悲観的なくらいに疑ってかかることをオススメします。

【真実】プログラミングは性悪説でやるべき話【粗を探すのが仕事です】

この記事でも書いていますが、プログラミングは粗を探すのが仕事なんです。

完璧なシステムなんてものは存在しないので、重箱の隅をつつくようにエラーになりそうな場所を探しましょう。

 

バグとの戦いを減らせるようにシステム開発をがんばろう

バグとの戦いが終わることはありません。

システムエンジニア、プログラマーとしてシステム開発を現場でバリバリ続けていく限り、向き合い続けることになります。

 

戦いは無くなりませんが、戦う数を減らすことはできます。

スキルを上げたり、

丁寧にコードを書いたり、

細かくチェックしたり、

工夫次第でエラーともうまく付き合うことができるようになるでしょう。

 

僕自身もまだしばらくはシステム開発の現場にいますので、あなたと同じくバグとの戦いを続けていきます。

メンタルが病んでしまわないようにうまく仕事と付き合いながらやっていきましょう。

 

おわりに【これからも戦いは続く】

今回は『プログラミングとは、バグとの戦いの連続である【SEあるある】』というテーマでお話ししました。

エンジニアの方は首がもげるほど共感していただけたのではないでしょうか?

 

今後も有益な情報以外にこういった箸休め的な記事も書いていきますので、よかったら引き続きお付き合いいただけるとうれしいです。

以上となります。

  • この記事を書いた人

サカイユウヤ

プログラミングスクールアドバイザー 【経歴】1986年生まれ ▶ 茨城県出身▶ 大学で福島県へ▶ 就職で東京▶ 某SIer企業で丸7年正社員として勤務▶ 独立してフリーランスエンジニア ● 2020年7月ブログスタート ● エンジニア歴13年(内フリーランス歴6年) ●プログラミングスクール関連記事300記事超 ●プログラミングスクール30社以上見てきた経験からスクール選びサポートしてます。

-IT

© 2020 初心者向けプログラミングスクールおすすめサイト|さかこじぶろぐ

お得なキャンペーン情報はコチラ
お得なキャンペーン情報はコチラ