Comments by "Daniel Sandberg" (@ddanielsandberg) on "ThePrimeTime" channel.

  1. 108
  2. 19
  3. 17
  4. 14
  5. 11
  6. Velocity is a measurement, not a target nor a promise. So how can your "velocity be off"? The point is to tell you some kind of real rate, not the wished, hoped or estimated rate. That there are other things taking time, unpredictable things, is normal but should be managed to not overburden. Of course if you've been doing 5x more support than expected it may mean that the way you are working (development practices, testing, documentation, refactoring, monitoring, logging, planning, etc) need to change so that you don't drown in support. Something about a self-inflicted wound. I find the argument about mixing dev + test time as very odd. Untested, unfinished, undeployable features are worth nothing. There's no separate point-system for devs and testers. It's either done or not. I loathe developers that declared "I'm done", throws it to a tester and starts working on the next thing, and it doesn't even work. If you have a culture where there is a blame game of "you didn't meet your commitment" or "who estimated wrong" the organisation have not understood anything and you should either change your organization or change your organization. Tip: Remove the columns "ready for test" and "in test" from your board and only have todo, doing, done. If it's not tested it's not done and NO ONE gets any points, gold stars or pats on the back until it's actually done! The point of agile is not about processes, story points, burn-up, burn-down, sprints, etc, stuff. It's about giving everybody a healthy dose of reality so that the team and organization can adapt and change early, instead of hope that whatever "wishful plan" people have made will actually happen.
    7
  7. 5
  8. 5
  9. 4
  10. 4
  11. 3
  12. 3
  13. 2
  14. 2
  15. 2
  16. 2
  17. 2
  18. 2
  19. 2
  20. 2
  21. 2
  22. 2
  23. 2
  24. 2
  25. 2
  26. 2
  27. 1
  28. 1
  29. 1
  30. 1
  31. 1
  32. 1
  33. 1
  34. 1
  35. 1
  36. 1
  37. 1
  38. 1
  39. 1
  40. 1
  41. 1
  42. 1
  43. 1
  44. 1
  45. 1
  46. 1
  47. 1
  48. 1
  49. 1
  50. Don't enable the unfinished features using feature flags! All other changes in the code shall work, which is why automated testing is important. We do this all the time in Java/Kotlin/Go and it works just fine. Perfect when rewriting a component; just a flag if it shall use old or new implementation and flow. If the new implementation/feature doesn't work - just disable it. Need an emergency fix? Just make it and deploy! It's always deployable, even with unfinished features committed. In CI/CD the emergency hotfix process is exactly the same as any other change (except that we may skip days of performance testing). I can ask a question back: What if you have a bunch of features in the development branch. There is a deadline, but 3 out of 10 features that are merged are not in a releasable state due to finding bugs late? What do you do? 1. Revert a bunch of merge-commits at the last minute and have to re-test everything overnight? - Which may cause breakages in other code that had to be modified/refactored due to changes made to accommodate these 3 features. - Leading to people becoming afraid of refactoring and then process is added so that everyone has to ask for permission, time and budget to refactor. - Leading to increase in tech debt, stress and whatnot. 2. Taking cherry-picked commits from dev to master? And ending up with a master with a combination of commits that has never been tested together? - Even harder with the anti-pattern of doing squash merges from feature branches. - And all the other problems from (1). 3. Making another "release branch" and cherry-pick so that it at least can be tested in isolation. - But now ending up with yet another "truth" of the system? Have fun merging back and forth like it's 1997. All of this just creates complexity. The organization ends up hiring release managers, starts doing a lot of planning, processes, gatekeeping, Gantt charts, inter-team dependency management, etc. CI and TBD removes 90% of the problems. But it requires engineering beyond implementing the task and moving on to the next.
    1