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

  1.  @YPLabs  Some things are harder than others. If it is changing an existing page, try do it by making many small changes. And if there are some elements that should not be visible yet, use a flag (templates and SSR components are full of conditions anyway). If it is new/replacement UI then duplicate the pages and rewrite them, have a router based on some criteria of which one to use. Sometimes we end up in trouble when switching from framework v1 to v2 and we get conflicts. There are ways around that too. It may be so that in that case the team makes the choice to actually use a branch, with the understanding that "this is our focus 100%" for next few days and no other work will be done, with the risk of we have to spend a lot of time in testing. If it is more complex than that and will take weeks or months then branches is out of the question. The most common way around that is to first "shadow" framework v1 (i.e. repackage and change the package name, paths and/or namespace) and update all the current/old code to use the new imports. Then migrate one page/component at a time to framework v2, have a router based on some criteria to select which implementation to use. Then throw away all the old code once it is know to work in production and remove all the flags. Now I know that frameworks like React and whatnot is horrible when it comes to situations like this. There are always exceptions. The problem is when the strategy/band-aids to manage exceptions becomes the norm and just pretend that the problems isn't there. The problem I was trying to exemplify was that the three "not quite good enough features" held up the other seven because everything is based on if it is merged or not. Management are usually not that happy when they have to postpone a release of some features they have promised customers because of some problem with other features. CI/CD is meant to solve that issue.
    1
  2. 1
  3. 1
  4. 1
  5. 1
  6. 1
  7. 1
  8. 1
  9. 1
  10. 1
  11. 1
  12. 1
  13. 1
  14. 1
  15. 1
  16. ​ @aprilmintacpineda2713  I know that when there is something "new" people just want a set of rules and steps, a recipe with 5 steps on how to do it. Many things are more abstract and requires experience doing the thing, take the time to form a deeper understanding and once "it clicks" it's obvious and you no longer need the recipe and you just do. There is no "do these steps and you're CI", that would be nothing but cargo culting. We actually have to do the hard work and change how we work, think, behave, incentivise, collaborate, communicate and understand how work actually works. The amount of programmers in the world doubles every 5 years or so. About 10-12 years ago everyone went nuts with FB/PR/GitFlow and thus we can approximate that 75% of all programmers have never practiced or seen real Continuous Integration. From that we can also say that at any point in time 50% of all programmers has less than 5 years of experience. Then the practices that this industry was build on are forgotten and completely alien to all the new people, because most people do not learn, they are being taught, then they iterate that teaching to the next generation as the "one true way" and put in a lot of effort and rules, process, arguments and "personal credit" into that particular way. Then the people that's not doing what "you" have been taught are being told they must be "inexperienced unprofessional developers that has never done any real work". Context is king, and most people convince themselves that the thing they spent time "perfecting doing" is the right thing for all contexts. This of course goes both ways so we all need to be aware of our biases. The key is being able to adapt based on context, develop a deeper understanding of the system and not get stuck in doing what is convenient and be afraid of change.
    1
  17. 1
  18. 1
  19. 1
  20. 1
  21. 1
  22. 1
  23. 1
  24. 1
  25. 1
  26. 1
  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. 1