Upload
moritz-rogalli
View
56
Download
0
Embed Size (px)
Citation preview
@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…
@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?
@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:
@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.
@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:
@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:
@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…
@moegyvertick-tock, tick-tock
Time costs money. After a while you get frustrated with the lack of progress.
You move on to stage 2:
@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:
@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:
@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.
@moegyverChecking nodeJS dependencies
Changing your monster is complex and tedious. Complicated stuff breaks easily.
@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:
@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:
@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:
@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:
@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:
@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:
@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!
@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.
@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!