👦

Sierでアプリ開発者として働くために必要なこと(ローコード) 後編

2023/05/02に公開

概要

Sierの中でアプリ開発者として働くためにはどんなスキル・能力が必要なのか…
また、それらの能力を身に着けるためにはどんな教材を学習すればよいのか。。。
そのあたりを私自身の経験を踏まえ、まとめてみました。
なお、前編はこちらです。

対象読者

こんな方にとっては、有益な情報が少しくらいあるのではないでしょうか。

  • Sierで実際に働いている入社数年目までの方
  • これからSierへの入社を考えている方
  • 開発者として働いているが何を学習すればよいかいまいちわかっていない方

おすすめの教材についても共有するので、よかったら参考にしてください。

前提

この記事を書いている筆者はこういう環境で働いています。

  • ローコード開発ツールを使用したWebアプリケーション開発をしている
    (基本的なところはノーコードで実装できるが、標準機能だとかゆくて手の届かないところはOSSによるカスタマイズができる)
  • カスタマイズでJavaScript(クライアント・サーバサイドともに)やSQLを扱う
  • 協力会社さんの管理をしつつ自らもコーディングをしている

また、当記事で指しているアプリ開発者というのは、"開発系タスクで自走できる"・"わからないところは不明点を明確にし、適切な質問先に質問できる"状態の人を表しています。

背景

チーム内メンバーとの会話の中で、ひとりで開発できる開発者になるためには、どんなことを学習すればよいのか考える機会がありました。
今の業務では、とあるベンダー製品であるローコード開発ツールを使用したアプリ開発をしていますが、新規メンバーに対し、ベンダーが準備した入門研修を受けてもらったあとに実際に現場に入ってもらうと、全然わかりません!と言われてしまったり、新規メンバーにつきっきりでQA対応しないと、自分一人で作業できない、そういった状況がよく発生していました…。

そうなると、比較的経験のあるメンバーに質問が殺到し、その方々の負荷が増大。その結果経験のあるメンバーがつぶれてしまう。。。そういうケースに発展することもあります。
そのままではまずいということで、新規メンバーに対する研修内容を見直してみることとなりました。その時のメモを共有させていただきます。

気を付けること

あくまで個人的な見解となります。

必要なこと(スキル・能力)

何人かのメンバーと話した結果をまとめると、このあたりは必要だよね、という結論に至りました。
 1.Webの知識
 2.開発言語を扱う力
 3.製品ツールの使い方
ー----今回はここからー----
 4.開発時に使うツールの使い方
 5.テストのやり方
 6.その他

順番に見ていきます。

4.開発時に使うツールの使い方

開発時に使用するツールはピンからキリまであります。
筆者の所属している会社では、基本的に上司やPJ標準で使用しているツールをとりあえず使っていますが、業務で行うなんらかのことにはそれぞれ役立っていると信じています。これらは積極的に活用するべきです。

たとえば、SQLの発行1つとっても、製品に組み込まれているWeb画面上でSQL発行画面を使用するのと、データベース操作系のツールを使用するのとでは雲泥の差が生じます。
先日、入社数か月でPJにアサインされたばっかりの社員に、所属部門で標準として使用しているデータベース操作用のツール導入を勧めました。
その時は、同じことがWeb画面からもできるのに、なんでわざわざツールを使うんだ…といわんばかりの表情をされました(笑)
しかしそれから数か月後、このツールがないとデータベースの操作なんてやってられないです!!と言ってくれるまでになりました。

この経験からもわかるように、入社数年の若手より実務経験のある上司が使用しているツールというのは、採用されているのにそれなりの理由があります。そのため、食わずもの嫌いせずとりあえず使ってみるとよいです(きっと何か理由があってそのツールを選んでいるのでしょうから…より便利なツールが見つかった場合はそっと新しいものを使いましょう。)

ここでは、個人的に使っている・聞いたことのあるツールを紹介させていただきます。

RDB操作ツール

  • A5:SQL Mk-2
    複数種類のRDBに対応した軽量ツール。トランザクションを有効化した上でのSQL発行、ER図の作成など基本的な機能が含まれています。
    AWSのVPC内に配置されたDBへの接続なんかも可能です。AWS側での設定が必要ですが。

https://a5m2.mmatsubara.com/

エディタ

  • Visual Studio Code
    非常に人気のあるエディタです。MITライセンスですし、とりあえずインストールしておけばよいのでは。
    vscodeと聞いてイメージするのはコーディングですが、中にはちょっとしたメモ書きで使用する方もいるみたいです。

https://code.visualstudio.com/

  • サクラエディタ
    こちらも人気のエディタです。
    正規表現を用いた文字列置換であったり、DIFF差分比較だったりで使用することができます。

https://sakura-editor.github.io/

一括操作

  • Devas
    文字列一括置換ツールです。
    複数ファイルを同時に操作できるところが利点ですね。
    作成したテストデータ100ファイルのxxという部分をyyに変えたい、といった場合に使用できます。

https://www.vector.co.jp/soft/win95/util/se162621.html

その他

  • Rapture
    キャプチャツールで、紹介サイトでは"画面上の指定した範囲だけをキャプチャして、最前面に表示させておくためのソフト"と謳ってます。
    機能としてはシンプルですが、これが使ってみると非常に便利なんです。
    あるファイルの一部分を参照しながら別のファイルを操作したい、Web会議で画面共有する際に複数ファイルの複数個所を同時に映したい、そういった場合に活用できるツールです。
    個人的に使い始めたら、瞬く間に職場で流行りました(笑)

https://www.vector.co.jp/soft/win95/art/se386376.html

ほんの一部ですが、私が使用しているツールについての紹介でした。
これらはあくまでも個人的に使用しているものであり、紹介したもの以外にも多くのツールが存在します。
また、紹介したツールをよく使用するとはいっても、全機能のうち一部機能を多用しているのが実情です。(そもそも自分でやりたいことをより簡単に実現するための手段がツールであり、日常業務で登場しない作業にまつわる機能は使いませんよね)

一方で、自分のような経験の浅いエンジニアが思いつく作業なんて世の中のみなさんもやっているよな、というスタンスでググってみると様々なツールが見つかるものです。
そのため、自分が担当する作業が面倒だな…楽にできないものか…と思ったらまずはWebで検索してみることが大切です。
そして良さそうなツールがあれば実際に使用し、日常的に使用したいと思えるものであるかを判断することも必要だと思っています。

5.テストのやり方

簡単に見えて非常に奥が深いのがテストです。若手がPJにアサインされるときにまず振られるタスクがテスト実施というのはSierあるあるでしょう…
そんなテストについては、そもそもなんでやるんだっけ?というテストの目的から理解しておくことが必要です。

まずは筆者の個人的な体験から紹介させてください。
筆者が新卒の時に、新人研修でテストに関することも教わった記憶があります。
ホワイトボックステストとは…JUnitで実際にテストを書いてみよう…そういった内容でした。(薄らと残る記憶の中のイメージです)

そういった学習を経て実際現場に配属され、その時はテストケースの作成から任されました。
研修で学んだことなどを踏まえ、それっぽいテストケースを作り、いくつかの不具合を検知して修正する。そのPJでは、そんな開発者依存のやり方でうまくいきました。

ただ、次の配属でより規模の大きいPJに立ち向かった時に、リーダーとして、チーム内の開発者に各々のやり方で対応してもらったところ、全くもってうまくいきませんでした。
そもそも考えられる全パターンをテストする時間なんてない。でも上司からは品質を求められる。
各メンバーと一緒に、それぞれと相談し合いながらテストケースを作ればそれなりのテストはできるだろうけど、そんなことをしたら自分がパンクしてしまう。
そのため何らかの工夫をしなければなりませんでした。そんな時に、テストで最低限確認しないといけないことってそもそもどんなことだっけ?といった基本的な知識が自身にないことに気づかされました。

もしこの記事を読まれているみなさんの環境において、テストの基本が周知されていない、研修でそんなところまで教えてくれないといった事象が散見されるのであれば、ぜひ以下に取り組み(仕組化してメンバーに取り組んでもらい)、テストのやり方について工夫を求められた時に各々が自分の意見を持てるよう、基本的なことの定着を目指していただければと思います。

なお、おすすめの学習方法は複数の書籍・コンテンツを読んでみることです。
みなさんなら量を消化していくうちに、いずれの書籍でも触れられているコアな要素(=大切な部分)に気づくことができるはずです!

  • ソフトウェアテストとは何か?から学ぶことができる一冊

https://amzn.to/3oXHugT

  • 様々なテスト手法をどのように取り入れるのかがまとめられた一冊
    特に、組み合わせテストの解説がわかりやすい。具体例が多く登場します。

https://amzn.to/3NstTbw

  • テスト実施・計画策定などのマネージャーに求められる要素を知ることができるサイト
    foundation・advancedそれぞれのシラバスを眺めることで、上記の書籍で述べられていることが、テストを俯瞰してみたときにそれぞれどこと紐づくのかを体感することができます。
    活字だけなのでなかなか頭に入ってこないかもしれませんが、イラスト化されている方もいらっしゃるのでそちらも参考にしてみてください。

https://jstqb.jp/syllabus.html

6.その他

プログラミングやテストといったソフトウェア開発に関する知識も必要ですが、それ以外の汎用的なスキルも忘れてはいけません。
こんな方はいませんか?技術の人だけが理解できる用語でしか会話ができず、ビジネス側とコミュニケーションがうまくいかない…質問はあるが疑問点がなかなか相手に伝わらない…そういった悩みを抱えた方は、皆さんの周りにもきっといるのではないでしょうか。
コミュニケーションや関係性構築に関する能力は、人とかかわる仕事全般において求められるものです。そのため、日頃から能力を磨いておく必要があります。

ただ、そういった目に見えないような部分をトレーニングすることはなかなか難しかったりするのですよね。しかもこうすれば良いといった正解もありません。
じゃあどうすればよいのか?というと、筆者としてはこの分野もとにかく量をこなし、あるべき姿を想像してみることが大切だと思っています。

ビジネス本といったジャンルの書籍が世の中にはたくさんあります。
その中には、とある組織でかなり上位の役職を経験された方や現在もその役職につかれている方が執筆したものもあります。
そういった方々の考えや振る舞いを知る、まずはそこから始めてみると良いです。そのために、様々な書籍を読んでみることをおすすめします。
(ひとりの方の本を読むよりも、様々な方の本を読んでみましょう)

中には、感覚的に違和感を感じるような考え方もあるでしょう。
そう思ってもひとまずはそう考える人もいるんだな~と思うくらいにして、否定をせずに引き続きインプットを続けます。
そうこうしているうちに、(別の人も似たようなことしていたよな…)といった、共通する価値観や似たような行動パターンの存在に気づくはずです。
その中から自分でもできそうなことであったり、良いと思える行動だったりを真似してみることから始めてみましょう。

あくまでも一例ですが、筆者が読んでなるほどな、と思ったものを紹介します。

  • 聞く・相談することのコツが紹介されている一冊

https://amzn.to/3Hvpb9m

  • 言いたいことが伝わらないことの原因を解説してくれている一冊

https://amzn.to/3VllqJi

  • 組織の上位職の方が語る報連相などの人間力について知れる一冊
    かつての上司が指摘してくれるような、心にチクッと刺さることを上司の代わりに伝えてくれます。
    (今ほどパワハラが問題視されていない時代には、こういったことを上司から口うるさく指導されていたのでしょうね…)

https://amzn.to/40Y0n0m

まとめ

今回は、Sierでアプリ開発者として働くために必要なことをざっくりと紹介させていただきました。
あくまでも特定の環境下において必要であること、ということだけは改めて念押しさせてください。

つまるところ、この記事を通じて伝えたいメッセージはこんなところです。

  • 始めたてのうちはとにかくいろいろとやってみよう
  • コンテンツは参照するだけではなくて、実際に手を動かそう

この記事が、少しでもみなさんのお役に立てれば幸いです。

Discussion