Let's write β

プログラミング中にできたことか、思ったこととか

要求分析をまかせてみての課題と振りかえり

以前の記事で、要求分析のタスクをメンバーにまかせはじめていると言っていました poketo7878-dev.hatenablog.com 実際にまかせてみるなかで課題が発生して、今の時点では再度僕の方で持つようになっているのでそのあたりを整理して棚おろししておきます。 …

避けるべき「手戻り」と、歓迎すべき「手戻り」を区別する

以前は全ての手戻りをさけていた なぜそのような状況がうまれたのか 真に避けるべき手もどり 避けるべきではない手もどり なぜ避けるべきではないか どうするべきか 構造的 文化・心情的 アジャイルはアジリティを上げる物ですよという話に近いですが、 チー…

2021年をふりかえって棚おろし

2021年、自分がやっていた事、チームとしての変化などを棚おろししておきます。 去年はこんな感じでした: poketo7878-dev.hatenablog.com チーム関連の棚おろし Amazon Location Serviceを導入し、導入事例としてとりあげていただいた 事業の重点が事業自体…

要求分析の時にやってる事・意識してる事棚おろし

なに? 論理的な部分 ステップ 最終成果物の例 アジェンダの構造 背景、ゴールはかならずつける 現状整理のセクション 議事録 要求仕様書の構造 目次はかならずつける 構造 非論理的な部分 要求を出している人との間で、医者と患者の関係になる 徹底した傾聴…

Terraformでbool型変数でブロック型属性の有無を制御する

背景 TerraformでAWS CodePipelineを組んでいる時に、社内環境等とプロダクションで承認ステップをはさむか挟まないかをtrue, falseのフラグで制御したかった。 そのために、stageブロックの有無を変数によって制御したかったが、情報がすぐに見つけられなか…

クロスアカウントでAWS CodePipelineの通知を集約する設定をterraform & serverless-frameworkで実施した

AWS

背景 今までEC2で管理し、踏み台サーバーからデプロイしていたサービスを拡大にともなってコンテナ化を開始しはじめたので、 デプロイをCodePipelineに乗りかえました。 それにともなって、デプロイの経過をSlackで確認できるようにAWS Chatbotとの連携を実…

GWはDE0-CVの上にMIPS32のサブセットを作ってfib(5)を計算していた

前回、といっても一年以上前だがFPGAの評価ボードDE0-CVを買ってちょっとしたプログラムを動かしていた。 当時は、LEDがチカチカするような回路を直接書いてそれを動かすというような所でとまっていた。 poketo7878-dev.hatenablog.com それから 本業の事業…

Auth0でSign in With Appleから氏名がAPIで取得できない件への暫定対応

弊社のアプリケーションではモバイルアプリの認証にAuth0を利用しています。 そして、Auth0からユーザーに利用可能な認証方式の1つとしてSign in with Appleを採用しています。 Sign in with appleを認証で利用していると、さらに追加でユーザーに氏名の入力…

GitHub ActionsでDBスキーマ情報をSchemaSpyでとりだしてSlackで社内共有した

弊社では、データの分析をメンバーがしやすくするにあたって、Re:dashを導入しています。 データへのアクセスのしやすさ、SQLの実行のしやすさはRe:dashで良いとして、 実際にどんなデータがどんなテーブルにはいっているのかを知らなければ分析方法をまちが…

2020年個人としてふりかえり

2020年ももうそろそろおわりですね。 2020年は個人としてもチームとしても色々な事があったのでふりかえっておきたいとおもいます。 意思決定、認識共有 要求分析、プロダクト 要求仕様書 要求の背景がクリアになった事による事例 QA・テスト プロのエンジニ…

React UIをCapybaraで30文字以上の入力のテストしている時には、fill_inにrapid: falseを設定する事も検討してみよう

フロントエンドのReact UIのテストをしている時に、ローカルでUIをいじっていても正常に挙動しているように見えるUIが Capybaraを利用したSystem Specでは動かない事があり、中々に奇妙な動作で困惑していたのですが ソースコードを追って理解と対処ができた…

ユーザーストーリーマッピングをベースにプロジェクト全体の要求仕様書をチームで構築した

ここ2日ほど、まるっと一日かけてチーム全体であつまってプロジェクトの要求仕様書を皆で作るという作業をしていました。 弊社のチームでは普段の開発ではスクラム開発を実施しているのですが、今回この一気に要求仕様書をつくりあげるというイベントを開催…

TLA+, SPINをつかってAPIサーバーの仕様を検証した

バックエンドサーバーのAPIの仕様を決めるにあたって、レスポンスの結果が常にみたしていてほしい不変条件がありました。 ビジネスの詳細に触れてしまうので、抽象的に表現すると 内部データのある属性値が1以上になっているならば、かならずレスポンスにふ…

recoilを0.0.8から0.0.10にアップデートする時にはbabelのsourceTypeをunambiguousにしよう

タイトルの通りです、プロダクトのフロントエンドで使っているRecoil github.com を、0.0.8系をつかっていたのですが、0.0.10にアップデートしたところ、webpack + babelの環境でエラーにつながり、調査しながら対応したので小さなメモです。 環境 おこった…

VimからVSCodeに移行する時にした設定メモ

Vimをずっとつかってきたが、最近VSCodeも使いはじめた。 エディタのモーションはVSCodeVimをいれているのですが、それ以外のUIの表示や挙動にたいして使っている時に感じた使いづらさを分解して少しずつ設定しました。 ファイルツリーが視覚的にツラい Vim…

リモートワークに移行してからの僕たちのチーム: 3ヶ月目

前回の記事からまた一ヶ月がたった、あれからあった事をまとめておく poketo7878-dev.hatenablog.com さすがに、3ヶ月目ともなるとリモートにともなう変化というのも段々と落ちついてきますね。 会社としての変化 オフィスを捨てた チームとしての変化 プロ…

キャンセルという「論理削除」の設計に対して考えた事

新規でリリースを予定しているサービスにおいて、「キャンセルする」という行為があり、 いわゆる「論理削除」とよばれるカテゴリーに属する問題にあたったので、いくつかの実装方法を検討し実装したので、 その時に考えた事をメモとしてまとめておきます。 …

リモートワークになってから2ヶ月目の僕らのチーム

この環境でリモートワーク体制に移行した頃に書いた記事からだいたい2ヶ月立ちました poketo7878-dev.hatenablog.com あれからどんな事があったか、どんな変化があったかをまとめてみます。 会社の変化 全面フルリモートに フルリモート環境でのオフィスの価…

モバイルクライアント向けRailsAPIサーバーのエラーレスポンス設計

RFC 7807で提唱されているProblem Details形式を参考に、Rails APIサーバーからモバイルクライアント向けの統一エラーフォーマットを設計しました

rspecでCSRFチェックのスキップを確認する

rspecのテストケースで、CSRFトークンの検証が正しくスキップされているかを確認できるようにしました。

SwaggerUIをRailsから配信し、AWS ALB上でGoogleのOAuth認証をかけてチーム内で共有した

API開発をするサーバサイドとAPIを利用するクライアントサイドというチーム構成でプロダクト開発をしていくにあたり、クライアントサイドがAPIの開発完了を待つことなくつなぎこみの準備をすすめておくためには、クライアントサイドとサーバサイドで事前にAP…

ActiveStorageの利用時のcontent_typeが設定される流れと信頼性を調査した

背景 サービスでActiveStorageを利用するにあたり、画像ファイルのみに絞りたいであったり、特定のファイルタイプにのみ絞りたいなどの要求がありました。 多くのサンプルコードで、ActiveStorageでアタッチされているファイルの<field>.blob.content_typeをホワイ</field>…

Auth0のCredentialsManagerとOkhttp3のAuthenticator, Interceptorを組みあわせる

背景 今後新規開発するサービスでAuth0をIDaaSとして利用する可能性があったので 技術調査としてAuth0をAndroidでRetrofit + Okhttp3で利用する時にどのように組みあわせるのか調査していました。 ライブラリ implementation "com.auth0.android:auth0:1.22.…

AndroidでスイッチUIの実装をいくつか比較検討してみた

つくりたかった物 デザイナーさんからZeplinでいただいていたイメージ これをどうやってつくるかプロトタイプを作成しながら比較検討しました。 onDrawでCanvasに書いていく 概要 AndroidのViewをカスタムする時にonDrawというメソッドの中で、 Canvasに独自…

DracoとAFrameを組み合わせて使ってみた

Dracoのインストール Emscriptenのインストール 私はMac環境なのでhomebrewでemscriptenをbrew install emscriptenでインストールしました。 インストール後は一度emccを動かしbrew info emscriptenの指示に従って~/.emscriptenを編集しましょう Dracoのビル…

rubocop-railsのfind_by_*系メソッドの自動修正をstaticに定義した一部のメソッドの上で無効にする

Railsで開発するにあたって、rubocop-railsをLinterとして利用しており、 自動修正機能を適用したときにエラーに繋ってしまったのでメモしておきます。 背景 Railsではfind_by_idやfind_by_nameのように、ActiveModelのカラム名を利用して検索できるメソッド…

Androidでクリティカルなタイムアップ処理にはAnimatorに依存せずにコルーチンで実装しよう

開発中に遭遇して、けっこうハマったのでメモとして残しておきます。 TL;DR 一部の端末では開発者オプションを経由しなくてもアニメーションがオフにできるよ アニメーターに依存しているとバグの原因になるから、ValueAnimator#areAnimatorsEnabled()でチェ…

一つのチームで複数のプロジェクトを回すスクラムについて調査している

事業上一応複数に分割されるプロジェクトを、開発チームの規模的に一つのチームで回していくという場面にこの先遭遇しそうなので、 そのあたりが、スクラムやアジャイル開発コミュニティによってどのように取りあつかわれているのかを調査しています。 資料 …

リモートワークにおけるコミュニケーションについての僕等のチームでの取りくみ

弊社に分報やってみようかなとおもって僕が突然はじめたら皆やってくれたし、コロナ関係でリモート増えたのでDiscordで雑談部屋つくってオフィスと同じように雑談の中での発想が生まれるようにとおもって初めたらみんなやってくれて嬉しい— Pocket7878 (@Poc…

react-router-dom@5の未ログイン時リダイレクト用コンポーネント`PrivateRoute`をTypeScriptで書く

背景 環境 コード 使い方 つまづいた所 children component renderの優先度 参考 おまけ ログイン成功してたらメインページへ 背景 Reactのアプリケーションを書く場面があり、ログイン系でありがちな ログインしていないければ /login に返す ログイン成功…