working from home (27 Part Series)
Exhaustion still exists. Weather is getting better, enjoyed some time outside with the kids. Yes, outside 😅
We are 23 of 24h at home, yet for an hour / day we need a walk or two.
At the same time, my father in law got unlikely and he needs to go to the dentist, yet he is a high-risk person with now some missing teeth. This was a quiet emotional event and still we don't know what will happen on Monday.
My wife gave them one of the kn-95 masks as they have definitely a need rather us. For them the risk is life or death (78y old, 68y old).
I'm now looking forward to the weekend.
Now the third week without a friday prayer. As a muslim this is a really tough situation. I never read or experienced that globally friday prayers are canceled, even hajj in Mekka most likely will not happen this year or should be delayed.
The whole day I was trying to setup my local environment. This scala backend seemed easy to setup but than it took me hours + help from another co-worker to realize that you shouldn't provide relative paths in configuration variables.
Also another co-worker started a "Draft PR" with 3k LoC. When I had a first look, I could reduce the whole changes and additions to ~2K but still it's huge. It should have been an AB-Test but this is like a beast.
I think, I will need to escalate and block this. Ask for sliced PRs, more iteratively. The risk to merge 2-3K of new LoC into a Chrome Extension with delayed review policies due to Corona is too high. Even using a Experiment Flag, as it is not clean integrated. This PR + Scala Monolith frustrated me and I had a longer discussion with my Lead. The outcome is below:
who think "Why putting effort? It's an MVP, it's a Test, it's greenfield.." do you know how hard it is to work with such codebase? Not after a month. Like after 4 years? I'm in that situation, it's a great challenge but honestly, the codebase is a mess. Yes, it has some good parts (clean naming, some structure) but it has so much tight-coupled logic, so much double or even triple API Calls because of wrong React + Redux usage etc.
Let's learn from well-known professionals:
Eric Elliott@_ericelliott"It's cheaper to build high-quality software than it is to build and fix low-quality software." - Code Complete
amazon.com/Code-Complete-…12:05 PM - 03 Apr 2020
Or my Lead shared a really great thing from Clean Architecture (Robert C. Martin):
you can only get 3 of the 4 of iron cross, good, cheap (in budget), fast and done
This means, only 3 of these 4 things are possible in a software project.
- changing timeline (last thing business usually wants)
- adding resources (only works if added early in a big project so that the net is contribution)
- compromising quality (this is a deception, it seems you can compromise quality and move faster, but its never faster in long run to compromise quality)
- negotiating scope
Another quote from my Lead:
A good team drives project to be Good enough, Fast enough, Cheap - budgeted enough, and Done as much as necessary
This reminded me of one learning I had when reading DHH (Basecamp) Book "It doesn't have to be crazy at work".
Basecamp always plans for 6 weeks and if they realise the initial plan was too big, they slice and cut on the product / requirements. This means, Basecamp is always negotiating scope.
My personal view is that negotiating scope seems to be the only one of the 4 pillars, where you can get stuff done, be on time (fast) and still deliver quality.
I think, Clean Architecture and Clean Agile are ranking higher now on my "next books to read".