Author: William

Finishing

November has been a crazy month for me. Despite the fact that I’ve been out of the state for eight days this month (and, of course, all the craziness surrounding the holidays) I’ve been doing NaNoWriMo. In NaNoWriMo, National Novel Writer’s Month, you commit to writing a novel during the month of November, where a novel is defined to be a story consisting of at least 50,000 words. You aren’t allowed to start until 12am on Nov 1 and must finish by 11:59pm on Nov 30. I’ve taken a stab at it twice in the past, but have never...

Read More

Accessibility at Cream City Code

As promised, here are the slides from my Accessibility talk at Cream City Code. Aside from the links (which, if you saw the talk, are probably why you’re here) there’s a fair amount of extra detail in the presentation notes that I didn’t have time for in the talk. I saw people taking notes during the talk, which is great – this is stuff we need to be implementing! I’d like to particularly thank those people who actually heard me speak on this topic at That Conference last year and decided it was worth their time to come hear me again. Accessibility slides Share on...

Read More

Applying leverage

I was reading a finance thread recently where the concept of leverage came up. Simply put, this is asking what activities get you the best “bang for your buck”. If you’re a minimum wage worker, then activities that save you money are a good use of time because the return is high compared to your hourly rate. If you’re making eight bucks an hour and can save $2 by spending ten minutes making your own lunch, or $10 by spending an hour sorting through coupons, then those activities essentially pay better than working. On the other hand, if you make six figures, those activities aren’t a good use of time (unless you like making your own lunch). In fact, it’s even financially sensible to pay others to do chores you might not enjoy, such as yard work, if it frees up time that you then apply to higher-paying projects. This applies at the business level as well. If task X takes a senior developer making $100 2 hours and a junior developer making $50k 3 hours, it makes more sense to assign it to the junior developer even though it will take longer. This has two benefits: the total cost of the task is lower, and it frees up the senior developer to work on projects that require his or her expertise. At a personal level, this also explains...

Read More

Thoughts on That Conference 2018

For the last few years, the beginning of August has meant one thing for me: That Conference! The joke eventually starts getting old, but the conference is always worth the time. 2018 was my fourth year attending and second year speaking. My favorite talks this year were the first two keynotes. When I saw the title of Jessica Kerr’s talk, “the Origin of Opera and the Future of Programming”, I assumed she meant the web browser. No – she actually meant Opera singing! This isn’t a topic that I have any interest in whatsoever…but Jessica’s enthusiasm actually made it interesting (and yes, she did relate it to programming). Then Cory House gave the keynote I was particularly looking forward to, on building a career; he talked about the tradeoffs he had to make to do what he does. Videos of both talks are available on the That Conference Facebook page. When I’m writing or speaking, I like to choose a topic that’s more conceptual than language X or program Y. Last year my talks were on accessibility (at That Conference) and sorting algorithms (at MKE.NET); this year my talk at That Conference was about graph theory and I’ll be speaking on accessibility again at Cream City Code. Over the last few years I’ve noticed that there are a lot of software developers who don’t have computer science degrees and...

Read More

Setting Priorities

Assuming you get to set your own schedule, how do you choose what to work on next? Do you pick the most important task? The one with the closest deadline? The one most likely to make your boss (or significant other) happy? After I read about Kanban, I started trying to arrange my tasks such as to minimize the amount of work that I have in progress. My goal is to minimize the number of things that I am responsible for at any point in time. Obviously, this doesn’t mean that the highest-priority tasks don’t still get done first – I can’t imagine my team leader would be happy if I told him I was going to put off responding to a critical bug report for a week because I have too many low-priority tasks on my plate – but it means that I’ll try to prioritize finishing something that’s already started over starting something new. This results in less time for tasks overall, because you’re more likely to get back to things while they’re still partially cached in your memory, rather than having to get up to speed again before you can start working. I actually prefer to tackle the tasks that can be knocked off quickly before anything else, and get them through the process and off my plate entirely so they’re not taking up any mental...

Read More