世界を動かす技術を、日本語で。

私は「Google Sheets」だけを使います

概要

  • 問題解決には 最も簡単な方法 をまず選択する重要性
  • ビジネスの変化に合わせて 解決策の見直し が不可欠
  • Google Sheets 活用の実体験を通じた学び
  • 無駄な開発や複雑なツール導入のリスク
  • 状況に応じた 柔軟なアプローチ の必要性

シンプルな解決策の重要性とGoogle Sheets活用

  • 問題解決時、 最も簡単な方法 をまず選択することが効率的

  • 既存の解決策がビジネスに合わなくなった場合、 要件を再評価 し改善や代替策を検討

  • 自分の場合、 新しいGoogle Sheet作成 が最も手軽な解決策

  • ビジネス環境が約2ヶ月ごとに変化し、プロジェクトの中断や再始動が頻発

  • 多くのプロジェクトが、 Google Sheetで簡単に解決可能 だった経験

    • 2ヶ月かけた管理パネル開発が 2回しか使われず、現在はGoogle Sheetで対応
    • 3週間かけた見積もりシステム開発も、 競合の表をGoogle Sheetにコピー して解決
    • CRM導入のための長時間の調査や比較も、 Google SheetsのCRMテンプレート で十分だった
  • Google Sheetが万能ではない が、状況によっては最適解となる場合が多い

  • 実際に作業を始めるまで 問題の全容が見えない ことが多い現場

  • 最初は 簡単な解決策 で着手し、必要に応じて 段階的に改善 していく方法が有効

シンプルな解決策のメリットと注意点

  • 過剰な機能追加や無駄な労力 を回避できる
  • 最初から複雑なシステムを作るリスクを低減
  • 業務の進行とともに 実際のニーズを把握 しやすい
  • ただし、 Google Sheetでは対応しきれない規模や要件 も存在
    • 何千行ものデータ管理や大規模な業務には不向き
  • 状況に応じて最適なツール選択 が必要

まとめとアドバイス

  • 最小限・最も簡単な方法 で問題に取り組み、必要に応じて改善するアプローチ推奨
  • 無駄な開発や未使用となるツール作成の回避
  • ビジネス環境や要件を よく見極めて判断 する重要性
  • プライベートでの開発は自由だが、 ビジネスでは効率重視 が大切

Hackerたちの意見

「HNに聞いてみる: 世界は古いExcelシートで動いてるのか?」って感じだね。

自分が見てきた問題は、情報がいろんな場所にある多数のスプレッドシートに分散しているときに現れることが多いね。関わっている人たちは、どのスプレッドシートにどんな情報が入っているのか、どれが本来のものなのか分からなくなっちゃう。時には、誰かがスプレッドシートAを主要な情報源だと思っているのに、自分はスプレッドシートBだけを変更しているせいで、データが矛盾することもある。Excelの欠陥は、実際のプログラムやデータのせいじゃなくて、プロジェクト内でのファイル管理の仕方に起因してるよ。迷路のようなシェアポイントや、ネットワークストレージに忘れ去られたファイルとかね。

バージョン管理がない Excelのスプレッドシートでもバージョン管理はできるけど、あんまり良くないよ。「変更履歴」って呼ばれてて、他の人の変更を承認/拒否する機能もあるけど、使ってる人は少ないね。特に、自分のビジネスプロセスを動かすためにルーブ・ゴールドバーグマシンを作った人たちなんかは使わないだろうけど、やろうと思えばできるよ。

そうだね、2000年代にアメリカでコーダーとして始めた時、僕は自分の仕事を、常に手をかけなきゃいけない苦痛なスプレッドシートをウェブアプリに変えることだと思ってた。でも、多くのビジネスがスプレッドシートでうまく運営されているのも分かるよ。スケーリングの問題があって、それが来た時には、理想的にはアプリに移行できるけど、完璧を求めると終わらないからね。

自分の財務管理にはGoogle Sheetsを使ってるけど、めっちゃ便利だよ。Google Sheets内に経費トラッカーのUIを作って、メインシートに経費を提出できるようにしてる(ここ数年で5000行以上の経費がある)。最近、Googleサービスアカウントを使ってこのGoogleシートに経費を追加するウェブUIツールを作ったんだ。それから、スマホで全部できるようにプログレッシブウェブアプリも作った。要するに、Google Sheetsはシンプルなアプリケーションにはデータベースの代わりに十分なこともあるよ(しかも自分専用に作られてるし)。

私も長い間同じことをやってる。目的に特化した代替品をたくさん試したけど、結局自分の解決策に戻ってきちゃうんだよね。(面白いことに、20年以上前のMicrosoft Moneyの方が今のどんなものよりも自分が欲しいものに近い)簡単に手に入れたい機能がないわけじゃないけどね。もちろん自分で作ることもできるし、何度も「始めた」ことがあるけど、典型的なボイラープレートコードに数時間もかかると、いつも諦めて自分の確実な解決策に戻っちゃうんだ。(これはバイブコーディングの前の話だから、今度挑戦してみるかも)

手短に言うと、特定の問題を解決するためには常に最も簡単な解決策を使うべきで、その解決策がビジネスに合わなくなったら、新しい要件を再評価して、現在の解決策を強化するか、問題をよりよく解決できる代替案を探すべきだよ。問題を解決するときは、将来起こるかもしれない問題や、持っていたい問題ではなく、今ある問題を解決することが大事。あなたの解決策は将来的には不十分になるかもしれないけど、どのように不十分になるかを正確に予測するのは難しいよ。

でも、もしそれが余計な手間でなければ、問題の周りの問題群を解決することで、解決策を強化できるよ。問題の定義が少し変わっても、小さな変更で対応できるから。これで、余計な手間なしに将来の問題も解決できるはず。

あなたの解決策が将来的に不十分になることを正確に予測するのは難しいけど、未来の解決策を妨げない現在の解決策を選ぶことはできるよ。常に選択肢を広げておいて、ベンダーロックインしないようにしよう。

あなたの解決策は将来的に不十分になるかもしれないけど、どのように不十分になるかを正確に予測するのは難しいよ。ある不十分さは、ベンダーに完全に依存してしまって、サービスから締め出されたり、料金がどんどん上がったりすることかもしれないね。これはかなり予測可能だよ。

一つ学んだこと: Google製品に依存しないこと。もしバンされたり締め出されたりしたら、アクセスを取り戻すのが最もAIカフカ的なプロセスになるから。何年も締め出されたままになることもあるよ。自分も時々Google Sheetsを使うけど、作業しているシートや重要なものは定期的にバックアップを取ってる。理由は未だに分からないけど、以前に困ったことがあって、それは今まで経験した中で最もイライラした「カスタマーサポート」プロセスだった。何年もかかったよ。

MSFTにバンされるのを試してみて。何も悪いことしてないのに、もう6年間もバンされたままだよ。すべてのアカウントへのアクセスを失った。

Groovesharkが一夜にして消えた以来、「クラウド」サービスのバックアップを取るようにみんなに言い続けてる。Spotifyも一晩で消えることはないかもしれないけど、IPアドレスの誤検知などでロックアウトされることがあるからね(Googleは、ロシアにいると思った時、ハンブルクでの31C3にいたのに全くログインさせてくれなかった — その時は一時的なIPスペースを使ってたらしいけど、今はどうなるか分からない)。Hacker Newsでも、ここに保存したいものがあれば、自分で保存しておくべき。FacebookのチャットやSignalなどは、保持したいデータを解読できる形式でダウンロードしておくこと。もし電話が壊れた時のために、Signalのバックアップ形式を解読できるようにしておいてね。

自分が超パラノイアになってるか分からないけど、Googleに製品のサンセットで何度もやられたから、もう全部のデータを削除しちゃった。プライベートな自己ホスト型のメールクライアント、写真ビューア、シンプルなDocsとSheetsの代替を設定できたよ。GoogleからKagiに、ChromeからBraveに切り替えたけど、基本的には検索エンジンを使うより、自分のブックマークを使ってる。今もスケルトンのPixelを使ってるけど、ストレージはほとんど使うアプリだけに限定されてる。先月くらいでGoogle Oneのストレージを700GBから700MBに減らせたよ。

Google Takeoutは重要だよ。個々のGoogleのデータをバックアップするのに苦労する必要はない。

あなたが言ってるのは無料の消費者プランのことだと思うけど?個別のワークスペースプランを払っていれば、そんなことは起こらないはずだよ。カスタマーサポート用の電話番号ももらえるし、ちゃんと機能する。Googleは、アカウントが詐欺やスパムに使われていると判断した場合に無料アカウントを停止するんだ。詐欺師やスパマーはほとんどコストゼロでアカウントを作成して、悪用するまでの間に活動を偽装して信用を築くから、正当な無料アカウントも時々巻き込まれちゃうんだよね。でも、定期的なバックアップはどんな場合でも重要だよ。もちろんTakeoutもあるけど、シートファイルをバックアッププロセスの一環として自動的に.xlsxに変換してくれるサードパーティの自動バックアップソリューションもたくさんあるよ。私は毎晩NASにバックアップしてくれるやつを使ってる。

Googleの実績についてはあなたが正しいけど、根本的にはあなたのコメントはGoogleではなく、サードパーティのクラウド依存についてのものだよね。オフラインストレージがこれを解決するし、別のコメントでもMSFTがあなたを禁止することもあるって言ってたけど(でも、オフラインストレージのおかげであまり聞かないよね)。

このコメントを見て、いろんなスプレッドシートソフトを調べてみたんだけど、普段使ってるExcelやGoogleスプレッドシート、LibreOffice以外にも、GNOMEのGnumeric、KDEのCalligra、AppleのNumbers、LibreOfficeのオンライン版Collabora、ドイツの会社が作ったExcelクローンPlanMaker、ラトビアのOnlyOffice、そしてPythonをベースにしたスプレッドシートもあるみたいだよ:http://en.wikipedia.org/wiki/Pyspread

僕が管理を手伝っている建物のためにGoogle Workspaceのサブスクリプションを購入したんだけど、メールをアーカイブして法的な目的で使うには「ボールト」にアクセスできるもっと高いサブスクリプションを買わないといけないって知って驚いたよ。すでに6席で月90ドル近く払ってるのに!

Sheetsなどをバックアップするための良い自動化方法はある?

OPに完全に同意だわ。追加したいのは、Google Sheetsでは表現したり作ったりするのが難しい複雑さが必要なとき、次のステップとしてGoogle Colab(または他のJupyterノートブック)を使うのがいいってこと。フルアプリを作る前に、いつも自問自答するんだ。「1. これってただのスプレッドシートで済む?」もしそうじゃなければ、「2. これってJupyterノートブックで済む?」ってね。SheetsとColabの連携はほんとに素晴らしいよ。

Google Apps Scriptもいいよ!データをインポートするための簡単なスクリプトでかなりのことができるからね。

「プログラマーは、プログラムの非クリティカルな部分の速度について考えたり心配したりするのに膨大な時間を浪費していて、こうした効率化の試みは、デバッグやメンテナンスを考えると実際には強い悪影響を及ぼす。小さな効率を忘れるべきだ、97%の時間はね。早すぎる最適化はすべての悪の根源だ。しかし、その重要な3%の機会を逃してはいけない。」 - ドナルド・クヌース まずはgsheetから始めて、壊れたら別のものを作ればいい。

anecdotalだけど、前の職場ではガスの貯蔵/交換の契約があって、何年もそのビジネスはExcelシートに依存してたんだ(基本的にはいろんな顧客からのガス貯蔵取引を追跡してた)。理由は忘れたけど、ちゃんとしたアプリケーションに移行することに決めたんだ。全部で開発チームが2年かかったと思う。でも、こういうことはよくあることで、単なる置き換えではなく、もっと多くの機能やビジュアライゼーションを追加したんじゃないかな。要するに、その会社はスプレッドシートだけで成功したってこと。

「最初はgsheetを使って、壊れたら別のものを作ればいい。」絶対にダメだよ。スプレッドシートを作った人は会社を変わってしまうし、その「ビジネスロジック」や知識も一緒に消えちゃう。今は誰も仕様を知らないブラックボックスに縛られちゃって、みんなそれに依存してる状態だよ。

何かを下手にやることができて、同じ時間で正しいやり方ができるなら、なんでわざわざ間違ったことをするの?

本当の話なんだけど、2000年代初頭に、車のレンタル料金を管理するためにExcelを使ってアプリを作った人を知ってる。時間が経つにつれて、彼はチームを作り、アプリを発展させていったんだ。少しずつ自動化していったけど、最初は全部手作業で、Excelで管理して、お客さんにはPDFで印刷して送ってたんだよ。結局、彼はそのビジネスを4億ドルで売ったんだ。外部からの資金は一切なくて、彼が唯一のオーナーだった。

Xooglerだよ。5年間、プロジェクト管理、CRM、四半期計画、報告、面接、財務など、すべてにSheets(社内ではTrixって呼んでた)を使ってた。これはGoogle製品だからじゃなくて(競合の製品もたくさん使ってた)、タスクに対して十分に良いものを簡単に作れるから、仕事を進めることに集中できたんだ。

Googleでは、コラボレーションが以下のように行われると聞いたけど: - リスト作成(Googleグループ) - gsheets - 自動消失する基本的なリアルタイムチャット それって本当?めっちゃ興味深いね。セクシーなSlackやTeamsみたいなものはないの?

プロ/アンチスプレッドシートの議論でいつも見落とされがちなポイント:スプレッドシートはデータベースを提供し、すぐにカスタマイズできるUIを持っていて、反復的でデバッグしやすいデータ処理ができるパッケージなんだ。しかも、誰でも理解できる形で。クリエイターが好きなようにできる自由もあるし、持ち運びも結構簡単。スプレッドシートで素晴らしいものを作れるよ。特にコーディングできない人にとっては、最もクリエイティブでパワフルなソフトウェアだと確信してる。この力と自由には欠点もあるけど、オンラインであることの利点や、どのベンダーがいいかを議論することもできるけど、スプレッドシートへの私の深い感謝はそんな些細なことでは揺らがないよ。これまで考案された中で最高の著作ツールだと思ってる。追記:スプレッドシートと同じように「韻を踏む」ものは、HyperCardだと思う。アプリケーションやデータ、UXなどを組み合わせる柔軟な作業台だった。RIP HyperCard、忘れられないでいてほしい。

スプレッドシートがデータベースをバックエンドとして使うもっといい方法があればいいのに。人々がスプレッドシートでやってることのほとんどは、データベースでやった方が良いと思うけど、データベースを使うにはもっと多くのトレーニングが必要なんだよね(トレーニングがなければ、データベースでスプレッドシートよりも悪いものを作ることになる!)。

Googleのアプリスイートは最初からマルチユーザー用に作られてる。複数の人、特に何十人もが同じ共有ドキュメントに同時にアクセスしても、Microsoftのアプリよりもパフォーマンスがいいんだ。ドキュメントの共有は、ウィンドウやデスクトップを共有するよりも強力なんだよ。人々の協力の仕方を変えるんだ。

特にコーディングできない人にとっては。おそらくそういう人たちはスプレッドシートの使い方を学んだんだろうね。スプレッドシートの数式を学ぶのが可能なのに、SQLやPython、Rが不可能なのはなぜだろう?

特にコーディングできない人にとってはそうだね。コーディングできる人にとっては、Appscriptがスプレッドシートにスーパーパワーを与えてくれる。知らない人のために言うと、Googleシートに付いてくるAppscriptの統合ウェブIDEでJSを書く必要はないよ(正直、あれ自体はそんなに悪くないけど)。claspを使えば、自分の好きなIDEでローカルにコードを開発できて、TypeScriptで書いてビルドステップでそれをJSにコンパイルして、claspでスプレッドシートにプッシュできる。ツールチェーンを設定すれば、開発体験はかなり良いよ。

もう一つ見落とされがちなポイントは、スプレッドシート反対派は実際にはスプレッドシートの使用に反対しているわけじゃなくて、ただ同僚に重要な業務を、昔の退職者のホームディレクトリにしか存在しない巨大で中途半端なスプレッドシートに置かないでほしいだけなんだよね。

スプレッドシートからカスタムUIを持つ本格的なデータベースへの移行パスがもっと段階的にあればいいのにとずっと思ってた。スプレッドシートはその役割を果たす寸前にいるように見えるけど、実現可能にするためのいくつかの重要な機能が欠けている感じ(構造化データ、ネイティブSQLクエリサポート、カスタムUI要素、IDE統合など)。

それは私たちが考案した中で最高の著作ツールです。ただし、非常にタイトなチームとスプレッドシートの使い方に関するプロセスがない限り、共同作業ツールとしてはあまり良くないと思います。一人で使う分には問題ないけどね。でも、スプレッドシートはデータを構造化する際に、ある種の単純な「視覚的」アプローチを促進してしまうから、実際にデータを処理するためにインポートしようとした時に問題になることがある。同僚がこれをあまり理解していないと、余計に困る。スプレッドシートは役に立つこともあるけど、特にExcelについて言えば、ローカリゼーションの問題は悪夢そのものだよ。間違った国に住んでると(小数点のカンマとドットの問題)、特にCSVファイルをインポートする時(Excelではすでに不必要に複雑なのに)。もしこれらの問題に気づかなかったら、どこでエラーが出たのかも分からずに間違ったデータを手に入れることになる。もし同僚がスプレッドシートの使い方をあまり理解していないと、実際に処理のためにスプレッドシートをインポートする時に問題が起きて、すぐにイライラすることになる。異なる形式の日時、意味のある色付きボックス、テキストと数字の混在など。確かに大部分は「人の問題」であって「技術の問題」ではないけど、個人的にはスプレッドシート技術(ExcelやGoogleシートなど)は、信頼性を下げるようなさまざまな慣行を促進していると思う。技術が簡単に失敗する自由を与えるなら、それは単なる人の問題ではないと思う。

「今まで作った中で最高の著作ツールだよ。」100%同意。スプレッドシートを作るのは宣言的プログラミングで、Excel(今はGoogle Sheetsもね)は他のどのプラットフォームよりも多くの開発者を生んできたと思う(多分桁が違うくらい)。90年代や00年代に、実際のビジネス運営でExcelに依存していなかった会社なんて知らないし…今も同じだと思う。

「特にコードが書けない人にはそうだね。」小さなポイントだけど、式を作れる人は実際にはコーディングしてると思うよ。

「約9ヶ月前に仕事に就いた。」正しいか間違っているかは別として、1年も経たないうちにそんなはっきりした意見を持つには、ある程度の度胸が必要だよね。OPが見落としているのは、「一時的な解決策ほど永続的なものはない」ってことだと思う。私もクイックで雑な解決策を受け入れるけど、その解決策のライフサイクルを完全にコントロールできる場合だけね。誰かがすぐにそれを提供するように頼んで、その上に城を建てるつもりなら…もっと初期コストがかかるツールを使うことを主張するかもしれない。

世界は二元的でも白黒でもないよ。スプレッドシートと高度に構造化されたアプリの間には、さまざまな解決策がある。確かに、スプレッドシートは何にでも使えるし、すぐに作れるし、ほとんど構造がない。でも、特定のプロセスに合わせた専門的なアプリを使うこともできる。それは入力のエラーチェックを行い、データの整合性を検証し、データ構造を壊させないようにする。しかも、その間にもいろんな選択肢がある。スプレッドシート(OPが「Google Sheet」と呼ぶのが面白いけど、結局スプレッドシートなんだよね!)は貧乏人のリレーショナルデータベースで、ほとんどのスプレッドシートは単一のテーブルか、複数のテーブルだけど関係をモデル化していない。スプレッドシートで意味のある形で関係をモデル化することはできない(制約を課したり、整合性をチェックしたりすることができない)。在庫管理のSaaSを提供して生計を立てている人間の視点から書いているけど、スプレッドシートは直接の競合だからね。また、在庫を含む顧客のスプレッドシートをたくさん見てきたけど、正しいものや良いデータが含まれているものは一つもなかったよ。