Building software in a weekend

February 05, 2020

This was a Twitter rant inspired by the Iowa caucuses. I have transcribed it here and applied formatting to make it easier to read.

When you are building something on a weekend, it is for yourself

  • You are the project manager.
  • You are testing and QA.
  • You are the engineer.
  • You are the architect.
  • You get to answer all questions you have.

You also have bias

  • Did you test all major browsers?
  • Did you test all major OSes?
  • Did you test?
  • Did you think about accessibility?
  • Did you think about internationalization?
  • Did you build in error codes or error pages?
  • Did you build useful logging?

You might be able to whip up an app in a weekend, but it isn't robust.

You assumed everyone will use it the same way you do

So to add to the other questions:

  • Did you put in enough security?
  • Did you collect only the data you need?
  • Did you think about privacy laws?
  • Did you think about permissions?
  • Did you think about auth models?

Everyone will not use your software they same way you do

  • They will click on things out of order just because.
  • They will be confused by language on forms and instructions.
  • They won't know what to do with unhelpful error messages like "Forgot secret key?"

Software development isn't always something you can throw more people at to get it to go faster

More farmers doesn't make a carrot grow any faster.

There is a limit on returns. At some point more people actually slows down the process.

That doesn't mean we should all be solo developers

  • We need others to help us see our bias and get complete code coverage.
  • We need others who are champions of testing.
  • We need others who are wizards of logging.
  • We need others who are security and privacy minded.

Your first software project is amazing and scary.

Same with your 50th.

You learn so much with each project

Some of which is how to handle meetings and explain expectations.

I once was asked to redesign a massive website

The timeline was three months.

I laughed.

I made a Gantt chart and plotted how long everything would take.

I told them "With this timeline you have 30 minutes to respond to any of my questions and you have to answer they way I want."

They balked. No one had shown them the a timeline like this.

I also had plotted out six month and nine month timelines.

They chose six months.

I was able to push back because I had projects fail

I had worked with brilliant project managers and learned how to communicate deadlines to management.

I learned where and how to push.

Software isn't a solo project.

Software is a team effort.

You couldn't have made a better app in a weekend, no one could.