クラウドワークス エンジニアブログ

日本最大級のクラウドソーシング「クラウドワークス」の開発の裏側をお届けするエンジニアブログ

負債 の検索結果:

【Vue.js】負債を返却しながら機能追加しなければならない状況で実践したフロントエンドのコンポーネント設計

…rks.jpの技術的負債を返却するために奮闘しておりましたが、そこから現在まではユーザーの皆様に安心安全なサービスを提供するためにクラウドワークス 安心安全宣言のための施策を行っています。 リファクタリング専門チームについては以下をご覧ください。 engineer.crowdworks.jp qiita.com 施策による機能開発を行う際に直面した課題 施策では主にフロントエンドの機能追加をすることになったのですが、技術的負債によりスピードを維持しながら開発を続けることは困難…

Amazon LinuxのEOLに伴いバッチをサーバレス化しFargateに移行した話

…ですが、このままでは負債(後述記載)が残ってしまうためAmazon Linux上に置いてあるバッチの整理と移行バッチのFargate化を行いました。 Fargateを選んだ理由 Fargate化することのメリットは次のようなものがあげられます。 1. リソースの見積もりがCPU/Memoryだけですむ EC2側で構築する場合はリソースキャパシティを考慮し構築を進めないといけません。 しかしFargateの場合はタスク定義の単位で自由に cpu/memory の変更が可能となり…

クラウドワークスを退職します。

…れるようになる 技術負債をいいかんじに解消できる仕組みを考える マネージャーの負担を減らす仕組みを考える 次会った時に進化したなと思われるように研鑽を積み上げる やせる 以上です! 社内外含め本当にたくさんの方と関わることができ楽しかったです。 ありがとうございました! @ysk_118の次回作にご期待ください。 Div.=Division(部署) GM=General Manager(部門責任者)↩ チーム名はチームごとに自由につける文化になっており、当時受託開発系からの転…

イニシエのコードをモダンJS化

…ることにしました。 負債を少しでも返したい 社内にCoffeeScriptエンジニア少ない(いない?) 今後のエンジニア採用のしやすさ 今後の開発のしやすさ 正直CoffeeScriptニガテ...(重要) TypeScript使いたい!(超重要) リリースまでの流れ モダンJS化をすることにしましたが、サービス中のコードを入れ替えるのはとても不安です。 そこで、ページ単位でかつ段階を分けて少しずつリリースをすることにしました。 CoffeeScriptをJavaScript…

リファクタリングチームに入ってから学んだ理解しやすいコードを書くための基本的なこと

…性を低下させる技術的負債が溜まってきており、技術的な投資がしづらくなってきているという課題があります。 自分が所属しているチームは、外部から見た動作を変えずに内部のコードを整理するリファクタリングで技術的負債を解消し、開発生産性の向上をミッションとしたチームです。 リファクタリングチームの活動については是非こちらもご覧ください。 engineer.crowdworks.jp qiita.com この記事で書くこと サービス事情はわかったのですが、リファクタリングチーム移動直後…

チームにプロダクトオーナーが加わり変化したこと

…トエンド周りの技術的負債を解消し、価値ある機能をユーザーに素早く届けられる仕組みを作ること(持続可能な状態)を目的としたチームです。 デザインガイドラインの作成 デザイナー同士のコミュニケーションツール UIコンポーネントカタログの作成 エンジニアのマークアップ支援ツール(CSSフレームワーク) ワークフローの確立 デザイン作成 → コンポーネント化 → プロダクトへの適用 当時の状況 2018年10月(チーム発足)から2019年9月までのチーム編成はこんな感でした。 エンジ…

そういえばRails5へ移行しましたのご報告

…いかれるリスクなどが負債となって積み上がっていきます。また、セキュリティの問題が修正されなくなるリスクもあるため長い目でみてユーザーに不利益になり、生きたサービスを開発し続けるためにはフレームワークのアップグレードが不可欠と感じています。 CrowdWorksがやったこと 稼働中のサービスのRailsをアップグレードするということは、単に bundle update するだけでは終わりません。ましてやCrowdWorksのような30万行を超えるサービスの中心となるフレームワー…

システムと金の関係を改めて考えてみる

…見えていない技術的な負債・リスクがどれくらいあるのか?それによってこの先売上の成長が鈍化するリスクがどれくらいあるのかがあまり科学できていない、ということに気づいたためです。 よくある見積もり さて、みなさんはシステムを開発する前に見積もりはしているでしょうか? プロダクトオーナーなどビジネス的に責任を持つ人はある施策でどれだけ売上のインパクトがあるか試算をするかと思います。 また、プロダクトオーナーの要求に対し開発チームはそれがどれくらいの期間でリリースできるのかを見積もり…

コンテナフレンドリーではなかったRailsアプリケーションをDocker(ECS)に移行するまでの戦い

…です。 これを技術的負債と言ってしまうのは簡単ですが、そもそもDockerの初期リリースは2013年で、イミュータブルなインフラが提唱されるようになってきたのもここ数年の出来事です。 それより以前からあるアプリケーションにコンテナフレンドリーを求めるのはちょっと厳しいかなと思います。 CrowdWorksではこれまでも、本番環境でDockerを利用していましたが、小規模な周辺のサービスで利用してもその恩恵は限定的でした。 というのも、多くの機能は依然としてCrowdWorks…

リファクタリング専門チームによるお金周りリファクタリング

…門チーム発足 技術的負債 リファクタリング対象選定 方針①:パレートの法則(80:20の法則) 方針②:リファクタリング選定基準3軸 「仕事周り」か「お金周り」か お金周りモデルのリファクタリングを妨げるConcern 課題①:ActiveRecord側の構造に依存したコード 課題②:型や構造のチェック(リスコフの置換原則違反) 課題③:重要業務概念の埋没 どのようにリファクタしたか 手法①:Concern側メソッドのinterface化 手法②:ドメインオブジェクト 手法③…

crowdworks.jpのエンジニアリング戦略(2019年6月現在)

…ドもなかなかに技術的負債がたまり開発速度が低下した結果、レガシーで無秩序なUIが増えてデザイナー・エンジニア双方での懸念が高まりました。 engineer.crowdworks.jp インフラレイヤーに関してはSREのチームメンバーが主体となって開発を進めていて、現在の大きなテーマとしては本番環境のDocker化です。動かすアプリケーションの規模感に準じてインフラも複雑になりがちで、例えばログの出力であったり、メール送信の処理であったり、コンテナに移し替えるにあたりアプリケー…

古株なエンジニアが改めてUXの回復に取り組んでいる話

…でソースコード的にも負債だらけでしたが、それ以上に「どう使っていいのかわからない」という絶望感が漂う機能でした。 具体的には、自分が過去にクラウドワークスで副業の案件を(自費で)発注した際の体験をベースに 副業でWebサービスを作る仕事を受けていたのだけど、CSSだけは自力ではどうしてもきれいに書けない。 3年後も使えるような完璧なCSSは求めていない。ある程度メンテがしやすいCSSのベースを1〜2日くらいでサクッと作ってくれる人を探している。 予算的に2万以上は出せない。値…

【2018年版】クラウドワークスで起きた変化とその感想まとめ8つ

…6歳を迎えて、技術的負債が大きな課題になっていた 具体的には、フロントエンド、お金周り、インフラ、データ構造。あらゆる面で、何か新しいことをやろうとすると、過去の負債が邪魔して開発スピードが落ちたり、実現したいことができないという事象が起きていた その状況を打破しようというチームが生まれ、そこでの成功事例をきっかけにこの1年リファクタリングや機能廃止の動きが広まった この動き全体を、「処す」と呼び、Slackのスタンプ含めプロダクト組織全体に広がったw 実際やったこと これま…

CrowdWorksのSREチームの仕事

SRE

…分割できれば、過去の負債からの影響を最小限におさえつつスケールするサービスを開発できるようになるはずです。 マイクロサービスに分割したとして、それをうまく統合するためには全体を見れるチームが必要です。そういった経緯でSREチームが組織されました。 チームメンバーは自分を含めて2人の専任と4人の兼務で6人体制となっています。 最近のSREチームのお仕事 直近の取り組んでいる仕事はコード化されていないインフラのコード化と認証基盤の開発になります。 主に使用する技術は AWS・Te…

クラウドワークスの技術戦略とアドベントカレンダー始めますのご紹介

…方で、いわゆる技術的負債も増えており、機能追加を以前ほどスピーディーに進めづらくなってきた現実もあります。 技術的負債の根源を突き詰めると、サービス内に存在する様々な業務の境界が見えづらくなっていることが、大きな要因の一つと考えています。 業務の境界を明確にし、それぞれのコンテキストにおける責務とインタフェースを整理することを通じて、サービスの堅牢性を担保し、変更に強い柔軟なサービスに進化させていきたいと思っています。 たとえば、CrowdWorksでは「仕事」という概念がサ…

突然ですが、クラウドワークスに入社しました。

…いて、それぞれのロールを尊重していると感じます。 良いことばかり書いてしまいましたが、肝心のコードは負債が返しきれてない部分もあります。 ただ、過去のコードは常に叩かれる存在ではあるので、愚痴を言いながら直す楽しさもあります :| なので、ここ半年働いてみた結果としては、良い転職ができたと思ってます! We’re Hiring! そんなクラウドソーシングのクラウドワークスでは、事業に集中できる環境で自分の力を発揮したいエンジニアを募集中です。 www.wantedly.com

Rails4へ移行しましたのご報告とブログ連載のお知らせ

…いかれるリスクなどが負債となって積み上がっていきます。また、セキュリティの問題が修正されなくなるリスクもあるため長い目でみてユーザーに不利益になり、生きたサービスを開発し続けるためにはフレームワークのアップグレードが不可欠と感じています。 CrowdWorksがやったこと 稼働中のサービスのRailsをアップグレードするということは、単に bundle update するだけでは終わりません。ましてやCrowdWorksのような10万行を超えるサービスの中心となるフレームワー…

クラウドワークス内でPandasとJupyterの布教活動をおこなった話

…書けない → 技術的負債ので・き・あ・が・り・♪ \(^o^)/ → 読めないSQL触るの怖いから、新しくSQL作るか・・・(おい のように、どんどん「データ測定」の本質からはずれていってしまいますよね。 Pandas Pandasとは、Pythonでデータ分析を行うためのライブラリです。 Pandasを使うことで、3つの観点で「ラク」ができるようになります。 デバッグ負荷の軽減 Pandasを使って、SQLサーバから取ってきたデータ列を変数に入れてしまえば、あとはJOINす…

クラウドワークス勉強会「レガシーコード改善の戦略と戦術」(前篇:戦略)

… 将来に向けて技術的負債の返済をしていくことは、言うまでもなく開発の質と速度を落とさないためにとても重要な事です。 クラウドワークスでは現在のサービスを更に力強く開発していくために、経験豊富な和田さんを講師として「レガシーコード改善の戦略と戦術」をテーマにご講演いただきました。 本記事では、この勉強会の様子をレポートします。 「レガシーコード改善の戦略と戦術」 講師:和田 卓人(@t_wada) タワーズ・クエスト株式会社 取締役社長、プログラマ、テスト駆動開発者。 学生時代…

クラウドワークス開発合宿 in 美保関

…開発合宿では『技術的負債の一括返済』をテーマに、まとまった時間をつかって集中しなくてはできないプロジェクト全体に関わる改善に取り組んでいます。具体的にはCode Climateによる解析であげられた課題について一気に解決してしまおうという目論みです。 普段は日々の業務に追われてついつい溜め込んでしまいがちな技術的負債をチームで集中して同じテーマに取り組むことによってクリーンなソースコードの維持と共有を促進したいという想いから企画しました。コードベースをクリーンに保つことによっ…

© 2016 CrowdWorks, Inc., All rights reserved.