Develop features slowly

Some quick thoughts on building a feature idea

We’re only a 5 person team at Transparently. And although you could say my official role is to handle “Product”, I also communicate with our clients, design our features, and code both front & back end portions of our application.

When I first started, handling all of those responsibilities was incredibly overwhelming. I found myself in a Jekyl vs. Hyde situation, where I would design hastily (knowing that I would eventually be coding it, too). Or I would start coding before really thinking about design b/c design would take too long. I became panicked, and for a while frustrated at how often I would end up re-doing things.

But being able to assume all these responsibilities has taught me one incredible thing: to think about a feature thoroughly, and develop it slowly. And by that I mean, I think about it all the way thru, and I let my mind wander as it pieces all the different parts of it together.

I go on a walk and let my mind visualize what the feature will look like.

I chalk an outline of it in my notebook, and sometimes I even hop into Sketch to mock it up (although lately, I’ve been designing in browser). Then, I text with Katie.

I contemplate how the front end consumes the data, and then I talk out-loud what the API endpoint will look like. I debate creating a new Angular service or updating an existing one. I eat a snack.

I write down the data model for the API, and think about how my server side controllers will handle business logic. I listen to music.

I let my mind wander, even as I start to design or code. Because I’ve learned if you do that, the pieces all sort of fit together, and changes become astonishingly easy. There’s a calmness to my work day, and even though I could technically crank out a feature faster, I don’t. Purposely.

And I think at the end of the day, our clients are happier. The product is usable and fast. The code is smarter & readable. All benefits from a more relaxed approach to feature development.

I’m not sure how large teams achieve this. It’s something I’ve been mulling because at some point (hopefully), our team will also grow. And I want all parts of Product to be in-sync, sharing that same sense of knowledge & chemisty is different once your roles are a bit more defined. There’s some good info out there, and I definitely recommend Amanda Cheung’s slides that I found on Twitter here. But I’m not convinced that check-ins & Agile are the way. Would love to hear some opinions or stories if ya’ll have time.

Anways, TL;DR -> Try to think about all aspects of a feature before diving in. Be patient in terms of it’s fruition. :D.