非エンジニアがGitとGithubでぶち当たる3つの壁
社員ブログ
初めまして、ディライテッドでエンジニアをしておりますAseiです。
最近、コードも書けるマーケティング担当のYさんに、チームで開発する時に使うバージョン管理ツールの「Git」と「Github」の使い方を教える機会がありました。
エンジニアリングに関係することだと特にですが、「教えるとか伝えるとかってやっぱり難しいなあ」と思いました。
今回、Yさんがブチあたった壁をまとめてみましたので、今後非エンジニアの方にgitを教える時の参考になれば幸いです。
1. GitとGithubの違いがわからない
Webの構造を理解している人からすれば、クライアント側とサーバー側の関係性を意識できるので、すぐにGitとGithubの違いが理解できます。
しかし、それを知らない人はそうはいきません。
「リモートとローカルってどう違うの?」
となってしまうでしょう。
そもそもリモートリポジトリを作る必要性もわかりません。
理解するには、DropboxやGoogle Driveなどのクラウドストレージサービスに例えるとわかりやすいかと思われます。
ここで言う、
「編集したExcelファイルの内容を保存する」
「Dropboxにアップロードする」
上記2つあたりがGitの役割で、
Dropboxという場所がGithubですね。
しかもGitならExcelファイルの編集履歴が見れるんですよ!
便利ですね!
といった具合の例えです。
2. Terminalのコマンドがわからない
↑黒い画面です。怖いです。慣れていない方の場合、何が起こるかわからずキーボードを打つことをやめてしまいます。
「Gitというものがなんなのかだいたい分かったのに、それを使うにはそもそもTerminalのコマンドを覚えなければならないのか…」
挫折するには十分な理由を得てしまいます。
こういう時は、
「Terminalって基本的には普段Finderで行っている動作と同じことを英語のコマンドで行うためのものですよ。」
と伝えてあげます。
Terminalを使う理由は、FinderからだとGitのコマンドを使えないからです。つまり、Gitを使ってバージョン管理ができません。
Terminal上でFinderのようにフォルダ間を移動できるようになって、Gitコマンドをいくつか覚えるだけで十分です。
黒い画面の苦手なイメージを払拭できるようにするのが大切だと思いました。
3. Pushしたつもりができていない
Gitがどんなものなのかがわかり、使い方も覚えてしばらく使うと起こり始めることです。
「git pushしたけど、今回はなんか表示がいつもと違うぞ…?
でも英語読めないしまあいいや、pushしましたーって報告しよっと。」
と、なってしまいます。
これは今まで教えてきた経験、そして周りと話している時にわかったのですが、運用していると頻繁に起こるあるあるです。実際に使い始めてもらう前に競合が起こるデモをしてみると良いかもしれません。
“`
Aさんがcommitしてpush
Bさんがpullして編集内容をcommitしてpush
Aさんがまたcommitしてpushしようとしたけど最新をpullしていないためにpushできない
“`
といった具合です。
これによってGithubがチーム開発に不可欠であることが具体例で理解できるようになると思います。
敢えて、エンジニアがやっている方法でやってみる
正直に言えばSourceTreeなどのGitのGUIアプリケーションを使えば視覚的でもっと楽です。
しかし
コーダーしか書いていないLPなどのコーディングファイルをGithubで管理する。
Terminalを使って簡単なコマンドを覚えてもらう。
などを敢えてすることによって、エンジニアでない人でもエンジニアがやっていることを少しでも理解できますよね。
あと例えば、
Redashを使うことをきっかけにSQL文を覚える
とかもありますね。
以前このブログの「プロダクト開発業務を効率化する便利ツール3つ」で紹介しましたが、弊社でもCOOがSQLを書いてKPI管理などを行っています。
このような入り口がわかりやすいツールなどを使って、ビジネスサイドとエンジニアリングサイドが距離をもっと縮めて仕事ができるとより良いチームワークが生まれるかもしれません。
これからも良いチームでより良いプロダクトを作っていきます。
引き続きどうぞよろしくお願いいたします。