For the hair has grown on my upper lip Tell us why YOU write. This correctness perspective is the main reason why I would like to put the Boy Scout Rule into context too; should we really be boy scouting code in the long tail? To celebrate the National Day on Writing, the NWP has joined The New York Times Learning Network and Figment to collect the thoughts of people from the sounds and associations of words. I use this to put a quality bar on any code that I touch. The National Day on Writing (October 20), an initiative of the National Council of Teachers of English, is built on the premise that writing is critical to literacy but needs greater attention and celebration. I did try very hard in it to tell the whole truth without violating my literary instincts. When I was about sixteen I suddenly discovered the joy of mere words, i.e. I wasnt born for an age like this; First I spent five years in a unsuitable profession (the Indian Imperial Police, in Burma), and then I underwent poverty and the sense of failure. From a very early age, perhaps the age of five or six, I knew that when I grew up I should be a writer. A critic whom I respect read me a lecture about it. Once again, no book is genuinely free from political bias. Code that we haven't worked on in a long time, and code that we might not touch again in the foreseeable future. Desire to seem clever, to be talked about, to be remembered after death, to get your own back on grown-ups who snubbed you in childhood, etc. The hotspots, on the other hand, just make up a small part of the code but attract most of the development work. Here's how: occasionally, I need to expand or tweak a feature that's been stable for a long time, so I find myself operating in the long tail of change frequencies. We don't use first-party cookies but we have advertisements, so you can have third-party ones. Surrealist, humorous and romantic character. With his right hand in his pocket he moved across to the window. In fact, most of our development time is spent trying to understand existing code just so that we know how to change it. Could make my enemies tremble. Our primary task is to read code, and the easier our code is to reason about, the cheaper it is to modify. I have not written a novel for seven years, burl hope to write another fairly soon. This increased my natural hatred of authority and made me for the first time fully aware of the existence of the working classes, and the job in Burma had given me some understanding of the nature of imperialism: but these experiences were not enough to give me an accurate political orientation. Why I write is an essay by the renowned writer and essayist George Orwell, as the title of the essay suggests, it is an explanatory essay which focuses on the writer himself and his motives for writing, the essay is written in a plain and simple style and lacks any strong rhetorical devices or literary techniques. Anyone who cares to examine my work will see that even when it is downright propaganda it contains much that a full-time politician would consider irrelevant. Down in the street a tortoiseshell cat was chasing a dead leaf, etc. That said, I do appreciate much of the work by the clean code movement, I follow it closely, and I learn from it. However, over the past decade I have noticed a change in how I approach code quality. Let me give just one example of the cruder kind of difficulty that arises. A chapter of your book? I am the worm who never turned, Sure,the code may still be hard to understand, but what is there is likely to have been debugged into functionality. Finally, I tend to write a test for most new code. It is not easy. The opinion that art should have nothing to do with politics is itself a political attitude. I remember a little poem that I wrote at that date, expressing my dilemma: But the priest has promised an Austin Seven. From time to time, when I was a bit older, I wrote bad and usually unfinished nature poems in the Georgian style. It's been battle tested and it just works. This becomes apparent if we plot the change frequency of each file in a codebase: As you see in the preceding figure, most of your code is likely to be in the long tail. Between the ages of about seventeen and twenty-four I tried to abandon this idea, but I did so with the consciousness that I was outraging my true nature and that sooner or later I should have to settle down and write books. I would at least balance the trade-offs between stabilizing code and refactoring it, and I tend to value stability higher. The problem of language is subtler and would take too long to discuss. In any case I find that by the time you have perfected any style of writing, you have always outgrown it. I am not able, and I do not want, completely to abandon the world-view that I acquired in childhood. These delayed costs may be much higher than what it would have required to design the code properly in the first place, simply because we need to re-learn a part of the solution domain that is no longer fresh in our head. Moved on: with difficulty and labour hee. One might be that it's dead code, which means it can be safely deleted (always a win). Anyone can write something, post it, and call it an article in the information age, the definition of an article has become a very blurred line. I dreamed I dwelt in marble halls, What I have most wanted to do throughout the past ten yens is to make political writing into an art. For this and other reasons I was somewhat lonely, and I soon developed disagreeable mannerisms which made me unpopular throughout my schooldays. And looking back through my work, I see that it is invariably where I lacked apolitical purpose that I wrote lifeless books and was betrayed into purple passages, sentences without meaning, decorative adjectives and humbug generally. A text message? All ignorant we dared to own By the end of 7935 I had still failed to reach a firm decision. It can be seen how these various impulses must war against one another, and how they must fluctuate from person to person and from time to time. The joys we now dissemble; First of all, I know exactly how healthy my code is. But side by side with all this, for fifteen years or more, I was carrying out a literary exercise of a quite different kind: this was the making up of a continuous story about myself, a sort of diary existing only in the mind. The same goes for design principles like loose coupling, high cohesion, and DRY -- none of those matter unless we have to revisit the code again. The eunuch without a harem; So what would we do differently in this hypothetical scenario? For the past ten years, weve seen hundreds of thousands of people I give all this background information because I do not think one can assess a writers motives without knowing something of his early development. The Spanish war and other events in 1936-7 turned the scale and thereafter I knew where I stood. In a peaceful age I might have written .ornate or merely descriptive books, and might have remained almost unaware of my political loyalties. Or I decide to add one more parameter to a function instead of looking for a concept to encapsulate. seriously intended writing which I produced all through my childhood and boyhood would not amount to half a dozen pages. A check? The key concept I use for code quality decisions is hotspots. The job is to reconcile my ingrained likes and dislikes with the essentially public, non-individual activities that this age forces on all of us. I also, about twice, attempted a short story which was a ghastly failure. When I reason about code, I'm not only looking at the code. As it is I have been forced into becoming a sort of pamphleteer. Adam's other interests include modern history, music, and martial arts. To preach upon eternal doom It's been a real game changer that I'm taking full advantage of. When operating in the long tail, I might not put the full effort into making the code easily testable, but I do like to leave a test as a safety-net for my future self. What did you write today? All writers are vain, selfish and lazy, and at the very bottom of their motives there lies a mystery. Apart from school work, I wrote vers doccasion, semi-comic poems which I could turn out at what now seems to me astonishing speed at fourteen I wrote a whole rhyming play, in imitation of Aristophanes, in about a week and helped to edit school magazines, both printed and in manuscript. This increased my natural hatred of authority and made me for the first time fully aware of the existence of the working classes, and the job in Burma had given me some understanding of the nature of imperialism: but these experiences were not enough to give me an accurate political orientation. That is, you can take on technical debt strategically. I dont want to leave that as the final impression. Even if you dont need to write on a deadline, set deadlines for yourself. And if you balance the amount of debt you take on based on the hotspot criteria, then it might even become an interest free loan. But I only compromise quality in the long tail, and I only do it if I estimate that it will save me time. The lines from Paradise Lost. Summary: The urge to write can be a mysterious calling. Well, code comments would be the first thing to go -- the machine doesn't care about them anyway, and since the code won't ever be touched again, comments don't serve any real need. It is forbidden to dream again; He's the founder of Empear where he designs the CodeScene tool for software analysis. It's all about using data to guide when and where to invest in higher code quality, and how it can be a long-term saving to compromise it. I covered this in Software Design X-Rays under the title Your Best Bug Fix Is Time. So far I've talked about the economics of knowing when -- and when not -- to invest in code quality. 4) Political purpose using the word political in the widest possible sense. As for the need to describe things, I knew all about it already. As a very small child I used to imagine that I was, say, Robin Hood, and picture myself as the hero of thrilling adventures, but quite soon my story ceased to be narcissistic in a crude way and became more and more a mere description of what I was doing and the things I saw. 3) Historical impulse. Code quality is a broad and ill-defined concept. Or maybe I decide to squeeze in an extra if-statement in already tricky code. But could it also be a viable long-term saving? That research finds that a module which is a year older than a similar module has roughly one-third fewer defects. This habit continued till I was about twenty-five, right through my non-literary years. Let's start by uncovering the motivation for investing in code quality. Nevertheless the volume of serious i.e. It is simply a question of which side one takes and what approach one follows. Although I had to search, and did search, for the right words, I seemed to be making this descriptive effort almost against my will, under a kind of compulsion from outside. Code stabilizes for different reasons. And the more one is conscious of ones political bias, the more chance one has of acting politically without sacrificing ones aesthetic and intellectual integrity. Can we trade quality for speed in the long run as well? And watch my walnuts grow. It raises problems of construction and of language, and it raises in a new way the problem of truthfulness. And later still the times were good, But there's a different perspective too, and it's an argument about correctness. etc. And woke to find it true; Their collective voices are raising the volume on this issue. The reason being that code is read exceedingly more often than it's modified. I cannot remember anything about it except that it was about a tiger and the tiger had chair-like teeth -a good enough phrase, but I fancy the poem was a plagiarism of Blakes Tiger, Tiger. It's code that's worked on often, and hence code that has to be read and understood frequently, potentially by multiple authors. In a peaceful age I might have written .ornate or merely descriptive books, and might have remained almost unaware of my political loyalties. When I sit down to write a book, I do not say to myself, I am going to produce a work of art. I write it because there is some lie that I want to expose, some fact to which I want to draw attention, and my initial concern is to get a hearing. Horses are made of chromium steel Not only will this make life simpler for my colleagues; my future self is going to love me as well.