Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Engineering Anti-Patterns @JQueryTO 2014

940 views

Published on

Engineering Anti-Patterns @JQueryTO 2014

Published in: Technology
  • Be the first to comment

Engineering Anti-Patterns @JQueryTO 2014

  1. 1. nahim nasserVP of Engineering @BNOTIONS @NAHIMNASSER
  2. 2. ANTI-PATTERNS ENGINEERING
  3. 3. WHAT are ANTI-PATTERNs?
  4. 4. Repeated patterns that result in negative consequences
  5. 5. Repeated patterns that result in negative consequences When solutions exist
  6. 6. 84%Of ALL software projects fail
  7. 7. anti-patterns ARE Lessons learned
  8. 8. anti-patterns ARE Heavily Documented
  9. 9. Hope you weren’t apart of this one
  10. 10. Not to be confused with Test Driven Development
  11. 11. Ouch.
  12. 12. Whats wrong with that? Haha…
  13. 13. Key takeaways
  14. 14. anti patterns are bad
  15. 15. it is good to be able to recognize them anti patterns are bad
  16. 16. it is good to be able to recognize them It’s even better to know what to do when you find them anti patterns are bad
  17. 17. it is good to be able to recognize them overcoming anti-patterns unlocks incredible potential in your organization anti patterns are bad It’s even better to know what to do when you find them
  18. 18. Encounters with Anti-Patterns
  19. 19. Analysis paralysis AntiPattern #1
  20. 20. Analyzing for too long, while the opportunity passes
  21. 21. Choosing A TECHNOLOGY STACK
  22. 22. Convergence in language features, fragmentation in the number of languages
  23. 23. Comparsion MAtrices
  24. 24. Comparsion MAtrices TODO APPS
  25. 25. Comparsion MAtrices TODO APPS Community Research hiring market research
  26. 26. Comparsion MAtrices TODO APPS Community Research COST-benefit Analysis hiring market research Tradeoff analysis
  27. 27. Comparsion MAtrices TODO APPS Community Research COST-benefit Analysis hiring market research Tradeoff analysis EASY TO GET TRAPPED
  28. 28. 0 25 50 75 100 Opportunity Cost Benefits analysis paralysis
  29. 29. 0 25 50 75 100 Opportunity Cost Benefits analysis paralysis
  30. 30. Agile was designed to attack analysis paralysis to handle changing business requirements
  31. 31. incremental development the solution was
  32. 32. everyone started applying this to business requirements
  33. 33. what if we applied this to our technology stack?
  34. 34. What if we accounted for incremental renovation right from the start?
  35. 35. Language agnostic
  36. 36. framework Agnostic Language agnostic
  37. 37. platform agnostic framework Agnostic Language agnostic
  38. 38. acknowledge the rebuild
  39. 39. SIDE EFFECTS
  40. 40. birth of the ‘polyglot' programmers
  41. 41. technology choice agility is also a great motivator for engineers
  42. 42. EXTINCT BY INSTINCT
  43. 43. ANALYSIS PARALYsIS extinct by instinct
  44. 44. design by committee AntiPattern #2
  45. 45. too many software designers
  46. 46. No unifying plan or vision too many software designers
  47. 47. erwin edge-case
  48. 48. not bad to have a few designers, but unification is critical
  49. 49. Your app might work
  50. 50. ok now lets create some new features
  51. 51. vomit
  52. 52. more vomit Insult to injury
  53. 53. “It is better to have a system omit certain anomalous features… than to have one that contains many good but independent and uncoordinated ideas.” -Frederick brooks (mmm)
  54. 54. recommended solution: Designated design leader !
  55. 55. Designated design leader ! reform meeting processes recommended solution:
  56. 56. Designated design leader ! reform meeting processes explicit roles and outcomes recommended solution:
  57. 57. “…conceptual integrity is the most important consideration in system design. “ -Frederick brooks (mmm)
  58. 58. reinventing the square wheel AntiPattern #3
  59. 59. Failing to adopt an existing solution
  60. 60. Failing to adopt an existing solution and instead adopting a custom solution
  61. 61. which performs much worse than the existing one
  62. 62. “Hey, there’s this great library that does exactly what you need” -you
  63. 63. “That library will take a while to learn, and i can write it better myself faster” -Ricky Rewrite
  64. 64. rookie management
  65. 65. rookie management & pride
  66. 66. Recommended solution: period of library mining !
  67. 67. lean towards battle-tested solutions
  68. 68. lean towards battle-tested solutions libraries that have been tried, tested, and have traction.
  69. 69. impact organizational structure Antipatterns
  70. 70. impact Management principles Antipatterns
  71. 71. impact how effective you are as an engineer Antipatterns
  72. 72. BNOTIONS ENGINEERING ANTI-anti-patterns manifested in
  73. 73. mastery
  74. 74. mastery Autonomy
  75. 75. mastery Autonomy purpose
  76. 76. constantly improving your craft mastery
  77. 77. manifestation: mastery internal education Technology choice Agility challenging work
  78. 78. Autonomy
  79. 79. Autonomy acting with choice and influence
  80. 80. manifestation: autonomy self-directed teams teams choose what they work on teams choose who they work with teams choose how they build projects
  81. 81. BOTTOM UP TECHNOLOGY ADOPTION
  82. 82. purpose intrinsic motivation beyond profitability
  83. 83. manifestation: purpose constant alignment with the organization’s vision
  84. 84. mastery
  85. 85. mastery Autonomy
  86. 86. mastery Autonomy purpose
  87. 87. positive effect on business outcomes
  88. 88. positive effect on personal happiness
  89. 89. positive effect on ‘work’ engagement
  90. 90. anti-patterns design patterns
  91. 91. anti-patterns design patterns well rounded leadership
  92. 92. @NAHIMNASSER @BNOTIONS email me your stories: nahim@bnotions.com

×