ソフトウェアの設計およびコーディング時には考慮すべき要素が何千もあるため、チームが複数のクライアント向けの複数のアプリに取り組んでいる場合、誰かが全体的な方向性を示す必要があります。そのコードラングラーは、プロジェクトをコンセプトから実用的な製品まで導くソフトウェアアーキテクトです。
ソフトウェア アーキテクトであることが何を意味するのかを学ぶために、フロリダの中小企業の主任ソフトウェア アーキテクトである Harrison Ambs に話を聞きました。
あなた自身とあなたの経験について少し教えてください。
私は Harrison Ambs、リード ソフトウェア アーキテクトです。スティックボーイクリエイティブ。私はこの仕事に数年携わっており、その前は数年間 Stickboy でクリエイティブ ディレクターを務めていました。私の仕事は「ソフトウェア アーキテクト」です。基本的に、新しいクライアントと会い、ビジネス目標を理解し、ニーズを特定し、ビジネス目標内でソフトウェア ニーズを満たすソリューションを設計することで構成されています。主な発見とアーキテクチャ (何を行うのか、どのように行うのか) が完了したら、私はチームを率いて、設計したアプリケーションを設計および構築します。つまり、現在のコーディング手法とトレンドに関する知識と、統合する必要がある既存のソフトウェアと、それらのソフトウェアがサードパーティ ベンダーに提供しているものについての理解とを両立させる必要があるということです。また、私はアプリケーションの設計を担当しているため、最新の設計トレンドとユーザー エクスペリエンスのベスト プラクティスについていく必要があります。
私たちのクライアントのほとんどは、業務の遂行方法の一部を合理化したいと考えている企業です。通常よく起こるのは、何年も使用してきたボックス ソフトウェアがあり、最初は必要なことの約 95% を実行していましたが、成長するにつれてその数が少なくなったということです。私たちは彼らと会い、彼らの現在の状況と要件を理解します。次に、全体的なビジネス プランと、このプロジェクトでビジネスやソフトウェアのプロセスを合理化したり、誰かの一日を楽にしたりできるどの領域を改善できるかについて話し合います。プロジェクトと企業を十分に理解した後、各企業の固有の状況に最適で、企業とともに成長し適応できるアプリケーション プラットフォームを開発する計画を立てます。
他の企業が、販売したいアプリケーションのまったく新しいアイデアを持って私たちに来て、私たちにそれを構築してもらいたいと考えています。その場合は、すべてを最初から構築します。これは上記とは異なるシナリオですが、全体的なプロセスは同じで、まだ存在しないものに合わせて調整されているだけです。これが私が最も従来のアプリ開発者に似ているときです。さて、ほんの数年しか存在していないものを本当に「伝統的」と呼べるでしょうか?
キャリアパスを選択した理由は何ですか?
もともと私は航空宇宙エンジニアになりたいと思っていました。私は博士号を取得してロッキード社のスカンクワークスに就職することを期待して大学に通いました。私のクラスの 1 つでは、トイレを地球同期軌道に打ち上げるというプロジェクトが与えられました (紙の上で)。私たちはすべての計算をし、推進剤、発射場、材料などを研究しなければなりませんでした。グループにボーナスポイントを獲得してもらいたいと考えて、無料の 3D モデリング プログラムを探し、ロケットを 3D で構築し、ロケットがどのように設定されているかを実証しました。アップとそれがどのように見えたか。そのプロジェクトの終わりに、私が本当にやりたいのはデザインだと気づきました。
私は中退してコーヒーショップに就職し、3D デザイナーのような仕事を見つけようとしました。本当に仲の良い友人が私を彼の会社に紹介してくれて、そこからテレビのモーション デザインの仕事に就き、退職して地元のニュース会社のアート ディレクターになりました。その後、モーションデザインスタジオに就職し、デザイナーとしての仕事をオファーされ、現在はStickboyで働いています。
ほとんどの中小企業と同様に、私たちはさまざまな努力を重ね、常に進化しています。 Stickboy は、ウェブサイトのデザインを行う小さなデザイン スタジオとしてスタートしました。より複雑な Web 開発ニーズを必要とするクライアントが着実に増えてきました。これらは紹介につながり、さらに複雑なプロジェクトにつながり、私たちはビジネスの方向性に適応する必要がありました。これは、当社のビジネスが適応し続ける (そして今後も) 変化するにつれて、私がデザイナーからクリエイティブ ディレクターになり、現在はソフトウェア アーキテクトになったことを意味します。ビジネスの良さは、そこで働く人々の働きによって決まります。そして、私が目指す方向に先んじようとしないと、ここにいる他の人たちに迷惑をかけることになります。私たちの CEO はこの点で優れています。常に今いる場所の 2 歩先を進んでいます。
どうやって仕事に就いたのですか?どのような教育と経験が必要でしたか?
デフォルトで取得しました。私たちは会社をその方向に進めることに決めましたが、私はその部分を本当に楽しんでいることに気づきました。私は常に、複雑な問題を解決し、それらの問題を満たすソリューションを生み出すことに惹かれてきました。私はクリエイティブなプロセスや、誰も見たことのないものを思いつくことも大好きです。教育は受ければ受けるほど良いのです。なぜなら、それだけで「十分」ということはないからです。ソフトウェア開発は急速に進んでいますが、標準的なビジネス慣行やプロセスの進化はより遅いため、ビジネスの学位が役立つ場合があります。したがって、ほぼすべてのビジネスとその目標を理解する能力は、ソフトウェアを設計して機能させるのに大いに役立ちます。
経験に関して言えば、ほとんどの場合、仕事を通じて学びます。私はできるだけ多くの個人のアプリ開発者のブログやニュースレターをフォローするのが好きです。なぜなら、彼らはソフトウェア開発に関して武士の刃のように研ぎ澄まされているからです。彼らは可能性のギリギリのところにいるので、私はクライアントにより良いサービスを提供し、チームを助けるために、その先に何があるかを常に彼らに期待しています。
ほとんどの人が見ているものを超えて、どのようなことをしていますか?実際、時間の大部分を何に費やしていますか?
その質問の答えを見つけるには、お金を追跡する必要がある、とどこかで聞いたことがあります。たとえば、ローリング ストーンズは実際には T シャツのセールスマンです。もしそうなら、私は人間によるファイリングと分類システムです。私の一日のほとんどは、クライアントとチーム間での情報の受け渡しを促進することに費やされています。クライアントが機能のアップデートをリクエストし、私たちのアプリで動作する新しいテクノロジーが登場し、開発者の一人が画像のアップロードを簡単にする小さな PHP ウィジェットを何度も作成します。これらすべてが私を通過します。それらを評価し、優先順位を付け、文書化し、プロジェクトに組み込むことができます。各プロジェクトには独自の範囲とスクラム スケジュールがあり、すべてのプロジェクトで動作する可能性のある機能は、あるアプリケーションには来週実装される可能性がありますが、別のアプリケーションには 3 か月後に実装される可能性があります。
あなたの仕事について人々はどのような誤解をよく抱いていますか?
ほとんどの場合、それは存在します。ほとんどの人は、私がソフトウェアを自分で作っていると思い込み、私が作成に協力したものを買うかどうか尋ねます。上司が私たちに開発を命じている会計ソフトウェアがあなたの仕事をやりやすくするために、時にはとても遅くまで働く人たちがいることを認識している人は多くありません。彼らはまた、私たちがアプリケーションのユーザー インターフェイスやユーザー エクスペリエンス デザインに費やしたすべての作業を忘れてしまいます。ビジネス ソフトウェアは灰色のボックスの海だと思われがちですが、私たちは人々が仕事中に使いたいと思って楽しんで使えるものを作っていることに誇りを持っています。ビジネス アプリも美しいものになります。
平均労働時間はどれくらいですか?
調子の良い週では45歳くらいですが、中小企業の経営を手伝っているので、それ以上になることもよくあります。現在7時40分で、ちょうど娘を寝かしつけたところです。チームを待たせたくないので、明日の朝に向けてチェックして承認しなければならないことが山のようにあります。私は長い日々を過ごしており、いつも休暇中に少し仕事をしています。これは中小企業です。常に何かをしなければなりません。しかし、やりがいがあります。私は、願わくば私よりも長続きする会社の設立に貢献しています。これはとても素晴らしいことです。
あなたの仕事を楽にする個人的なヒントや近道は何ですか?
まず、仕事が少し楽になると思われる場合は、たとえお金がかかっても、新しいツールを積極的に試してください。私たちは昨年 Slack に移行しましたが、振り返るつもりはありません。この 1 つの変更により、非常に多くの時間と手間が節約され、コストに見合った価値があります。ツールに投資しましょう。次に、従業員を管理する場合は、定期的に担当できる以上の責任を与えて、チームを少し押し上げます。会議を終えて、あなたがいなくても彼らが力を合わせて問題を解決したのを見ると、最高の気分になります。第三に、クライアントや上司との悪い状況から決して逃げないでください。すべてが燃え上がっているとき、「知らない」ということは、考えられる何よりも悪いことです。何が起こっているのか、それを解決するために何が行われているのかを知らせる電話や電子メールに夢中にさせれば、人々はあなたを愛するでしょう。私が一緒に仕事をしているのは、基本的にこの仕事に夢中になっている人で、クライアントはその点で彼女を慕っています。私たちの最も強力なクライアントとの関係は、こうした状況から生まれます。
同じ職業の同僚や同僚と比べて、あなたは何が違うのでしょうか?
私は自分の仕事のほぼすべての側面を「どのように」行うかを文書化しています(常に使用している会議テンプレートさえあります。これは素晴らしいことです)。 Google ドライブのフォルダーにはプロセス ドキュメントだけが入っています。私はそれを「バスに轢かれた」フォルダーと呼んでいます。私は、何かをどのように行うかは、何をするかということと同じくらい重要であると強く信じています。また、それによって私の脳からそれを完全にアウトソーシングし、より多くの脳を仕事に費やすことができます。プロセス ドキュメントを一目見るだけで、プロジェクトのどこにいるのかがわかり、開発のどこにいるのか、次に何が起こるのかがすぐに分かります。一日の中で決断しなければならないことや考えなければならないことが少なければ少ないほど良いのです。
仕事で最悪の部分は何ですか?それをどう対処しますか?
「こんにちは、ハリソン、Xが壊れました。」できる限り機能が充実していることを確認するために一生懸命準備し、作業し、テストを繰り返しますが、最終的に何かが機能しない場合は、コストがかかります。 X が機能しないまま時間が経過するたびに、クライアントの利益が失われるだけです。
仕事の中で最も楽しい部分は何ですか?
従業員と事後分析を行ったとき、彼らは私たちのソフトウェアを使って働くことがどれほど気に入っているかを教えてくれました。残念ながら、ほとんどの人にとって仕事は本質的に楽しいものではありません。しかし、あなたの仕事をもう少し簡単に/より速く/シンプルにして、あなたの一日を少しでも良くするお手伝いができたらどうでしょうか?そうすることで生産性が向上し、会社にとってより良い資産となり、結果として会社の成功も促進されるのではないでしょうか?そのために金曜日は喜んで遅くまで働きます。
「ソフトウェアアーキテクト」と単なる開発者との違いは何なのか、興味があります。あなたはチームを管理していると思いますが、それ以上のことはありますか?
私はソフトウェア開発を行っている人々を知っていますが、通常は SAAS やモバイル アプリの開発を行っており、彼らは 1 つのアプリケーションの管理とサービスを行うだけで済みます。今日は、次のそれぞれについて個別のアプリケーションを理解し、管理する必要がありました。
州規模の不動産教育学校
修理工場と保険会社間の B2B 通信と請求書追跡を提供する会社
大手スクリーン印刷会社
ソーシャル ニュース収集モバイル アプリケーション
商業造園会社
会計事務所
[私も]、上記とはまったく異なる新しいアプリケーションのアイデアを持つ新しいリードに会って、精査しました。これらのそれぞれには、独自の範囲、目標、要件、ドキュメント、コーディング言語、サーバー アーキテクチャ、API フレームワークなどがあります。これらは個別にユニークなアプリケーションであり、それぞれが他とは大きく異なり、独自の課題とメリットがあります。基本的には、ソフトウェア アプリケーションのデイケアを運営しているようなものです。
あなたのサービスに参加する必要がある人々に何かアドバイスはありますか?
そうですね、新しいアプリケーションのアイデアがある場合は、そのアイデアは安価であることを理解してください。コンセプトだけでほとんどの目的地に到達できるとは考えないでください。残念ながらそうではありません。市場調査、成長計画、損益分岐点など、すべてのパッケージを用意する必要があります。何か新しいものを作って収益を上げたい場合は、ビジネスの運営方法を本当に知る必要があります。私のような会社に確立されたビジネスを支援してもらいたい場合は、KPI (重要業績評価指標) とプロセスを理解する必要があります。この情報は、ソリューションが成功しているかどうかを理解するのに非常に役立つため、少なくともその情報を取得できる必要があります。
あなたの仕事ではどのくらいの収入が期待できますか?
正直に言うと、よくわかりません。私はここで独自の雇用形態をとっているので、伝統的な給与体系があるわけではありません。私のような職業の人たちは、おそらく平均的なアプリケーション開発者やプロジェクトマネージャーと同じくらいの収入を得ているのではないかと想像しています。
自分の分野でどうやって昇進しますか?
会社を成長させてください:) 実際のところ、これ以上のことはわかりません。私の仕事はプロジェクトマネージャーに似ているので、プロジェクト管理のねずみ講のようなもので他のプロジェクトマネージャーを管理することでしょうか?会社を経営しているのは私たち3人なので、トップです。
あなたの顧客またはクライアントは何を過小評価しているか、何を過大評価していますか?
彼らは時間を犯罪的に過小評価しています。彼らのほとんどは、使用しているソフトウェアやプロセスの問題を回避しなければならないために、どれだけの 1 日が無駄にされているかに気づいていません。また、優れた UX にも十分なストックを置いていません。従業員が好んで使用して生産性を向上できるプログラムは、従業員と会社の両方にとってボーナスです。彼らはまた、コンセプトやアイデアを過大評価します。実行も同様に(それ以上に)重要です。開発の最終段階でのアイデアは、ほとんどの場合、当初の見た目とは異なります。
あなたの職業に就くことを志している人たちにアドバイスをお願いします。
たとえ苦手だとわかっていても、常に何かを学ぶ意欲を持ちましょう。私たちはエンタープライズ iOS アプリケーションの開発を少し前に始めましたが、Web アプリケーションとはまったく異なるため、数か月かけて iOS アプリケーションのコーディング方法を学びました。私は今もそれが苦手で、当時も苦手になるだろうとは分かっていましたが、プラットフォームが処理できる内容を理解すると、チームとコミュニケーションを取り、解決策をより適切に特定するのに役立ちます。
Career Spotlight はライフハッカーのインタビュー シリーズで、医師から配管工、航空宇宙エンジニアなど、一般の人々やあまり聞かない仕事に焦点を当てています。あなたのキャリアを共有したい場合は、次のアドレスにメールしてください。[メールで保護されています]。写真提供者コアピックスVOF(シャッターストック)。