{"id":15632,"date":"2011-09-29T22:07:25","date_gmt":"2011-09-29T20:07:25","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=15632"},"modified":"2015-11-13T09:52:26","modified_gmt":"2015-11-13T07:52:26","slug":"project-management-tips-from-linus-torvalds","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2011\/09\/29\/project-management-tips-from-linus-torvalds\/","title":{"rendered":"Project management tips from Linus Torvalds"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>Linus Torvalds shares some of his thoughts on software project management in <a href=\"http:\/\/h30565.www3.hp.com\/t5\/Feature-Articles\/Linus-Torvalds-s-Lessons-on-Software-Development-Management\/ba-p\/440\">this interview<\/a>. I have two favorite bits in there. One is on the obsession of the code quality control:<\/p>\n<blockquote><p>&#8220;The other thing\u2014and it&#8217;s kind of related\u2014that people seem to get wrong is to think that the code they write is what matters,&#8221; says Torvalds. Most software development managers have seen this one. &#8220;No, even if you wrote 100% of the code, and even if you are the best programmer in the world and will never need any help with the project at all, the thing that really matters is the users of the code. The code itself is unimportant; the project is only as useful as people actually find it.&#8221;<\/p><\/blockquote>\n<p>Just a few years ago I would have completely missed this point. Or argued passionately with it. But not anymore. After spending the last few years working with very dynamic software projects, I realized that no matter how much effort you spend on the code quality control, it will still degrade with time. And even if it becomes horrible and hard to look at, it will still work and you&#8217;ll still be able to maintain it. But the time and effort that was lost would have been so much more useful in supporting user requests and improving their experiences.<\/p>\n<p>Even knowing this now, I am still a slave of my habits. I still need to control myself, set tight deadlines, and learn to ignore a lot of things that would have caused me a heart attack back in a day.<\/p>\n<p>The second point that I found interesting in the interview is similar.<\/p>\n<blockquote><p>I also asked Torvalds about Software Configuration Management (SCM) tools like his own Git version control system. He replied, &#8220;I don&#8217;t think tools are all that fundamentally\u00a0 important.&#8221;<\/p>\n<p>&#8220;Now, what is important is that there&#8217;s a good workflow for the project, and tools can certainly help with that,&#8221; said Torvalds. &#8220;But most projects don&#8217;t necessarily really need tools. There&#8217;s a lot of projects that simply don&#8217;t have enough changes to really require any tools at all for their work flow; if you only have a few hundred patches per release, you can maintain those just about any way you want, including entirely by hand.&#8221;<\/p><\/blockquote>\n<p>Again, a few years ago (and even sometimes now) I would argue and fight for the perfect setup and ideal toolbox. These days I seem to care less. As long as the work is being done and the project is moving on, I don&#8217;t really care which tools are being used. I have my preferences, of course, and I would try to push them through to be used by majority of participants, but I am much more relaxed on this subject than I used to be.<\/p>\n<p>One other thing that I wanted to mention is the difference in perception. In Linus&#8217; world, it seems, changes are always distributed as patches. To the effect that it would even be considered a specialized tool &#8211; everyone is using it. And I understand &#8211; all of the people with who he works are very experienced technical people and there is indeed no other way. But for the rest of us things aren&#8217;t as rosy. On several occasions I worked in a team where people weren&#8217;t using any tools. Literally. They had no idea about patches, diff, scripts, merging, version control, any of that. Changes in those projects were maintained by hand. And there would be nothing similar in concept to a release. Which didn&#8217;t help.<\/p>\n<p>There was indeed one particular project. \u00a0Do you know how I remember it? \u00a0I was at one of those PHP conferences somewhere in Europe. And one of the talks I attended was on how to use unit testing during the re-factoring process. \u00a0The presentation was filled with examples of &#8216;horrible&#8217; code which was then surrounded by unit tests and later re-factored into better code. \u00a0The code that was presented as &#8216;horrible&#8217; was some of the best code I&#8217;ve seen in my life! \u00a0After the presentation I came up to the speaker and showed him the project with which I was involved, which had some truly horrible code. \u00a0You should have seen the look on his face&#8230; It took him a couple of minutes to compose himself and start thinking on how to work with that nightmare. \u00a0He even thanked me and promised that we would include some examples of that crap in the future versions of his talk.<\/p>\n<p>My point here is the difference in perception. \u00a0When Linus says that things can be done without any tools at all, and when that guy talked about horrible code, they both, I think, are somewhat spoiled by their surroundings. \u00a0I&#8217;m sure not everyone even would be able to make sense of a gadzillion tiny little things that Linus uses on a daily basis and doesn&#8217;t even consider them as full featured tools. \u00a0I&#8217;m sure not everyone even would be able to read some of that &#8216;horrible&#8217; code the other guy spoke about, let alone write something like that (I remember it being OOP, with comments, well-tabulated, etc). \u00a0There is a certain minimum level which has to be there. \u00a0That minimum level is assumed to be a zero. \u00a0But it&#8217;s not always there.<\/p>\n<p>&nbsp;<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Linus Torvalds shares some of his thoughts on software project management in this interview. I have two favorite bits in there. One is on the obsession of the code quality control: &#8220;The other thing\u2014and it&#8217;s kind of related\u2014that people seem to get wrong is to think that the code they write is what matters,&#8221; says &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2011\/09\/29\/project-management-tips-from-linus-torvalds\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Project management tips from Linus Torvalds<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62],"tags":[2925,580,1673],"keyring_services":[],"class_list":["post-15632","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","tag-linus-torvalds","tag-management","tag-software-engineering"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":26382,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/08\/29\/linus-torvalds-loves-gpl\/","url_meta":{"origin":15632,"position":0},"title":"Linus Torvalds loves GPL","author":"Leonid Mamchenkov","date":"August 29, 2016","format":false,"excerpt":"Slashdot links to this CIO article, which quotes Linus Torvalds on the importance of the General Public License (GPL): \"FSF [Free Software Foundation] and I don't have a loving relationship, but I love GPL v2,\" said Torvalds. \"I really think the license has been one of the defining factors in\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":23822,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/04\/07\/10-years-of-git-an-interview-with-git-creator-linus-torvalds\/","url_meta":{"origin":15632,"position":1},"title":"10 Years of Git: An Interview with Git Creator Linus Torvalds","author":"Leonid Mamchenkov","date":"April 7, 2015","format":false,"excerpt":"Linux.com reminds us that git is celebrating its 10th birthday this year. \u00a0An interview with git creator Linus Torvalds sheds some light on to how and why it happened, and how long it took. You can actually see how it all took shape in the git source code repository, except\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"AtlassianGit10year","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/04\/AtlassianGit10year-500x295.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":16831,"url":"https:\/\/mamchenkov.net\/wordpress\/2012\/10\/12\/linux-torvalds-answers-slashdot-questions\/","url_meta":{"origin":15632,"position":2},"title":"Linus Torvalds answers Slashdot questions","author":"Leonid Mamchenkov","date":"October 12, 2012","format":"link","excerpt":"Linus Torvalds answers Slashdot questions Once in a while Slashdot runs a story to collect and vote questions to be asked of a person of interest. \u00a0This time, it's Linux kernel' father - Linus Torvalds. \u00a0As always with Slashdot, the questions are on a variety of subjects - Linux kernel,\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":24900,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/10\/28\/2016-will-be-the-year-of-the-arm-laptop\/","url_meta":{"origin":15632,"position":3},"title":"2016 will be the year of the ARM laptop","author":"Leonid Mamchenkov","date":"October 28, 2015","format":false,"excerpt":"Slashdot links to the story that quotes Linus Torvalds' address of the LinuxCon 2015: \"2016 will be the year of the ARM laptop\" For those who's rusty on the CPU\u00a0hardware side, he's a very easy to follow article, describing the key difference between ARM and x86 architectures.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":16753,"url":"https:\/\/mamchenkov.net\/wordpress\/2012\/09\/26\/i-have-a-text-editor-ive-been-using-myself-that-i\/","url_meta":{"origin":15632,"position":4},"title":"On text editors","author":"Leonid Mamchenkov","date":"September 26, 2012","format":"quote","excerpt":"I have a text editor I've been using myself that is so complicated it makes VIM look like Notepad \u2014 maybe I'll release that. Linus Torvalds","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":29022,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/11\/24\/on-submitting-trivial-patches\/","url_meta":{"origin":15632,"position":5},"title":"On submitting trivial patches","author":"Leonid Mamchenkov","date":"November 24, 2018","format":false,"excerpt":"Hacker News points to this Linux kernel patch, done by a 4-year old.\u00a0 With some assistance, of course, but still impressive.\u00a0 And while the story is cute, the comments are even better.\u00a0 In particular, a link to this email from Linus Torvalds, talking about the importance of the small and\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/15632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=15632"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/15632\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=15632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=15632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=15632"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=15632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}