Channelling code

I love writing code, especially when I know well how to implement what I have in mind.

Many client projects have “low-hanging fruit” tasks that can be done relatively fast (in hours) and would benefit the project: some obvious refactorings, adding validations, adding tests, fixing layout, adding icons etc.

When I don’t hate a project, I sometimes feel an impulse to come and implement a couple of things. It resembles the impulse to fix or improve something in your home.

I even don’t mind doing it for free, it just feels good.

But there’s a problem: discussing those changes with managers somehow kills my soul. The joy vanishes, and something cold and unalive creeps in. I guess that’s because the project manager steals my ownership of that feature, steals the autonomy.

And here’s the idea:

  1. implement that feature on my personal time
  2. have it in a separate branch to isolate it from the app code
  3. deploy it to staging or record a video walk-through
  4. approach the clients and try to “sell” them that feature
  5. if the clients like it, they pay for your time, otherwise just forget about it