markjgsmith

2021/02/28

2021/02/27

2021/02/26

2021/02/25

2021/02/24

2021/02/23

2021/02/22

2021/02/21

2021/02/20

My approach to software planning and estimation

While there isn’t a single approach that works for all projects, doing some planning and estimation goes a long way to increasing the chances of a successful project. I wanted to give my general approach and share some useful resources on the subject.

Here’s the general approach I'm going to take in this blog post:

Why planning and estimation

For smaller projects, a high level overview and a few diagrams might suffice, but for longer projects with more unknowns, it’s important to take more time, filling out a more detailed plan before commencing. At the same time you want to avoid getting stuck in endless details or a plan that isn’t flexible to changing conditions.

Identifying problematic areas, and finding an appropriate balance between planning and implementation is key, with good communication between the people involved in the project.

Create a high level system design

  • Overview
  • Project parts
  • Architecture
  • Issues / items that need to be discussed and solved

See the Facebook architecture planning videos for some good examples of high level system design:

Create a sprint plan

General approach is agile scrum methodology. Break down the project parts into subtasks (called stories), add time to each, gather all these into a backlog. These will be completed during time blocks called sprints, which last a set amount of time (typically 1 or 2 weeks).

During sprint planning assign stories to be completed in each sprint:

  • high level sprint planning for several months at a time, and
  • more detailed sprint plan each week for the next sprint

In pseudocode:

Take each project part
                        
                        - Create stories
                        - Add story estimates
                            - amount
                            - confidence
                            - measured
                            - accuracy 
                        - Add stories to backlog
                        - Total all the estimate amounts
                        - Update measured & accuracy throughout project

The following project planning article goes into a lot more depth on the subject:

Useful tools

There are lots of great agile development tools available, many of which have excellent collaboration features. You should probably use the best available at the time your project is happening.

Planning is such an important aspect of web development that I have build an agile blog tool that you can use just in case there’s nothing else available.

It’s open source, uses text files as storage, very unlikely to break, and will enable you to manage a backlog of tasks.

2021/02/19

2021/02/18

2021/02/17

Hash links for individual linkblog items

If you read the linkblog you might have noticed a change today.

The linkblog, by the way is where I share links I find online, it’s published every day at midnight.

Sometimes I add a bit of commentary, other times it’s just the link and page title. It’s mostly links to javascript, technology and web development content, but there’s often other stuff in there too. There’s an RSS feed.

At the end of the week I do a roundup of the best links and send it out in the newsletter.

One of the features that I lost when migrating from the old linkblog SaaS (which is sadly no more) to the statically generated serverless linkblog, was the ability to link directly to an item in a day. I’ve added this feature back, so you should see hash links next to each item in the linkblog. The day hash links remain unchanged.

The item hash links point to the archives rather than on the main page, because the main page only shows the previous 50 days, so it makes more sense to link to the archives, so that the link continues to point to something even after the item drops out of the most recent 50 days.

The feature is a little different to the SaaS version, it’s less fancy, but since it just uses a standard url hash fragment it works without javascript, which makes it arguably more robust.

It’s definitely useful, I’ve been experimenting with inserting linkblog items into blog posts as quotes, and having a direct link to an item will make that a lot easier.

Hash links are standard these days, quite well understood by users, people are used to seeing them on blogs and social media sites. I’ve also chosen a font size, weight and color that blends quite well with the page without getting in the way of the reading experience.

Though they add quite a lot of extra characters to the UI, I think on balance the page still has the minimalist aesthetic.

That’s the change, it’s nothing earth shattering, but the main linkblog page doesn’t change very often so I wanted to describe the change. I think you’ll find it a useful feature.

2021/02/16

2021/02/15

2021/02/14

2021/02/13

Morning Trance Exercise In The Park

Morning group exercises in the park to some seriously good trance tunes.

2021/02/12

2021/02/11

2021/02/10

2021/02/09

2021/02/08

2021/02/07

2021/02/06

2021/02/05

Foot Badminton In The Park At Sunrise

People playing foot badminton in the park in the early morning sun.

2021/02/04

Morning Sound Check In The Park

A musician does a sound check in the park for his morning performance, as people play badmington, jog, exercise and chat.

2021/02/03

2021/02/02

2021/02/01