Home Refactoring

2021-01-08

When tidying up my flat during Corona days, something hit me. I am somebody who likes to have Clean Code and actually we can use Clean Code principles to clean up our homes. Let me share with you now on how I approach this with this guide.

Requirements

You will need some time. That is actually all you really need to make your home comfortable and when you come home from work - or have to do home office, you don't feel like "I have always so much to do, but never get to it.".

But don't worry, if you can only put in a few minutes a day, that is totally fine.

MVP (Minimal Viable Product)

Start small and grow from there. You don't have to do everything in one day. For example, if you don't have the time to go through all your clothes just yet, only take all your hoodies for now and your shirts tomorrow and so on.

Prioritize it in a way that makes sense to you. Marie Kondo, for example, does it with first clothes, then books and papers and then the rest and at the end sentimentals. The last category is the most difficult one, but when you get to it, it should be already easier to make the decisions, because you trained with all your other stuff.

I think putting the kitchen before the books and papers makes more sense to me, because there you usually can get through also quiet easily in my opinion. In the end do what works for you best.

Roadmap Planning

Write down in what way you want to tackle it and how much time you can spend at what point on the task of refactoring your home.

Make a checklist of what you need to do - if a todo item is too big, cut it into smaller pieces. You could even use some ticket tool or a Kanban board to tackle this. Do whatever works for you, but keep in mind to keep it as simple as possible (KISS - Keep It Simple Stupid) for yourself.

If you only have 5 - 10 minutes, wash a dish - sometimes that helps already more than you would expect.

And don't forget to also calculate some breaks in your schedule to enjoy yourself.

OOP (Object Oriented Purging), YAGNI (You Ain't Gonna Need It), DRY (Don't Repeat Yourself) and BDUF (Big Design Up Front)

To start refactoring your home, you might want to follow the KonMari method, invented by Marie Kondo. At least that's what I did. The main principle is like:

Kind of obvious probably, but if you have a freezer you might want to just look through it and not put it on a pile first, so that it doesn't get bad.

When it comes to gifts, giving or throwing an item away might seem unthankful to that person at first, that's one of the reasons, you first say "thank you" to that item. It was a nice gesture of that person, but is it ok, that it clutters your space while it doesn't spark joy in you? Usually not.

Books can be tossed into the paper trash can, if they are in no more good shape. This is totally fine. If it is not in too bad shape you might want to give it away or try to sell it though. But honestly, who needs still a book of PHP3 these days? If there is one or two pages, that you still like to lookup, cut it in pieces and only keep those pages.

Also ask yourself: "Do I really need 100 pens"? Sometimes people, and I guess I'm one of them, tend to collect stuff. But do I really need so much of one thing? Probably not. If it is something like a pen, that you still probably need at some point you could put a stack of that in your cellar - into one big box. But then keep that in mind when you go and buy stuff - first look into your cellar. Another option is to just give stuff away or sell it. What is more important to you? A clean space or having backup of something ready? This is also a point why I really like the way of Marie Kondo, to put first everything on one pile, because you often don't know how much you have of one thing.

Things that you might want to use "one day, when I have time" - check if it will actually happen, because you don't need to keep BDUF items. These items can make you also remind yourself always about lost dreams and hopes. So are you really going to learn the guitar that collects dust all year, or would it be better to have the free space?

TDD (Test Driven Development) and Rapid Prototyping

If you want to buy containers for your items, you should first measure the space that you actually have. Try out if the items actually fit into the space where you want to put them.

I didn't read/watch only Marie Kondo on Netflix, but also "The Home Edit". They seem to have container stores in US. Just to be clear about this: you don't need expensive products to organize your home. Sometimes a shoe box is good enough. Try to concentrate more on something that works for now. You can start today and don't have to wait for getting some shiny containers or money ready.

KISS (Keep It Simple Stupid), SRP (Single Responsibility Principle), GRASP (General Responsibility Assignment Software Patterns), POLA (Principle Of Least Astonishment)

If you put your things away again after having those sorted out, that you do not want to keep, think about where do you use those items most. Papers for example probably belong to the office, books close to the space where you want to read them. Things that you do not use that often can be stored further away from the directly reachable area.

If you work with containers, try to put only one type of item into one container. Pens to pens, hoodies to hoodies and books to books.

Keep in mind that you need to be able afterwards to find everything again, so put the items to the place of least astonishment.

Sorting stuff in rainbow colors can help to find the things and put them back to the right place. Also check out how Marie Kondo is putting away her clothes - it looks really nice, in my opinion, and you will stay aware of what you have, which is of course not only a goal for your clothes, but everything you keep.

At the end of the day, every item you have, should have its own home where it lives in.

Documentation and Commenting

If you have containers that you cannot look through, it can come in handy to label them. While in code you usually should write why you do something, in this case you want to write what is inside.

It's up to you if you want to use a labelling machine or a simple piece of paper that you glue on the container. For kids or people whose eyes aren't the best anymore it could also be an idea to not put text on the label, but a picture of what is inside, so if they cannot read it, they can already know where what goes.

Rewrite, Review, Retro, CI (Continous Integration), CD (Continous Deployment) and TINF (There Is No Final)

When you're done you're done? Well - over time you might get gifts or buy something again, so regularly reevaluate if you still need everything you have, or if it is polluting your space. I tend to make a big cleanup once a year. That most often works for me, but when you encounter something, that you don't need, don't wait for that one moment - just do it. But at the point where you went through all your stuff already, it becomes easier, because you now should have a better clue about what everything you actually have.

If you consider getting a new item, first ask yourself, if you actually will use it and when exactly, or if it will just clutter your now cleaned up space. Also consider putting something else for it away. For example you have 2 pairs of sunglasses and consider buying a new one. You only have the space that you have. What do you want more? The new glasses or one of the old ones?

Also reevaluate the containers and systems you use from time to time. If you recognize for example a space where stuff gets messy again and again, ask yourself, why that happens. It might be that you need some other system for that space or for those items that clutter the space, so that it works better for you. There's more than one way to do it.

Implement new features

If you really hate vacuum cleaning, consider getting a robot that does the job for you. It might not be able to reach everything in your home, but it will reduce the time that you need to clean everything up. Some of those robots can also not only vacuum clean, but also whipe the floor.

Cleaning up your dishes without a dish washer is of course more time consuming. If you don't have a dish washer, then I recommend, to wash the dishes directly after usage, so that they do not pile up over time.

Try to make it as easy as possible for yourself.

A few more words

As a programmer this guide might help you to use principles that you use for your code to also use them for your home. I hope you enjoyed reading it and feel free to share it, especially with those who have the feeling to not know where to start.

If you reduce the clutter it also becomes a lot easier to get yourself motivated to clean your home regularly, because you don't have to clean so many things or first put them away. This is quiet a time saver.

Further Reading