Youtube comments of (@JinnGuild).

  1. 16
  2. Work/Life balance is the hardest because it is rooted in nature. So that is where I mainly focus. Beyond that it is Rewards. Those two of your categories are things that require a lot of pressure to be put on the workplace management. Impact and Growth are heavily choice-driven by the individual. About Work/Life balance: At the beginning of adulthood most of us get jobs, as well as marriage and children. People have a desire to spend more time with their young children for the sake of precious childhood memories and raising them with strong foundations. As our children become young/adults, our time spent with them is still valuable, but more recreational and fun. Less foundational. The same goes for any relationship to some degree. Unfortunately, the Professional world works the same way, but moreso Requires you to spend a lot of time and energy early on to earn your stripes. As we get older and hit that juncture where we stop being worker-bees and become managers and/or consultants, we start to make our own schedules and the work/life balance shifts. But by that time our relationships are what they are, and our children are older. Though many of us never really leave the worker-bee phase. That is all a sad fact. But that's also why I focus a lot of attention on fixing broken processes and making work/life balance a real thing. Yes for all in general, but I admit I focus mainly on the people reaching those junctures and helping them push through into the management or consulting phase of their career.
    13
  3. 4
  4. 4
  5. 3
  6. 3
  7. @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
  8. 3
  9. 3
  10. 2
  11. 2
  12. 2
  13. 2
  14. 2
  15. 2
  16. 2
  17.  @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
  18. 2
  19. 2
  20. 2
  21. 2
  22. 2
  23. 2
  24. 2
  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. 1
  59. 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
  60. 1
  61. 1
  62. 1
  63. 1