Effective Estimation
Permalink: Effective EstimationAn excellent talk about how to improve the process of estimation. I particularly appreciated the discussion about how to turn estimation into a probability curve.

An excellent talk about how to improve the process of estimation. I particularly appreciated the discussion about how to turn estimation into a probability curve.
In 2016 I attended CSSConf and saw Keith Grant's presentation "Stop Thinking in Pixels". When I later redesigned my website, I took inspiration from some of the concepts that he covered. Of particular note—and what I want to dive into in this post—was his section about typographic scale.
I think the value of beauty and inspiration is very much underrated—no question—but I want to be clear: I'm not trying to be anyone's savior. That is not the…I'm just…trying to think about the future and not be sad.
I really wanted to call this post "Angular Rules" but it's not at all about AngularJS, and I generally dislike clickbait. Rather than mislead people on what this is about, let me make myself clear: This post is about styling horizontal rules to be angular such that they slope at a nice angle.
For the last few months—wait it's been more than a few now—for the last six months I've had some ideas bouncing around my head, particularly relating to chatbots. Some of these ideas have led me to start working on implementing a chatbot (specifically for Slack, in node) in my spare time. At this point I have little more than an API wrapper, but I've also been learning to use some of the new ES6 features, so even without a working chatbot I'm happy with what I've accomplished so far.
I saw "You Can Create Private Properties in JS (Accessor Pattern)" by Kirill Shestakov in my twitter feed, and I was hopeful that someone else had articulated the thoughts that I'd had mulling around in my head recently about new ES2015 features. Particularly about how you can use those features to encapsulate data.
Unfortunately after having read the post, I realized I still needed to articulate my thoughts on the matter, particularly around private variables and what "private" actually means.
I read this article reposted on dev.to, and it resonated with me.
Much of that's because the project I'm currently working on has a lot of parts that are actively changing. We're using an agile approach, and I need to keep the other devs on the team up-to-date with the latest information. Additionally I need to make sure QA understands how the various pieces are supposed to work. If they didn't, how would they know when something wasn't working correctly?
My fix for the issue was to start a collaborative design document where we outline the necessary details for each piece of the site. That way we don't lose track of the small decisions or the latest updates when parts of the site need to change.
Along with this, I've started framing every question from QA as a bug. If they ask why something doesn't match the docs, either the functionality is wrong, or the docs are wrong. With complex features, they may ask for additional details. If they had to ask, the docs didn't explain it well enough, and the fix is to work with QA to get enough of the clarifying details written down.
This has also helped with onboarding new developers onto the team. In the past, most projects I've been on were with a sink-or-swim mentality where the devs on the team are just expected to keep up with the changes, while not necessarily being aware of other features. This often led to duplicate effort, rework, and bad integrations where pieces that were supposed to work together didn't.
Leading by example with the design doc has helped as well, as the other devs can feel empowered to update the docs when they find issues. It helps to show that there's no expectation for the docs to be perfect, so they can feel comfortable writing in their own way.
And probably most importantly, I set up our docs as a 70-line node build to generate what amounts to a flat-file CMS using markdown files. The simplicity of the system, while limiting in some ways, is advantageous in that it's very easy to write without wasting time on formatting, publishing, or any other non-writing-of-documentation things that plague other systems.
The workflow for editing is:
I hope to eventually write up a longer post going into more detail about how I have everything set up. It'd also be nice to make some more improvements on the docs builder.
So far it's worked out pretty well, and it's validating to see that I'm not the only one thinking this way.
Sarah Drasner recently posted a cry for halp on twitter:
I get too many emails. It's gotten insane. HALP! Do you all have email organization tips? Especially for gmail
…and so rather than actually address any of the half-dozen items in my inbox currently, I'll explain my strategy and why it (mostly) works for me.
Brendan Dawes has some good advice about making sure to take time between projects to reset. If I ever actually finish a project, maybe I'll give it a try.
Waiting is not patience.
Patience is how you wait.