Comments by "" (@JinnGuild) on "Continuous Delivery" channel.

  1. 16
  2. 4
  3. 4
  4. 3
  5. 3
  6. @Dave - Yes, yes and also yes. I especially want to "Yes" at your @16:53 -- Correct me if I'm wrong, but the pattern you gravitate toward is ISFC (Imperative Shell Functional Core). You refactor to allow for Dependency Injection, then you separate out the "Impure" stuff like hitting external SDKs or Databases, and you isolate the functional pieces to be as "Pure" as possible. Maybe you can't reach perfect ISFC, but that's essentially the direction you go in, would you agree? In my own consulting, I find it valuable to make it clear to people new to Unit-Testing TDD that code resulting from TDD are best observed as something like "Pure" functional methods. When your Unit-Testing TDD is finished, you then wrap the resulting great functional-esque code with an imperative shell that USES your logic, but composes it to and from impure calls. As my question to you moves toward a dark space that sounds like "TDD never touches a database", I also want to clarify on that. When I talk about TDD, I assume that people hear my words as talking about Unit-Testing prior to writing "Domain Logic". But I almost always clarify that TDD isn't only about that. The whole Shift-Left mentality comes in to play even as far as to say SDET teams (or their ilk) should be writing tests against APIs as soon as the contracts are decided. Possibly even finishing before dev work starts, but definitely finishing before dev work ends. TDD absolutely includes testing "integration" and "acceptance". Though generally when our audience is the frequent dev working on the middle tier, TDD is taken to mean Unit Testing before writing Domain code. Thoughts?
    3
  7. 3
  8. 3
  9. 2
  10. 2
  11. 2
  12. 2
  13. 2
  14. 2
  15. 2
  16.  @giovani5586  I can understand that as some people's viewpoint, which is why I said it depends on what your ratio is. But to me, I'd rephrase your statement to something like this: Operations, Planning, Security, Reliability Engineering, Data Architecture, User Experience, Quality Engineering, Software Engineering (etc etc) are all *Information Technology* subjects. Quality Engineering is not Software Engineering, though they are two disciplines that work together. IT Operations is not Software Engineering, though it is required for Software to run. Site Reliability is not Software Engineering, though it is the latest role for companies following best practices. etc etc As a 20 year Software Engineer (and "Developer" before that), I could fill multiple full time [jobs, roles, contracts] purely focusing on the principles and practices that elevate Software Development into an Engineering mindset. TLDR; How do we write code to do this thing vs. Why do we write code to do this thing. In the context of this video (and Cloud Computing) which is an Operations/SRE concern, Software Engineering is absolutely required. Because (Purely in relation to code) we need to make choices on how we abstract our work, how we decouple different parts of the system, build stateless systems, make sure we aren't building "Distributed Monoliths", and all kinds of Code related concerns. So I can see some argument or some ratio toward including those other *Information Technology* roles and conflating them with "Software Engineering", but I personally set my ratio to a "Software Engineer" focusing on Operations and hardware like 10% simply to overlap with those roles in a DevOps mentality, and maybe 50% focused on coding, and plenty more room for other things not discussed here.
    2
  17. 2
  18. 2
  19. 2
  20. 2
  21. 2
  22. 2
  23. 2
  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
  51. 1
  52. 1
  53. 1
  54. 1
  55. 1
  56. 1
  57. 1
  58. Hey Dave! Firstly, 100% on your list of common arguments. But I would propose that developers "hate TDD" almost exclusively because of bad management. Managers are the ones arguing the points you lay out, and they do so with rank authority. I am describing a complicated reality. Some management, frequently as high as executives, would rather hire a more compliant and quiet developer than listen to "some idealistic engineer" constantly pushing for TDD (or other engineering principles/processes like CICD). There are vastly varying personalities and backgrounds for each manager. But they do wax authoritarian and waterfall. ((( This doesn't mean engineers shouldn't use your tips to push for improvement. They Should!!! ))) In an upcoming speaking engagement, I am going to be reviewing how novice "workers" (devs) have certain personalities, and they either grow into a Managers, or into an Engineers. I would debate that your video is leaning too heavy in trying to convince those "workers" with engineering mindsets. I contend that they all already agree. The real target audience needs to be Managers, or (or novice workers with managerial/business personalities who will one day grow into managers). This video has value, but our whole industry (Software Engineering) needs a bigger initiative demanding that trust and respect be given to engineers with the expertise to make these decisions. It's a huge initiative that dwarfs the constant repetitively redundant echo of experienced engineers like yourself writing articles, books, blogs, vlogs, videos, and it never goes anywhere because we all already agree. In another (agile?) video, you said something about how managers make bad decisions because they don't trust their developers. The solution to that isn't to just blindly hire anybody on the street and trust them, but to be more diligent in your hiring, as well as be explicit with how you implement continuous education and training for developers toward a trustworthy engineering mindset. TLDR; You (we) should focus on that, building systems that demand (through proof and voice, not force) that management trusts their engineers. TLDR TLDR; We demand that managers trust their engineers.
    1
  59. 1
  60. 1
  61. 1
  62. 1