markjgsmith

2021/02/20 #

cat << EOF > 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.

cat << EOF > Saturday 20th February, 2021 (Issue #14)

This week’s newsletter is out! (2021-02-20)

In this week’s edition:

AWS, Dorsey&JayZ, Arm, Kafka, podcast moderation, WebRTC, Facebook, regulations, Trello, Clubhouse Musk&Putin, Paul Graham, Ryan Dahl, OSS licenses...

Issue details:

  • Title: Saturday 20th February, 2021
  • Issue: 14
  • Page: issue webpage

Another awesome issue of the newsletter. #

Today’s links:

  • 🚀 New Post: My approach to software planning and estimation - A brief description of how I approach project planning and estimation, with some useful articles and resourcesblog.markjgsmith.com #

  • Australia’s ABC News shot to the top of the App Store charts following Facebook’s news ban - It would be cool if there were publicly available signup stats from independent media sources, as much as this is bad, there’s a lot of opportunity for media startups to build something new and excitingwww.theverge.com #

  • How to redirect URLs on Jekyll site hosted on GitHub Pages - Handy if you publish a page using the incorrect date and later need to update that page, setup a redirect so the page continues to load for people who click the old linksuperdevresources.com #

  • What Peter Jackson’s original two-movie Lord of the Rings almost looked like - Hard to believe it is already 20 years ago that the legendary film trilogy was released, this article looks at the business and creative process that led up to the production, it’s an interesting read, the sheer size of this production is mind boggling, the amount of people, effort, money, coordination all to create some bits and bytes, I know a lot about the VFX tools and workflows, but I’m wondering what futuristic tools will evolve to help directors and producers with the pre-production process, I think that would be an exciting place to bewww.polygon.com #

  • JavaScript engine fundamentals - Shapes and Inline Caches - Deep dive into javascript optimisation covering general javascript compiling concepts, overview and comparison of the compiling pipelines in the various javascript runtimes (Google/v8, Firefox/SpiderMonkey, Microsoft/Chakra, Apple/JavaScriptCore), then looks at the data structures used to optimise property access and storage, gets progressively more difficult and requires you to hold quite a bit in your head, but if you go through it at a steady pace it’s very understandable, there’s a lot going on right below the visible surface where most developers spend their time, loads of very excellent diagrams peppered throughout - It’s amazing to me that we don’t have to spend our days worrying about anything at this level anymore, but good to be aware of the dynamics to avoid optimisation issues - I recommend a cup of tea to help you get through this one, perhaps some biscuitsmathiasbynens.be #

For enquiries about my consulting, development, training and writing services, aswell as sponsorship opportunities contact me directly via email. More details about me here.