Author: William

Quantifying Value

What is the value in what you do? As programmers, we tend to do what we do for two main reasons: to build something cool, or to draw a paycheck. Those paychecks tend to be pretty decently sized, because we create a lot of value for the companies we work for. But how is that value quantified? To an employer, value is probably quantified financially: are we generating more income than the cost to keep us on? This is why (I’ve read – I don’t have personal experience here) developers at a company that makes and sells software get...

Read More

Ensuring Goodness

I heard a phrase I liked recently: software testing is ensuring goodness. [Alexander Tarlinder on Software Engineering Radio] How do we ensure that our software is good, and further, what does good even mean? For a first approximation, let’s say that good software does what it’s supposed to. How do we define what the software is supposed to do? That could mean it does what the design says it does, that it does what the user wants, or that it does what the user actually needs. This gives us the first few things to test against: we check that...

Read More

Computer science in web development?

One of the disadvantages of doing web development (to me, anyway) is that I don’t often get to use my background in theoretical computer science, especially with the front end stuff. It’s much more likely that I’ll be fighting with javascript than calculating asymptotic runtimes! A few weeks ago was an exception. We had a number of jobs what could be scheduled and needed the software to determine, when a user made a scheduling request, whether that request could cause either the job being scheduled or any job that depended on it to exceed the time allowed. This was...

Read More

Focused effort, faster results

Recently I read a post about productivity. The point of it was that you have a fixed amount of effort that you can put in every day, and you’ll get a lot further if you concentrate that effort on one task rather than dividing it between many tasks. I’d actually like to think of this in terms of physics. Imagine that you have a number of heavy blocks you need to move; these represent all the work you have to get done. If you go up to each block and give it a little tap, you’re unlikely to overcome...

Read More

Stop Starting and Start Finishing

One thing that I’ve always struggled with is a short attention span; I tend to get bored pretty easily. One thing I like about my current job is that I get to work on a lot of different stuff, which helps keep me interested, but it’s still difficult to maintain focus, and I’ve been looking into different systems to help with that. Earlier this month my son was born, which is awesome but means I have less time and energy, more expenses, and less income (due to my wife staying home to take care of the baby), which adds that much more pressure to try to be really good at my job. One of the things I tried last year was KanbanFlow, which is a free (and paid, though I haven’t felt the need for the paid features) tool for tracking your work; I liked the ease of use but didn’t really feel that I was getting that much out of it and more or less stopped using it. Recently, however, I’ve been reading the book Kanban in Action, which clarified for me what I should be doing, and I’ve started using my Kanban board again. I’m actually feeling more productive, so I thought I’d document what I’ve been doing. My Kanban board is set up like this: One of the big things in Kanban is the Work in Progress (WIP)...

Read More