{"id":4173,"date":"2019-07-03T11:54:38","date_gmt":"2019-07-03T11:54:38","guid":{"rendered":"http:\/\/www.nikola-breznjak.com\/blog\/?p=4173"},"modified":"2019-07-03T14:54:26","modified_gmt":"2019-07-03T14:54:26","slug":"book-club-engineering-team-pragmatic-programmer","status":"publish","type":"post","link":"https:\/\/nikola-breznjak.com\/blog\/books\/book-club-engineering-team-pragmatic-programmer\/","title":{"rendered":"Book club in our engineering team \u2013 Pragmatic Programmer"},"content":{"rendered":"<h2><span style=\"font-weight: 400;\">TL;DR<\/span><\/h2>\n<p>In this short post I\u2019ll tell you:<\/p>\n<ul>\n<li>how we implemented&nbsp;our third book club idea in our engineering team<\/li>\n<li>what book we read<\/li>\n<li>how we liked it,<\/li>\n<li>and share a few quotes that we liked<\/li>\n<\/ul>\n<blockquote><p>You can read all about our other book clubs here:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.nikola-breznjak.com\/blog\/books\/implemented-book-club-idea-engineering-team\/\">1st &#8211; The Phoenix Project (has way more info on how we&#8217;re doing it)<\/a><\/li>\n<li><a href=\"http:\/\/www.nikola-breznjak.com\/blog\/books\/book-club-engineering-team-doesnt-crazy-work\/\">2nd &#8211; It doesn&#8217;t have to be crazy at work<\/a><\/li>\n<\/ul>\n<p>\u26a0\ufe0f If you&#8217;re thinking that there&#8217;s no time to read the books, check this post on&nbsp;<a href=\"http:\/\/www.nikola-breznjak.com\/blog\/books\/math-behind-reading-30-books-per-year\/\">the math behind reading 30 books per year<\/a>.&nbsp; If you think book club thing is cool, and you&#8217;d want to be a part of the group that&#8217;s &#8216;allowed&#8217; to read &#8216;on the job&#8217;, shoot me an email&nbsp;?<\/p><\/blockquote>\n<h2><span style=\"font-weight: 400;\">THE BOOK<\/span><\/h2>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">This time we read the&nbsp;<a href=\"https:\/\/amzn.to\/2ZsP8yu\">Pragmatic Programmer<\/a><\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">DATA POINTS<\/span><\/h2>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">avg(time to read) =&nbsp;<\/span><b>6 hours<\/b><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">avg(liked the book) =&nbsp;<\/span><b>6.9 \/ 10<\/b><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">avg(liked the book club) = <\/span><b>8.8 \/ 10<\/b><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">KEY TAKEAWAYS<\/span><\/h2>\n<ul>\n<li><b><b>Quality is a team issue &#8211; the team as a whole should not tolerate broken windows<\/b><\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Treat the documentation the same way you treat your code<\/span><\/li>\n<\/ul>\n<ul>\n<li><b><b>Prototypes are disposable and shouldn&#8217;t go into production<\/b><\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Crashing early makes life a lot easier when debugging code<\/span><\/li>\n<\/ul>\n<ul>\n<li><b><b>Decoupling is good, but as a group, we don&#8217;t subscribe to the idea that your software needs to be so flexible that swapping out databases would just be as easy as changing a line of code<\/b><\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Shell is way more powerful than GUI<\/span><\/li>\n<\/ul>\n<ul>\n<li><b><b>Don&#8217;t be a slave to old code, always be ready to refactor<\/b><\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Don&#8217;t refactor and change functionality at the same time<\/span><\/li>\n<\/ul>\n<ul>\n<li><b><b>Take the time to spell out connectionPool instead of cp<\/b><\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Treat code as gardening<\/span><\/li>\n<\/ul>\n<ul>\n<li><b><b>&#8220;Why&#8221; is more important than the &#8220;what&#8221; &#8211; don&#8217;t blindly duplicate existing workflow when translating into code from manual processes<\/b><\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Try not to be a slave to the methodology<\/span><\/li>\n<\/ul>\n<ul>\n<li><b><b>Overengineering is as bad as under-engineering<\/b><\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Premature optimization is bad<\/span><\/li>\n<\/ul>\n<ul>\n<li><b><b>Making a project glossary to save time later on looking for acronym translations is a good idea<\/b><\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The code should have comments, but too many comments can be just as bad as too few<\/span><\/li>\n<\/ul>\n<ul>\n<li><b><b>Attaching codenames to new projects\/features is cool<\/b><\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Tailoring your message to the audience is an important skill to have<\/span><\/li>\n<\/ul>\n<ul>\n<li><b><b>Don&#8217;t tell your boss that it&#8217;s done until it&#8217;s tested<\/b><\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Finding bugs early in the process saves money in the long run<\/span><\/li>\n<\/ul>\n<ul>\n<li><b><b>Learn a new language every year, and read a tech book every month and read non-tech books as well<\/b><\/b><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The word deadline comes from a line in prisons which if crossed by prisoners they&#8217;d get shot<\/span><\/li>\n<\/ul>\n<ul>\n<li><b><b>The book is mostly a refresher of techniques\/ideas that we already know &#8211; new book coming out for 20th anniversary<\/b><\/b><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>TL;DR In this short post I\u2019ll tell you: how we implemented&nbsp;our third book club idea in our engineering team what book we read how we liked it, and&hellip;<\/p>\n","protected":false},"author":1,"featured_media":4174,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-4173","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-books"],"_links":{"self":[{"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/posts\/4173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/comments?post=4173"}],"version-history":[{"count":3,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/posts\/4173\/revisions"}],"predecessor-version":[{"id":4177,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/posts\/4173\/revisions\/4177"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/media\/4174"}],"wp:attachment":[{"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/media?parent=4173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/categories?post=4173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nikola-breznjak.com\/blog\/wp-json\/wp\/v2\/tags?post=4173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}