気が付けばしばらくの間、仕事やプログラミングに関する記事の投稿を行っていなかったような気がします。
まぁ、主な理由はただの愚痴になってしまう恐れがあったからなんですが。
しかしそれも「経験だ」と、久しぶりに仕事の記事を書こうと思った次第であります。
人生4回目のアジャイル開発
現在、AngularのWebアプリをアジャイルで開発していく案件に従事しています。
これまで参画した案件は大体10個ぐらいですが、そのうちアジャイル開発は今回で4件目。だいぶ普及してきましたね。
しかし、当ブログでも何度かアジャイル開発に触れている通り、現場ではまだまだ「慣れない方法」であり、毎度何かと悩まされるモノでもあります。
日本人が従来からのウォーターフォールからアジャイルに移行する際に気を付けておきたい点がいくつかあるのですが、それはまた今度にしておきます。
UXの考慮
これまでもフロントエンドあるいはUIの製造を担当したことが何回かありましたが、今現在従事している案件では今まで以上にUXの考慮が必要になっています。
一番大きな理由としては、これまでターゲットデバイスがPCだったのに対して、今のターゲットがスマホ(iOS・Android)であるという点。
PC向けアプリケーションのユーザの目線の動きとかはこれまでの開発で掴んでいたのですが、スマホとなるとその知識だけでは戦えません。
「普段使っているアプリ・サイトを参考に」なんてアドバイスも受けますが、スマホで普段やっている事と言えばSNSのチェックやゲームぐらいであったり、Webサイトを閲覧する際にはわざわざパソコンを立ち上げたり…。
そもそも業務要件を満たすような(似た様な)アプリケーションなんて滅多に使わないので、イメージがなかなかつかめませんでした。
ChromeであればF12で開発者ツールを開き、デバイスをスマホにに設定すればスマホ版のサイトが見れたりもしますが、開発途中にわざわざ効率を下げるような事をすることもほとんどなく…、意外としんどかったというのが正直なところです。
最終的には、アジャイル開発の特性を利用して、まず標準のコンポーネントだけを並べたUIを実装し、実際のスマホで操作感を確認して違和感を感じたところを修正していく、という流れになりました。当たり前と言えば当たり前ですが。
しかし、この作業にもいくつか落とし穴があり、やはり開発者自身が感じる違和感と実際のユーザが感じる違和感って違うんですよね。
UXの観点でプログラムを修正すると、エンジニアの観点において不都合が生じることもしばしば。要は呼び出すWebAPIの設計がゴミだったんですけど。
ここから半分愚痴です
今回話題に挙げた案件を通じて、UI・UXを考慮しながら開発を進める場合には(やっぱり)フロントエンド主導で開発を進めていくのが良いと感じました。
「アジャイル開発だから」という理由でフロントエンドもバックエンドも同時に作り始めたのですが、イテレーション内に特定機能の実装を収めるために「バックエンド側の都合」で「フロントエンド側での対応」が発生することもしばしば。
そもそもイテレーション内で一つの機能を完全に実装しようとしたところに、アジャイル開発からの乖離が生じているような気がするんですけどね。その後のイテレーションでその機能の追加実装(やリファクタリング)は含まれていませんでしたし。
結果として、スパゲッティとまではいきませんが、フロントとバックの双方が複雑になるという事態を招きました。
そのバックエンドをパブリックに公開するのか・しないのかは関係なく、フロントエンド側は出来る限りシンプルに、出来る限り複雑な部分はバックエンド側で吸収するべきだと感じました。
バックエンド側処理で必要だがフロントでは一切不要なデータがIFに含まれていたのには驚きましたね。
最後に
大企業の中には「開発手法をアジャイルにします!」と叫ぶトコロもありますが、その運用に際してはやはりまだまだ未熟なところがあるでしょう。東京だと違うのかもしれませんが。
徐々にでも、日本のIT業界に「ちゃんとした」アジャイル開発が浸透していく事を祈るばかりです…。
まぁ、そう言ってる私もまともなアジャイル開発を経験できているのか怪しいところはありますが、少なくとも「これはおかしい」と気付く事が出来るぐらいには語れると思ってます。
以上です。
スポンサーリンク