June 1st, 2015

Nullius in verba

Following a near six-month absence due to the busyness of life, my girlfriend and I returned to our home in Ohio this weekend. A mini vacation in some respects and a chance to reflect in others, I unexpectedly spent a lot of time thinking about what I've accomplished in the last few months and what I'd like to do next.

The plan was and stands as building a new company, specifically, placing a consultancy business at the foundation. I've been a bit tight lipped about what that consultancy will actually consult on, but my off the cuff thought is that we'll focus on the design and implementation of interfaces in the browser. There's a glimmer around doing full-stack development, but as a service, I'm hesitant to say I'm excited about it. A solid interface and user experience is easier to deliver to clients than a complete front and back end implementation (depending on time and budget available).

Nerd chatter aside, this is what I thought a lot about over the weekend: how to deliver an interface design service. For the past few months I've been tinkering with the best way to approach this, half building tools, playing with techniques on personal projects, and observing do's and dont's in existing client work. My pseudo survey has revealed that the industry is fractured.

There's a lot of stuff out there, but no clear path to follow—or rather, offer to clients. Everybody swears to one thing, but the future of those things is murky and honestly, intimidating. If not for the tech being confusing, the communities behind them are downright snarling when it comes to comparing different tools.

An unexpected parallel with all of this was back at home. Coming from a smaller more humble area, interacting with friends and family back home reveals a glaring theme: complacency. People have settled into routines, jobs, and relationships.

They've noticeably made the choice that "this is for me, this is enough." In contrast, I can't help but disagree with that life for myself. I'm anxious, fussy, and decidedly not content with what I've seen. I want more. Not as a show of status or ego, but because there's a constant buzz in my ear that says "keep going."

The similarity I saw in the complacency of the people I interacted with was in other developers and businesses around technology. Whether out of exhaustion, tribal tendencies, or for business woes, there's a lot of complacency around the tools we use. More specifically, that complacency seems to be in having to jump through an ever-growing number of hoops just to deliver some markup on the screen.

My experimentation has led to several bouts of being overwhelmed. There is so much stuff, all (mostly) backed by acerbic opinion, that it becomes downright uncomfortable to choose something. Languages, frameworks, tools...it feels like our industry is swimming in a pool of technology, the bulk of it lacking serious definition or purpose beyond the usual nerd trumpets of performance and simplicity of code (hint: it's not simple).

Building a business on all of this—to take the cheap analogy—is like building a house on quicksand. Companies declare being a ______ shop, swearing allegiance to one tool or one way of thinking . For me, that's horrifying, especially when you see how fast this stuff changes. It's all ephemeral, yet the flavor of the month tech is always shrouded in a "this is it" mask.

I've danced around it here, but I'm mostly referring to front-end frameworks (for the uninitiated these are pre-written chunks of code that make it easier to organize your own code and streamline your work). Those in the know will likely laugh in your face if you ask "which one is best?"

The reality is that none of these frameworks has really stood out as "the one" and those that do pursue that claim forget to mention their existence and development is tied to a small group of people (or one company) that you're likely not buddies with. That they're all open source is nice, but for most, learning the innards and design of a framework is a futile effort and reserved for the truly committed.

If I've learned anything recently, it's to be cautious of commitment to technology or ideas that aren't in your control. Of course this isn't always possible or smart, but trying your own way shouldn't be discarded as an option. The Royal Society, a group dedicated to the expansion of scientific knowledge and literacy follows the motto "nullius in verba," Latin for "on the word of no one."

In essence this suggests not to take what others give you as the answer. Instead, you should experiment and come up with your own conclusions. This is where I've arrived with all of this stuff, asking "what do I think?"

What I think is that there's a lot of fear around embracing the base technology underlying these frameworks and tools. In most cases these frameworks do make it a lot easier to get started, but they come with a cost: learning curves, uncertainty of lifetime, and being beholden to the whims of a small group of people.

A lot of the time this is of no concern. But in the context of my own work, I'm learning that it would be wiser to base my business around something within my control. Something more predictable. Something that thinks exactly like I do and does what I want it to, when I want it to. If part of my business is based around being an expert in something as well as being able to execute with that expertise, I want to know that I can trust where that thing might end up. Instead of trusting the framework(s) of someone else, build my own. One that I can comfortably tweak as necessary.

This opinion and attitude is admittedly dangerous. When so many peers are content with the answers being offered by bigger companies or teams, choosing to build your own thing or do stuff differently than the herd is spooky. But from being on the front lines and doing the work: what we have now is too complicated.

When it comes to building interfaces, I want HTML, CSS, and JavaScript without a lot of mutation. I fully respect the opinion of others and incorporate their ideas into my own where it makes sense, but I've mentally drawn a line. No more stuff. I should be able to sit down and do my work without pouring over documentation.

A great little piece by Yaron Schoen popped up earlier this week, lamenting the barrage of opinion and advice articles that have become all the rage. One bit that really stood out:

Formulate your opinions from doing, not from reading how others do.

I've spent enough time listening to other people sell me on their stuff. A lot of it is good, but not so good that I want to buy into it (or commit my business to it) wholesale. Trusting yourself isn't so bad. You may not get it 100% right, or even a little bit, but deciding to not be complacent means seeing and learning a whole lot more than you would otherwise. I have little to no idea of where I'll end up with all of this and for now, I'm fine with that. Hopefully, though, going my own way will allow me to build a more unique business whose direction I'm a little more certain of.