ノイマントーキョー株式会社ブログ

ノイマントーキョー株式会社(旧名: 合同会社ノイマン)の公式ブログです

社内ツールとして taiga.io と penpot.app を採用しました

表題の通りで次の2つを社内ツールとして新たに採用しました。

www.taiga.io

penpot.app

どちらもオープンソースなので社内で Conoha vps を借りて運営しています。

Taiga

なんか良いタスク管理ツールないかなと思っていたところこちらを見つけてなかなか良さそうだなと思ったので使ってみることにしました。 自分の中の「なんか良い」の基準は

  • チケットを優先順位でなレベルことができる
  • ポイント見積もりを行うことができる
  • Markdown などでタスクの詳細を書くことができる
  • フォントサイズが大きめなどデザイン的におしゃれなこと
  • Epic を設定できるなど、アジャイル開発に向いていること
  • 安い

長年使ってきたこともあり Pivotal Tracker あたりがやはりアジャイル開発をするには適しているのですが、これはいかんせんデザインが古臭い。 フォントサイズも一応大きくできるもののなんとなく使いづらい、ごちゃごちゃした見た目が昔から好きになれません。

かつて、 waffle.io というのがあってこれが個人的にかなり良かったんですが、残念ながら github project が登場したあたりでサービス終了してしまいました。 似たようなサービスの zenhub もかなり良いのですが、ポイント見積もりが少し見た目でやりづらいのとプラグインのインストールが必要なのがいまいちだなぁと思ってました。

で、色々探してみたところ Taiga を見つけました。 オンプレでも動かせる点がまず気に入りました。しかも docker-compose up するだけ。こういうの一昔前ならDBの構築やAppacheの設定などで結構時間が溶けたものですが、便利な世の中になりました。 (それこそJenkinsのセットアップで一日くらいかかっていたものですが...) タスク管理ツールというのは結構社外の人に見せる機会も多く、ユーザーごとに5$/month とか取られると結構いたいんですよねぇ。かつステークホルダーをなるべく全員いれてないと意味ないし。 そうするとオンプレで運営できるのであればサーバー代だけで良いというのは夢のようです。 弊社の場合「基本的にはお客様のXXXサービスでタスク管理されてるけど、ちょっと社内でも細かいタスクを管理したい」みたいなちょっとした用事も多く、そういうのを今までなんとなくgithub issueやproject で管理してましたが、微妙に使いづらいというか痒いところに手が届いてないというか、まぁ不満があったわけで、今回少し大きめの仕事が来たこともあり良い機会なのでVPSを借りて taiga を運用してみることにしました。

Taiga はまだセットアップしただけであまり使ってませんが、良い点としてはまずデザイン。今風のすっきりした見た目にそれなりに大きめのフォント。Markdownも使用できるようだし、Notionみたいにタスクをリストやカンバンに切り替えられるのも気に入りました。Epicも設定できるしポイント見積もりもしっかりできるのでアジャイル開発に向いてそうです。 Notionなどの汎用的なツールを選択しなかったのは、やはりなんでもできるツールというのがいまいち自分の中で信用出来ないというか、面倒くさいというか。。。 Wikiのようなものは弊社の場合すでにgoogle drive で実現できているので、あくまでもアジャイルな見積もりと計画づくりのためのツールとして使いたいという意味でNotionよりTaigaのほうが良いという結論に至りました。

ところでこの本は未だに自分の中でバイブルなので未読の方はぜひ読んでみてください。

Penpot

Taiga の docker セットアップのリポジトリをコピーして環境をセットアップしたところ、 Penpot もついてきたので一緒にセットアップすることにしました。

github.com

少し前 Figuma が Adobe に買収されたことを受けてオープンソースの Penpot のユーザーが爆発的に増えたそうです。 僕の中でこのニュースはあまり関心が深いものではなかったのですが、今回 Penpot が一緒に動かせたので使うことにしました。

いままでワイヤーフレームを自分で書くときは google の図形ツールを使っていたのですが、さすがに今どきそんなことやってるは僕だけで他のメンバーにこれを強要するのもいまいちだなと思っていたので Penpot 導入はちょうどよかったかもしれません。何より Taiga と同じサーバーで動かしているのでお金が追加でかかりません。 Figuma のように作成したデザインの CSS を確認する機能もあるようですし、ひとまずこれで良さそうです。 可能であれば弊社に協力していただいているデザイナーさんにも使ってもらうつもりです。

どうにもAdobe税が高いのが問題です。 Adobe 商品のクオリティの高さは言うまでもないのですが、正直そこまで高度な機能はいらないことも多く、今までも GimpInkscape 等でなんとかしてきました。まぁWeb開発だけならこれでもなんとかなるんですが、近頃チラシや名刺の作成などの印刷物も増えてきたので流石に全くAdobeを契約しないのは無理があるなという状況になってきましたので、数アカウントくらいは購入するつもりです。

とはいえ、Web開発の場合XDも微妙に使いづらいしFigumaも雲行きが怪しいしというわけで少し困っていたのも確かなので、オンプレ Penpot は割と良い選択なのではないかなと思っています。

おまけ: 弊社のWiki事情

『パターン、Wiki、XP ―― 時を超えた創造の原則』この本がでたのが2009年だそうです。 残念ながら昨今ではデザインパターンやXP ( eXtreme Programming )という言葉はほとんど聞かなくなってしまいました。Wikiという言葉もあえて使うことは少ないように思います(かわりにNotionとかScrapboxみたいなツールのほうが人気でしょうか)。 しかしこれらの概念は消滅したわけではなくむしろ常識として浸透してしまったがゆえにわざわざ表立って出てこなくなったものという気がします。なのでこれらの重要度は依然変わりなく高いままであるように思います。(個人的にはScramよりXPという方がアジャイルらしいなと思ってますが...。まぁこの辺の話は私より上の世代の人に任せます)

ともかく、会社設立当初から社内Wikiというものが何かしらの形で必要でした。しかし当時金もなくなにより時間がなかったので運営の手間を省くべく始めたのが google drive の活用でした。

やっていることは単純で google drive の共有ドライブ (正確に言えばgoogle workspace を business starter に上げたのは最近のことなので、長いこと共有ドライブ機能は使えずただの共有フォルダ機能を使ってました) 上に「Wiki」というフォルダを作って全社員が見れるようにしただけです。

google documents を WYSIWYG editor と考えてしまえば google drive は立派な Wiki です。検索機能は申し分ない(ドキュメントの中身も検索してくれます)し、権限管理もかなり柔軟にできます。しかも google drive 内で documents を作成する分には容量に影響しません(wordファイルなどをアップロードすると容量に反映されます)。画像の貼り付けなどもできますし、最近ではタスクとの連携やページ区切りなし表示などもできるようになりますますWikiとしての使い勝手が良くなってきました。ローカルに同期もできますし、正直 Notion 等を使うより便利な気がします。

何より google カウントさえあれば誰とでも共有できるのが楽です。本当に社内にだけ完結するのであれば 何を使ってもいいんですが、やはりどうしても社外の人にも情報を共有したいケースが多々有り、そのたびに他のサービスのアカウントを作ってもらうのは手間がかかります。相手のリテラシーが高くない場合、アカウントを作るだけで一苦労というケースもありうるので、 google のサービスに乗っかれるのは何かと楽です。

というわけで社内ではこの google drive 上のただの共有フォルダを wiki と言い張っております。 他にも google workspace の機能を活用しまくっていて、かなり最大限の活用をしている自信があるのでこれに関してはまた別の記事にしようと思います。

ではまた。

株式会社化および社名変更のお知らせ

2022年11月1日より弊社は合同会社ノイマンからノイマントーキョー株式会社に変更になりました。 今後ともよろしくお願いします。

社名に関して、東京の会社じゃねーじゃんというご意見は最もですが、neumann.co.jp や neumann.jp のようなドメインがすでに他の人に取られており、 私の方で取得できたのが neumann.tokyo だったためこれがそのまま社名になった感じです。 tokyoだったら外国から見ても日本の会社とわかるので良いのではないかという気持ちです。

というわけで弊社は静岡県に本社がありますが、グローバル企業として邁進していくつもりですのでよろしくお願いします。

Clojureを用いたインターンについて

この記事は Clojure Advent Calendar 2020 - Qiita に向けたものです。

合同会社ノイマン代表の馬場です。 弊社では次のようなインターン募集を行いました。

www.neumann.tokyo

Webプログラミングの基礎とともに Clojure を学び、開発を行うという趣旨のインターンです。 今日はこのインターンプロジェクトについてお話します。

なぜClojureを採用したのか

しばしば次のような質問を受けております。

「なぜ Clojure を使うの?他のもっと流行っている言語があるのに」

ごもっともな疑問ですが、答えはシンプルで「私が好きだから」というだけです。 特に具体的な展望があってのことではありません。 もちろん「好き」である理由はあるんですがくだくだしくなるのでここでは書きません。 ここではClojureが好きだからという理由だけでなぜそれを仕事にしようとするのかについて話します。

というのも、私はある時ふと、なぜ自分が会社を運営しているのか疑問に思いました。 もともと私が会社員をやめたのは完全テレワークで働きたかったからで、それはもう4、5年ほど前の話です。 幸いなことに私はこの4、5年の間ずっと完全テレワークで働いていて、お客様先に出向かったのはほんの数回程度です。 しかし、今ではご承知の通り新型コロナウイルスの流行により一気にテレワークという言葉が一般的になってしまいました。 テレワーク可能な受託開発の案件が増えたことは私にとっては有利なことでしたが、 一方でわざわざ会社経営などと面倒なことをしなくても完全テレワーク可能で技術的にも面白い会社に就職するという選択肢が出てきました。

おそらく起業家には二種類の人間がいて、一方は会社経営が好きな人、もう一方は仕方なく起業している人で、私は完全に後者です。 働き方の形態としては私は今でも会社員になりたいと思っていますが、給料面や自分の裁量の多さ、節税などを考えると社長をやらざるを得なくなってしまっただけなのです。

上記のような状況で自分が会社を続ける理由はなんだろうかと改めて考え直すことにしました。 流石に合同会社ノイマンを起業して1年目なので廃業するには早い気がしますし、売上は十分な額を出せています。 しかし、当初の目的であったテレワークには他の選択肢もあるわけで、それを選ばずに会社を続けるには理由が必要でした。 基本的に私が行っている受託開発はRubyやGoなどを用いたもので、Clojureを使った仕事はやったことがありませんでした。 Clojureと出会って早くも2年ほど経ちますがその間は趣味で少しずつ勉強する程度だったので、私はもっとClojureを使いたいという欲望が大きくなっていました。

一人で会社をやるなどというのはそもそも酔狂なもので、その会社で稼いだ金でClojureのようなマイナー言語に投資をしてもそれは酔狂に酔狂を重ねるだけのことで、何ら不自然なことではないのです。 流行の技術を使って開発をすることには多くのメリットがあることは言うまでもありませんが、私は自分が本当に美しいと思える技術で開発がしたいという気持ちが大きくなっていました。 Clojureを好きだと言いながら技術的にClojureで何でもできる状態にない自分というものが嫌でした。 そこで会社として、つまり自分の仕事として、もっとClojureを使っていくことに決めました。

インターンシップ制度では何を行っているか?

インターンシップ制度には無償コースと有償コースの2つを用意しました。 詳細は上記のホームページにありますが、無償はWebプログラミング経験があまりない人を対象とし、有償コースはある程度知識がある方を対象としています。

無償コースについて

無償コースではWebやDBといった開発のために必要となる知識をインターンに教えるようにしています。 本格的なプログラミングスクールほど教材を整備することができなかったので、各技術の公式サイトなどへの案内をまとめて各自で勉強してもらうスタイルにしました。 弊社からインターンに推奨しているサイトや書籍についてはライセンスを確認していますが、その教材を用いて授業を行ったり利益を得ているわけではないので、ほとんどの場合は利用可能でした。 これらを情報を google sites でまとめてポータルと称しています。 google sites は特定のメールアドレスにのみ限定公開する機能があるので、それによりインターンにのみ公開するようにしています。

f:id:kbaba1001:20201210095650p:plain ポータルのスクショ

また各技術の分野ごとにテスト問題を用意して、その問題を解くことで理解度を確認してもらうようにしていく予定です(問題の作成に時間がかかっておりこれはまだ実施できていません)。 問題の出題と回答の提出については google form を使っています。複数の問題があるのでこれらは google classroom でまとめる予定です。

上記のように弊社のインターンgoogle のサービスを活用することで成り立っています。 これは google のアカウントだけあれば色々できるようにしたかったためです。 今まで google sitesgoogle classroom は使ったことがありませんでしたが、今回のような小規模な教室のようなことを行うのであれば非常に役に立つ方法ではないかと思います。

有償コースについて

有償コースでは月20時間程度の稼働でClojureを用いた開発に協力してもらっています。 インターンは実際の開発に関わることで実践的なスキルを身につけられますし、私は開発力が手に入るのでお互いに助かります。 こちらは Duct や re-frame を用いて簡単なアプリを作成することから始めています。 ある程度形になってきたらローンチする予定ですが、このアプリでいきなり儲けようと言うよりは技術的な研究を行うことのほうが目的としては大きいです。

日頃のコミュニケーションについて

弊社はもともとテレワークの会社なのでインターンシップ制度もすべてテレワークで行っています。 参加しているインターンも東京だけでなく大阪や岡山など住んでいるエリアはバラバラです。 職業も学生だけでなくすでに働いている方もインターンに参加されているので、稼働時間もバラバラです。

そのため日頃のコミュニケーションは Discord を用いてチャット上でやり取りしています。 社内のコミュニケーションには Slack を使う会社が多いと思いますが、いくつかの理由により Discord にしました。

  • 音声通話が気楽にできる
  • 権限管理が楽
  • 社外の人も含めてオープンなコミュニケーションの場所にしたかった
  • インターンにDiscordの他のサーバーも利用することでエンジニアとしての和をひろげてほしかった

弊社Discordは社外の人も入れるので興味のある方は次のリンクからご参加ください。

discord.com

一方課題に感じていることとしては、同期的なコミュニケーションが非常に難しいということです。つまりミーティングの開催が難しいのです。 無償コースは基本的に各自で動いてもらうのでよいのですが、有償コースはミーティングを設ける必要があることもあるのですが、 予定の調整が面倒くさいのと土日や夜になったりするのが嫌なのでミーティングは基本的にやらない方針にしてきたいと思っています。 そのうえでどのようにコミュニケーションをしていくかは今後の課題かなと思っています。