We all feel unproductive at times, and we can be sure that our bosses, clients, or co-workers feel we are being unproductive at times as well. And, because developer productivity is so hard to measure or talk about, it can feel frustrating to be in a situation where you are feeling or perceived to be unproductive. Rather than dwell on these feelings or postulate new broken ways to measure productivity, I want to talk about the reasons a developer might be unproductive. With some self-awareness, you can improve your situation.
What started as a quick update to Rails, Angular, Postgres, and Bootstrap to add support for Angular 2 ended up being a pretty big rewrite on account of Rails 5.1 and Webpacker. And the book is better for it! I can’t overstate how well Webpacker works at allowing a Rails application to have a modern front-end.
In my imagined Rails 6 keynote, in “Front-End 2.0”, I imagined a lot of changes around the front-end, and while the exact features I listed didn’t come to pass, the underlying problems they solve are addressed by Webpack and Webpacker.
Webpacker basically creates a canonical, simple configuration for Webpack that allows for easy extension. It can totally replace the asset pipeline and allow Rails developers to use all the modern front-end tools in wide use elsewhere in the industry.
Although my book has Angular, Postgres, and Bootstrap in its title, Webpack is the key feature that allows the front-end to work so well. Without doing anything other than running two Rake tasks, you have a fullly-featured asset pipeline that supports ES6, TypeScript, and Post-CSS.
The unit testing was not as easy, but the book also has you set up Karma and that worked great as a test runner. The application you build in the book really feels full-stack and modern.
If you want to know how to create a modern, productive Rails application, buy the book now. It’s complete and in print.
Hot off the presses is the latest beta of the seminal Agile Web Development With Rails, where I’m joining Sam Ruby as co-author. I’m really excited to be working on this classic book, and doing my part to keep Rails relevant to web developers.
The beta features sections on Webpacker and system tests, new in Rails 5.1. Much more to come as the beta progresses!
Fresh on the Stitch Fix Engineering blog, the first in a several-part series on the patterns we use in our service-oriented architecture. From the intro:
Over the last four years, we’ve gone from a team of two developers and one Rails app, to almost 80 developers managing 40+ applications. These applications are a mixture of user-facing and headless services. While our technical architecture isn’t perfect, we’ve had relatively few major problems. Part of the reason for that is that we’ve done a decent job of identifying and re-applying patterns to solve similar technical challenges.
The first pattern is also up: Asynchronous Transaction
In my book, I talk about making technical decisions and, in particular, understanding the priorities of everyone involved in the decision-making. A more powerful way to lead teams to execution is to clearly articulate a vision of what you are trying to achieve. It’s also much more difficult.
Westworld is a show on HBO about a theme park where human Guests interact with lifelike robotic Hosts. The Guests can basically do whatever they want to the Hosts. The show is deep, and some of the best sci-fi television you can find. But, it also contains many important lessons we can apply to DevOps.
Learning to write is one of the best skills you can learn as a developer. It takes up an entire chapter in my book on being a great software engineer. Writing is a specific way to communicate ideas, but diagramming is a powerful tool as well, often moreso.
Being able to quickly create a diagram can make all the difference in expressing yourself clearly. And Graphviz is a great tool to have in your pocket to do so.
There was a conversation on Twitter about developers being on call, started (I think) from this tweet (in reaction to a series of tweets that, thusfar, starts with this great blog post by Alice Goldfuss):
Put your developers on-call. You’ll be surprised what stops breaking.— Aaron אהרן (@as_w)
I 100% agree with this (for a particular interpretation of “put”—see below).
In exploring the modern front-end ecosystem for my new book, I’ve gotten to experience some truly difficult configuration formats (Webpack) and to work around aspects of Rails that aren’t configurable (Sprockets). Configuration is hard, and it’s an overlooked part of the user experience often designed to make the software library author’s job easier at the expense of ease-of-use.
It doesn’t have to be this way.