Martin Robert C, the ace marketer

His book is ok as a developer guide. It presents a fair number of good practices. It also presents a fair number of practices that aren’t good or are outdated. I personally don’t like that he often fails to, or even refuses to explain the reasons for following the practices he preaches. I prefer to understand why we do something in a particular way, instead of just being told to do it that way. Overall, I don’t find his book a great resource.

There’s something that else I liked about his book. It’s a great example of how to market ideas and occupy domains.

Early in the book he calls himself Uncle Bob. In one go, he’s established a personal connection with the reader, established himself as a father figure to listen to, gotten over the hurdle of a non memorable formal name, and given the readers a common term to identify him with. A non trivial number of people I interview mention Uncle Bob. They may be violating most of the practices he preaches, but they identify with the name.

Another bit of magic is in the book name, Clean Code. In one go, he’s taken ownership of a commonly used term. No developer can now call their code clean without Robert’s principles being brought up. No matter how readable, understandable, refactorable your code is, if it falls foul of Robert’s rules, it will be challenged by one of his many disciples. And no matter how hard to read and understand your code may be, if it aligns with his principles, it’ll be defended as Clean Code.

The marketing skill is present beyond the names too. That bit that I hate about the book – that there’s little to no justification provided for the principles it preaches. That’s a marketing skill too. A combination of “Clean” in the title, a fatherly “Uncle Bob” and good sounding practices means the lack of rationale helps readers accept them faster. Providing reasoning behind them might have made readers think and, maybe, disagree. As any parent knows, once kids disagree and get away with one thing, more disagreements are coming. The teenager years have begun. It’s not clean if followers disagree and disregard part of the scripture.

Overall, the combination of various marketing practices in the book remind me of many things, none of them about good coding. Uncle Bob reminds me of Ronald McDonald, the character that marketed McDonald’s as a healthy, family place. It reminds me of the many “Green” initiatives corporates take. It reminded me most of the modern religions and cults – the leader is a father figure, the cult name is a vague but valued noun or phrase, there’s no questioning of the leader’s dictats, and disagreements are decided based on how closely aligned are with the dictats.

Continue reading Martin Robert C, the ace marketer

The upside

We’re starting a new, interesting project. It’s big, it’s new, it’s challenging. It involves working with multiple teams across the organisation. I want to work on it. Looks like I’m not going to.

Early indications are that I’ll instead be leading a different workstream. Another colleague will be leading the new, interesting project. Not good.

We’ve got a consultant on the team. He’s fairly experienced and quite good at structuring solutions. He also has strongly opinionated working practices, and refuses to change them unless he’s directly ordered to. We’re a friendly, consensual organisation, so we won’t order him, and he doesn’t change his tune. Not good.

But there’s an upside.

The consultant will be working on the new project. This means I won’t have to see his code. I won’t have to worry that there’s no documentation, or that every class has 50 2-line functions. I won’t need to hear him again explain that there’s no point to adding UI tests if we can’t have a full test suite of multiple layers of tests.

If anyone asks me in a year how something works in that project’s code, I can honestly say “I don’t know” without feeling bad about it. It’s not my failure that that code is not well documented. It’s not my failure if it’s not easy to read or understand. It’s not my failure if the context for the changes is lost over time. I won’t have the daily anxiety of needing to review and approve code that I know will be indecipherable in 6 months. Good.

The icing would be if I can convince the colleagues on my workstream to accept documentation, deeper implementations, and other similar practices as the norm. Not, as he said, a matter of taste.

Continue reading The upside

Work vs work

PN: How’s it going, Adi?

Me: It’s ok. I’m glad Wednesday’s nearly over.

PN: *laughs* You looking forward to the weekend already?

Me: No, I’m looking forward to Thursday, so I can put my head down and work.

PN: *laughs out loud*

Wednesday is the meetings filled day in our team. Tuesday is quite bad too. Thursday is a designated meetings free day in the huddle.

Happy

The whole team is working on a moderately big redesign. M & I are pairing on a spike to massively upgrade the technical implementation for a core part of the so, to support the design change.

Today, after we’d reached a significant milestone on our spike, I showed PAM1 the app as it works with the changes.

She. Loved. It!

She took it around the team showing the upgrade to everyone – other engineers, designers, PMs…Everyone. Everyone loved it, but the people who loved it the most were PAM and PN2. I could hear PN cooing over it for a long time. They both couldn’t stop smiling. Remembering the joy on their faces has plastered a smile on mine. Made my day ☺️


  1. She’s a senior UX designer playing a leading role in the redesign 
  2. He’s one of our product managers. He also co-led an earlier design upgrade which was shelved due to a change of management. Today’s change included much of the work that was part of the original plan. 

Swish…

I’ve spent most recent weekends working on a big, breaking change to some of my Chrome extensions. I even took today off from work so I could drive the work through to conclusion.

Finally at 23.00, everything was ready, tested, retested, ready to be deployed. I deployed the server side components and tested them again. Then, I packaged the extension, uploaded to the Chrome webstore developer dashboard, and submitted for review.

It usually takes about a day for the review, though sometimes it can even take up to a few weeks. So, I’m expecting the change to go live sometime late tomorrow, or maybe Monday (it’s already weekend almost everywhere). Time to sleep 😴

Instead, here I am, 45 mins later, writing to tell you that the update has been reviewed, approved, and published. Already.

How am I gonna sleep now? 😬

Me, here, now.

Work

I’m a developer now. After years of developing apps and extensions on the side, I joined as a full time Android developer last November. It’s been an interesting change, and it’ll be an interesting experiment — turning a hobby into a profession. Based on the little experience so far, there’s going to be a fine balance—learning and doing what I love vs the challenges (and learning) of working with some people.

Running

I haven’t run since early December. More than two months. I wasn’t running much before that either, not after September. Hamstring and ankle were acting up last year. That’s just one excuse. I’ve gained a lot of weight (+13Kg, Dec ’19- Dec ’20), and it puts more stress on joints. I started a new career, and started working longer hours with fewer breaks. My favourite running buddy is growing old and getting past the age for running. Bruno left us, and I was depressed about it. I’ve got plenty of excuses, no runs. I could do with a friend, and a run. Or just a Parkrun.

Gardening

I took a few cuttings last autumn. Most have survived and taken root. Some have really thrived. A few died. I planted a bunch more of tulips and hyacinths. Finally trimmed back the apple tree and roses after a couple of years. The daffodils buds are starting to appear. First crocus have flowered. I’m looking forward to spring. I’m looking forward to another summer of getting hands dirty in the garden.

Reading

Reading took a back seat in second half of last year. Probably an effect of too many good books in the first half raising expectations. I finally picked back up over December holidays, and have been keeping it going this year. I’m always up for reading recommendations, so please send me any and all.

French

Duolingo can now understand my pronunciation of most French words and phrases. I’m barely past the beginner level, but still at it. I might even say that I’m starting to enjoy the language. Finding a few good French series on Netflix has also helped keep the interest alive. If only the Paris marathon didn’t get cancelled last year :(

Personal apps & projects

I haven’t updated any of my apps and extensions since I started this job. It’s been hard to motivate myself to code more after spending hours coding in the day job. It’s hurting.

Google ended support for subscriptions in Chrome extensions earlier this year. I didn’t update the extensions; I’ve lost all paying subscribers, and they may have lost access to premium features. Dropbox is making a breaking change to their API/SDK again. I’ve got a few months to update both Todo.txt apps, or they’ll stop working for a bunch of users. I want to make some important and useful changes to a few other apps as well. The backlog is growing. And it is fuelling a latent frustration inside me, with myself.

Head & heart

Keep missing meeting parents. (And occasionally getting pissed at them). Don’t have kids, or any prospects. Chewie is growing old. Bruno was taken away. Dudley visits less often because his family are home all the time. Haven’t been outside Guildford, forget a vacation, in a long time. The learning curve at work is flattening, and people issues starting to crop up. I’m not running. I haven’t heard from a few friends in a while. I can’t go swimming. I’m still in debt. I’m not meditating. I’m way overweight and unfit.

I’m not sad, but I’m not happy. That is sad.

Continue reading Me, here, now.

Super Monday

If we were measuring life segments on a 0-10 scale, the weekend was a -10*

Today, in contrast, was a super Monday. It started at 5, quickly climbed to 8, stayed high all day, and finished at 10.

The day started well. I made the morning coffee manually for the first time since 13th October, when we bought the coffee machine. The return of this morning routine helped. Gave me a few minutes to walk around, smell the brewing coffee, and prepare for work.

I had no meetings or chats all day, other than the 10 minute morning standup. A full day of coding, reviewing, and studying with no distractions. Completed a good PR, merged two, and reviewed one.

I had a good walk with Chewie and Dudley in the afternoon. Didn’t meet any humans. FTW!

Lunch was more comfort food. Alu-methi parantha with chicken curry, and some Chewie cuddles.

Thanks to no meetings, I even finished work at 6. With a smile.

Then I went for a run. My first since early October. It was short, slow, and hard. But, I ran! Win!

A very good day, indeed**.

Continue reading Super Monday

No meetings

Other than the 10 minute morning standup, I had no meetings today. None.

One full day of just thinking, reading and coding. It was so good.

It wasn’t easy. I was working on new, hard bits today. Most of the day was understanding what goes where and does what, before I could add my work to it.

It wasn’t lonely. I had two video chats with JT to work out some issues, and one with FB to understand his team’s solution. But it was all just work.


Over the weekend, I had created full day events on my work calendar for every Monday and Thursday. The events are called ‘No meetings, por favor!’

All in a day’s work

Morning—Work.
2 horas of work, 2 commits, one publish. An hour off. 2 hours of work, including responding to half a dozen emails.

Break.
Walk the dogs. Lunch. Watch an episode of Star Trek Discovery.

Afternoon—Fix the tap.
Clean the working area under the sink. Wiggle into the tiny space under the sink and remove the old kitchen tap. Boys try to join me under the sink, and lick me to ensure I’m fine. Find two right sized pieces of wood from the pile under the shed (thank you previous owners). Spend another 5 minutes trying to get both the dogs out from under the shed, and into the house. Saw them (the wood pieces, not the dogs) into correct size and shape. Measure, mark, drill holes for the piping into the wood pieces. Fit the piping and the tap on top of the kitchen board. Realise the hole is too small for the top, thick part of piping. Disassemble everything, drill a smaller secondary hole. Reassemble everything. Wiggle back under the sink and fit everything together. Connect the water pipes. The little dog has dozed off with my right leg as his pillow. After a few minutes of fruitless cajoling, replace my leg with my rolled-up hoodie for his pillow. Get up and test everything is working. Wiggle back under the sink and tighten all the connections. Clean all the tools and the removed tap. The little one is still sleeping on my hoodie next to the sink. Open the fridge. Both the dogs are awake and ready for something, anything, from in there.

All this while cooking the little one’s meal (boiled chicken and rice) for next 24 hours.

Late afternoon—work.
The big one is sleeping behind me on the carpet. The little one is sleeping across us on the bed. I’m trying to work. Good luck to me!