Hacker News new | ask | show | jobs
by collinmanderson 3631 days ago
I personally charge my clients with a flat monthly maintenance fee which includes upgrades, but also minor bug fixes. In some ways it's a guarantee that the website will keep running, though without an actual SLA. It means I don't need to spend time selling the client on the upgrade.

1. Yes. I always put the on-going fee in the initial project estimate, so there's no surprises.

2. Yes, it requires some guess-work. I've also found that it saves time to take one feature migration (like removing django's url patterns() function) and making that change to all projects at the same time (rather than making all the upgrades to one project at once). I also have found it helpful to reduce the number of 3rd party dependencies. (Fewer things to upgrade, and fewer things that may potentially stop getting supported.)

(Also "Django LTS upgrades are every 5 years" - I was going to correct that to 2 years, but I suppose you can completely skip an LTS line if you time it just right (like, jump from 1.8 directly to 2.0). But you still need to upgrade every _4_ years. Right?)

3. Yes, it's something to figure out initially.