技術とか戦略とか

証券レガシーシステムを8年いじってから転職した普通の文系SEによるブログ。技術のみではなく趣味の戦略考察についても。

SE仕事術

マークダウン記法とは

【マークダウン記法とは】マークダウン記法とは、簡単に言うとマークアップ記法(HTML等)を簡略化したものです。タグを用いることなく、簡単な記法で文書の整形を行うことができます。Wordに代表される文書作成ツールやマークアップ記法の文書よりも簡単に…

シーケンス図を書いてマルチスレッドプログラムを整理する

マルチスレッドプログラムを開発していると、どの処理がいつ動くのか把握し辛くなることがあります。そこでシーケンス図を書くと、ややこしいスレッド間の関連をわかりやすく整理することができます。 シーケンス図とは、UMLの一種であり、クラスやオブジェ…

半角カナの文字コードに関する注意

0x00~0x7FのASCIIコード(半角英数記号やNUL・改行等の特殊な文字)に関しては文字コードセットの違いを気にする必要がないのですが、日本語の文字に関しては複数の文字コードセットが存在し、違いを気にする必要があります。半角カナについても例外ではな…

人的ミスを考慮した手順の作成

システムを運用する上で、手作業での運用作業は避けられないものです。例を挙げると、プログラムの不具合の対応でデータを補正する、自動的にデプロイできない特殊なプログラムをデプロイする、といった運用作業が発生します。 手作業での運用作業では、コマ…

プライバシーマーク取得企業で働く上での心がけ(一般社員向け)(2019年度版)

私が勤める会社でもプライバシーマークを取得しており、2019年度版の一般社員向けの研修があったので、内容を簡単にまとめます。研修テキストはネットに上げられませんし上げてもあまり意味はないので、一般論的なことを簡単にまとめるだけにします。詳細な…

チェックリストの形骸化とその対策

バグの埋め込みを防ぐために、現場毎でチェックリストが設けられていることが多いです。そのチェックリストには過去のバグの経験則が書かれていることも多く、ある意味宝物のようなものです。 しかし、実際の開発では、そのチェックリストが形骸化することも…

人員追加は必ずしも悪とは限らない

IT業界では、「人員追加」という計画変更の方法はとにかく評判が悪いです。Webで検索すると、「炎上プロジェクトで人員を追加したらますます燃え上がった」という話をあちこちで目にしますし、炎上プロジェクトへの対応案としてはまるでアンチパターンかのよ…

プロポーショナルフォントと等幅フォントの違いと使い分け

コンピュータの文字表示で用いられるフォントは、大きく分けて「プロポーショナルフォント」と「等幅フォント」の2つに分けられます。 ・プロポーショナルフォント 文字毎に幅が異なるフォント。 「MS Pゴシック」が例として挙げられる。 ・等幅フォント…

上位者・担当者が行うべき判断の違いとエスカレーションの重要性

障害対応やクレーム対応において、担当者で対応方針を判断できない場合は、上位者の指示を仰ぎます。このことを「エスカレーション」と呼びます。 エスカレーションについて、なぜこれが重要なのかというのを、上位者が行うべき判断と担当者が行うべき判断の…

「コピー新規(修正新規)」とは

【背景】金融系SIerでは「コピー新規」という言葉を聞くことがあります。(「修正新規」と呼ばれることもあります)特定の現場だけではなく複数の現場で聞いたことがあるので、一種の業界用語だと思います。しかし、コピー新規という言葉でWeb検索をかけても…

新人研修での目標

未経験の新人がSIerでプログラマーとして働く際、事前に新人研修が行われるはずです。その新人研修では、下記の3つのことができるようになって欲しいと個人的に思っています。(プログラム言語はjavaを想定します) 1.変数、配列、if、ループといった基本…

ソースコードにおける一貫したポリシーの重要性

ソースコードを読みやすくし保守性を高めるために、「GOTOは使わない方が良い」「クラスは小さく分けた方が良い」といったポリシーを良く聞きます。しかし、これらのポリシーによりソースコードが読みやすくなるとは限りません。例えば、「GOTOは使わない方…

保守性の高いコードを作成するために心がけること

ソースコードは作って終わりではなく、その後何年、何十年にもわたって保守開発が行われます。また、保守開発を行う開発者もその間に入れ替わります。ソースコードを作る際は、このことを踏まえて高品質・低コストで保守開発ができるようにする必要がありま…

実務で良く見かけるループ処理

実務で使われるプログラム、特にバッチ処理では、ループ処理は頻出です。ループ処理には、良く使われるパターンがいくつかあります。そのパターンを覚えておけば、既存のソースコードの理解がスムーズになります。 今回の記事では、実務で良く使われるループ…

プログラムによる小数点以下の計算で誤差が生じる原因&対処法2選

プログラムで小数点以下の計算を行う際、誤差が生じることがあります。金額計算を行う時はこの誤差が即障害に繋がるので、誤差が生じないように実装する必要があります。 今回の記事では、誤差が生じる原因とその対処法を2つ挙げていきたいと思います。 1…

システム開発現場の間違い探し

システム開発現場の間違い探しを表現するとこんな感じです。 問:左右の絵に違いはありません。 ペーパーの試験や既にバグが顕在化したシステムとは異なり、システム開発現場では間違いがあることが明らかではありません。むしろ、「○○さんのレビューを通し…

ループ処理のテスト観点

ループ処理を単体テストする時の小ネタです。ループ処理を最初から最後まで全件チェックするのは大変なので、以下のように誤りが生じやすい箇所に絞ってテストを行うと効率良くテストを行うことができます。(ループはN回行うものとします) ・ループの1回目…

10000STEPのクラスを作ってしまった話

「1クラス1000STEPを超えたらクラス分割を考える」という話をどこかで見たり聞いたりした記憶がありますが、金融業界の実務では10000STEP越えのクラスを目にすることは少なくありません。そして、私も趣味(ゲームの戦闘部分の作成)で10000STEP越えのクラス…

リーダーシップ状況論の実践

リーダーシップ状況論(組織の成熟度に適したリーダーシップの分類)については、以前に情報処理技術者試験対策として記事にしました。 情報処理技術者試験対策「リーダーシップ状況論」 https://akira2kun.hatenablog.com/entry/2018/07/10/234418 試験対策…

ヘッダレコード・データレコード・トレーラレコードとは

企業間でやりとりするファイルでよく見かけるフォーマットとして、レコードが「ヘッダレコード」「データレコード」「トレーラレコード」に分かれているフォーマットがあります。このフォーマットについて覚えておくと、出向先のソースコードを読むのが楽に…

アンカリングを用いた交渉術

アンカリングとは、先に与えられる情報をベースに意思決定してしまうことを指す心理面の現象のことです。この現象は交渉の場面で役に立ちます。先に厳しめの要求を出すことで、その要求をベースに交渉を進めることができます。厳しめの要求を出した後、相手…

ジョブ管理システムとは

「ジョブ管理システム」とは、処理の実行タイミングや実行順を管理するシステムのことです。例えば、Windowsではbatファイルをダブルクリックすると処理が実行されますし、Linuxでは「sh hoge.sh」と入力すると処理が実行されます。実運用では、システムをま…

システム障害が起きた時に元請けSIerの中で起こること(体験談)

二次請けや三次請けで本当に開発しかしない職場だと、システム障害が起きた時にその対応がどれくらい大変なのかが伝わりにくいことがあります。今回の記事は、システム障害が起きた時に元請けSIerでどのような対応を行う必要があるのかを書きたいと思います…

「共通化の罠」を見た感想

数日前にTwitterで「共通化の罠」という動画がバズりました。 https://togetter.com/li/1354658 内容はリンク先の動画を見ての通りなのですが、一言でまとめると「複数のモジュールで同じロジックを使用していたので、そのロジックを共通モジュールとして外…

プログラミング言語のスキルチェンジのコツ

COBOLからJavaのスキルチェンジは苦労すると良く聞きます。サーバーサイドCOBOLからフロントエンドJavaへのスキルチェンジの場合は言語の違い以外にも色々覚え直さないといけないことがある(Webサーバの仕様やHTTP通信の仕様等)のでまた別の話になるのです…

報連相が必要な理由

報告・連絡・相談は、組織で働く者には欠かせないスキルです。IT業界は内向的な人が多く、報告・連絡・相談が苦手な人が少なくない業界です。(私も正直あまり得意ではありません)それだけに、報告・連絡・相談ができる若手は、たとえ技術力に多少の不足が…

障害事例は宝物

金融システムのようなミッションクリティカルなシステムの開発では、ミスは許されません。自分が起こしたミスから学ぶのはもちろんなのですが、他者が起こしたミスから学ぶというのも大切な姿勢になります。 どのようなミスが障害につながるのかは障害事例を…

石の上にも三年

最先端の技術を取り扱うイケてるIT企業のことはわかりませんが、少なくとも普通のSIer(業務システムを作っているITゼネコン)に関してはタイトルのことわざ通りだと思っています。そろそろプログラミングでついていけなくて悩む新人が増え出す季節なので、…

あるあるバグ事例:幅を持たせた条件指定の狭間に落ちるケース

コーディングをしていて表題のようなケースでバグになったことがあるのを思い出したので、注意喚起ということで紹介します。有効桁数の考慮不足等で境界値の条件指定が完全にカバーされていないと、境界値付近のデータが来た時にどの条件にも当てはまらずに…

オブジェクト指向とは現実世界を正しく捉えることである

と書くと色々物議を醸すことが多いのですが、本当にそう思う出来事があったのでメモ代わりに記事にします。 私の趣味であるゲーム攻略での出来事なのですが、既存のツールをベースに新たなツールを作ろうと思い、ツールの開発者の方にソースを見せてもらいま…