22
@moegyver Keep it Simple, Stupid! Hi my name is Moe. I work for Init, small consulting company in Stockholm. I am here to speak about a small personal project i have been working on and the importance of keeping it simple and how…

Keep it simple, stupid! w/ speaker notes

Embed Size (px)

Citation preview

Page 1: Keep it simple, stupid! w/ speaker notes

@moegyver

Keep it Simple, Stupid!

Hi my name is Moe. I work for Init, small consulting company in Stockholm. I am here to speak about a small personal project i have been working on and the importance of keeping it simple and how…

Page 2: Keep it simple, stupid! w/ speaker notes

@moegyverPast-me

…this goofball did not. Which is something that had happened in other projects I have been involved in. I realised that teams and organisations sometimes react the same way as I did. So what was I trying to do?

Page 3: Keep it simple, stupid! w/ speaker notes

@moegyverClickbait works, right?

https://random.confusing.io/

Build a new blog. Simple enough. A great title, some obvious click-bait and off you go! Well…

Now I have done this before so I didn’t fall for the obvious trap:

Page 4: Keep it simple, stupid! w/ speaker notes

@moegyverThe unholy trinity of web

Lesson 1: Learn from past mistakes

The unholy trinity of web. Building a simple website with WordPress is a bit like killing a mosquito with a sledge hammer. It can be done but it is hard work and there will be collateral damage.

Page 5: Keep it simple, stupid! w/ speaker notes

@moegyverDevelopers choosing a new platform

Lesson 2: Don’t be afraid to make new mistakes

So I picked node and put it in AWS. A terrible mistake. It was hard to maintain. Remember, all I wanted was a simple website but I got this:

Page 6: Keep it simple, stupid! w/ speaker notes

@moegyver

Now what?

Project the day before launch date

The tower of Babel: Big, expensive, complicated and never done. So how did I deal with it? I went through the Five Stages of Grief. Let’s go through the stages one by one:

Page 7: Keep it simple, stupid! w/ speaker notes

@moegyver

Stage 1: Denial

Project manager before launch

Stage 1: Denial!Denial is not a big deal yet and has few long-term implications. You are still happily building your tower. But the clock is ticking…

Page 8: Keep it simple, stupid! w/ speaker notes

@moegyvertick-tock, tick-tock

Time costs money. After a while you get frustrated with the lack of progress.

You move on to stage 2:

Page 9: Keep it simple, stupid! w/ speaker notes

@moegyver

Stage 2: Anger

Looking at randomly failing Jenkins tasks

Anger! This is where it starts to hurt. In this stage I deleted drafts and killed the blog several times by accident. It is not just the project that you hurt though:

Page 10: Keep it simple, stupid! w/ speaker notes

@moegyverStakeholder meeting for failing project

You hurt your team and your whole organisation. You may start blaming each other for not getting anywhere and your best practices go out the door. Which brings us right to the next stage:

Page 11: Keep it simple, stupid! w/ speaker notes

@moegyver

Stage 3: Bargaining

Rationalising your architecture

Bargaining! After the pie-throwing dies down people say “It’s not as bad as it looks”, right? This is a foolish mistake to make because you still have a monster on your hand.

Page 12: Keep it simple, stupid! w/ speaker notes

@moegyverChecking nodeJS dependencies

Changing your monster is complex and tedious. Complicated stuff breaks easily.

Page 13: Keep it simple, stupid! w/ speaker notes

@moegyverOn pager duty

Spectacularly so sometimes! Complicated systems can cause all kinds of down-time and being on pager duty for a monster application is a terrible ordeal. Let’s look at the cost side:

Page 14: Keep it simple, stupid! w/ speaker notes

@moegyverPaying the AWS bill

You keep spending. Operational costs are after all at least half of your total costs. I my case I tried to rationalise that 20 $/month wasn’t too bad for a simple website without any visitors. Just terrible. But it gets worse:

Page 15: Keep it simple, stupid! w/ speaker notes

@moegyver

Stage 4: Depression

grep -r FIXME | wc -l

Depression! Your team starts underachieving and dreading changes. I stopped working on my blog completely and felt bad about it.

There is another thing that happens at this stage:

Page 16: Keep it simple, stupid! w/ speaker notes

@moegyverDeveloper leaving for new gig

People start to leave - There are lots of fun jobs and projects around so why stick with this? I started working on other stuff (https://confusing.pw/) and only returned to my blog after learning lesson 3:

Page 17: Keep it simple, stupid! w/ speaker notes

@moegyver

Lesson 3: Don’t hesitate to change direction early and radically

Going serverless

Changing direction radically can be a good thing! The earlier you do that the more trouble you avoid! For me and my blog it meant to start from scratch. I learned lesson 4:

Page 18: Keep it simple, stupid! w/ speaker notes

@moegyverMinimum Viable Product

Lesson 4: Define your needs, not your wants

Define your needs, not your wants. I needed a static website not a playground for node. So I just put static HTML files and in an S3 bucket. 10 min of work, no maintenance needed. Which finally brought me to stage 5:

Page 19: Keep it simple, stupid! w/ speaker notes

@moegyver

Stage 5: Acceptance

Contemplating your new architecture

I accepted that the first iterations were crap. I started writing posts again, I updated the layout and stopped worrying about maintenance. I was happy and it was a huge load of my mind!

Page 20: Keep it simple, stupid! w/ speaker notes

@moegyverShowing the world your blog

Bonus lesson 1: You need a product

There still is a slight catch though: There are still two posts and guess how many visitors I have. I have some drafts that are pretty close though, so any decade now there will be content.

Page 21: Keep it simple, stupid! w/ speaker notes

@moegyver

Shoutout to classic programmer paintings (@progpaintings) for the inspiration!

All background pictures are public domain (I’m pretty sure at least) or taken by the author (which are licensed under CC BY-SA 4.0).

The logos for PHP, MySQL, Wordpress and nodeJS are © by the respective copyright holders and their usage in these slides is believed to be

covered by fair use.

Bonus lesson 2: Copyright is complicated

I hate complicated copyright laws! I’m pretty sure all paintings are public domain but please don’t sue me in case I missed one!

Thank you for having me!

Page 22: Keep it simple, stupid! w/ speaker notes