1<!DOCTYPE html> 2<html class="avada-html-layout-wide avada-html-header-position-top avada-is-100-percent-template" lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#" prefix="og: https://ogp.me/ns#"> 3<head> 4 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 6 <meta name="viewport" content="width=device-width, initial-scale=1" /> 7 8<!-- Search Engine Optimization by Rank Math - https://rankmath.com/ --> 9<title>Articles | Steve McConnell</title> 10<meta name="description" content="Steve McConnell, author of Code Complete, has been published in a variety of magazines, like IEEE Software and more. Check out his articles here!"/> 11<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/> 12<link rel="canonical" href="https://stevemcconnell.com/articles/" /> 13<meta property="og:locale" content="en_US" /> 14<meta property="og:type" content="article" /> 15<meta property="og:title" content="Articles | Steve McConnell" /> 16<meta property="og:description" content="Steve McConnell, author of Code Complete, has been published in a variety of magazines, like IEEE Software and more. Check out his articles here!" /> 17<meta property="og:url" content="https://stevemcconnell.com/articles/" /> 18<meta property="og:site_name" content="Steve McConnell" /> 19<meta property="article:publisher" content="https://www.facebook.com/SteveMcConnellConstrux" /> 20<meta property="article:author" content="https://www.facebook.com/stevemcc" /> 21<meta property="og:updated_time" content="2019-09-27T20:33:52+00:00" /> 22<meta property="og:image" content="https://stevemcconnell.com/wp-content/uploads/2017/08/steve-mcconnell-construx-ceo.jpg" /> 23<meta property="og:image:secure_url" content="https://stevemcconnell.com/wp-content/uploads/2017/08/steve-mcconnell-construx-ceo.jpg" /> 24<meta property="og:image:width" content="600" /> 25<meta property="og:image:height" content="400" /> 26<meta property="og:image:alt" content="Articles" /> 27<meta property="og:image:type" content="image/jpeg" /> 28<meta property="article:published_time" content="2017-08-04T00:58:24+00:00" /> 29<meta property="article:modified_time" content="2019-09-27T20:33:52+00:00" /> 30<meta name="twitter:card" content="summary_large_image" /> 31<meta name="twitter:title" content="Articles | Steve McConnell" /> 32<meta name="twitter:description" content="Steve McConnell, author of Code Complete, has been published in a variety of magazines, like IEEE Software and more. Check out his articles here!" /> 33<meta name="twitter:site" content="@stevemconstrux" /> 34<meta name="twitter:creator" content="@stevemconstrux" /> 35<meta name="twitter:image" content="https://stevemcconnell.com/wp-content/uploads/2017/08/steve-mcconnell-construx-ceo.jpg" /> 36<meta name="twitter:label1" content="Time to read" /> 37<meta name="twitter:data1" content="3 minutes" />
38<script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":["Person","Organization"],"@id":"https://stevemcconnell.com/#person","name":"Steve McConnell","sameAs":["https://www.facebook.com/SteveMcConnellConstrux","https://twitter.com/stevemconstrux"],"logo":{"@type":"ImageObject","@id":"https://stevemcconnell.com/#logo","url":"https://stevemcconnell.com/wp-content/uploads/2020/06/Steve-McConnell.jpg","contentUrl":"https://stevemcconnell.com/wp-content/uploads/2020/06/Steve-McConnell.jpg","caption":"Steve McConnell","inLanguage":"en-US","width":"288","height":"288"},"image":{"@type":"ImageObject","@id":"https://stevemcconnell.com/#logo","url":"https://stevemcconnell.com/wp-content/uploads/2020/06/Steve-McConnell.jpg","contentUrl":"https://stevemcconnell.com/wp-content/uploads/2020/06/Steve-McConnell.jpg","caption":"Steve McConnell","inLanguage":"en-US","width":"288","height":"288"}},{"@type":"WebSite","@id":"https://stevemcconnell.com/#website","url":"https://stevemcconnell.com","name":"Steve McConnell","publisher":{"@id":"https://stevemcconnell.com/#person"},"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https://stevemcconnell.com/wp-content/uploads/2017/08/steve-mcconnell-construx-ceo.jpg","url":"https://stevemcconnell.com/wp-content/uploads/2017/08/steve-mcconnell-construx-ceo.jpg","width":"600","height":"400","inLanguage":"en-US"},{"@type":"WebPage","@id":"https://stevemcconnell.com/articles/#webpage","url":"https://stevemcconnell.com/articles/","name":"Articles | Steve McConnell","datePublished":"2017-08-04T00:58:24+00:00","dateModified":"2019-09-27T20:33:52+00:00","isPartOf":{"@id":"https://stevemcconnell.com/#website"},"primaryImageOfPage":{"@id":"https://stevemcconnell.com/wp-content/uploads/2017/08/steve-mcconnell-construx-ceo.jpg"},"inLanguage":"en-US"},{"@type":"Person","@id":"https://stevemcconnell.com/author/steve/","name":"Steve McConnell","url":"https://stevemcconnell.com/author/steve/","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/8f6d09acb1ebe757ec355f7aade137421a298ad5008786617d13e0d3cf7fffda?s=96&d=mm&r=g","url":"https://secure.gravatar.com/avatar/8f6d09acb1ebe757ec355f7aade137421a298ad5008786617d13e0d3cf7fffda?s=96&d=mm&r=g","caption":"Steve McConnell","inLanguage":"en-US"}},{"@type":"Article","headline":"Articles | Steve McConnell","datePublished":"2017-08-04T00:58:24+00:00","dateModified":"2019-09-27T20:33:52+00:00","author":{"@id":"https://stevemcconnell.com/author/steve/","name":"Steve McConnell"},"publisher":{"@id":"https://stevemcconnell.com/#person"},"description":"Steve McConnell, author of Code Complete, has been published in a variety of magazines, like IEEE Software and more. Check out his articles here!","name":"Articles | Steve McConnell","@id":"https://stevemcconnell.com/articles/#richSnippet","isPartOf":{"@id":"https://stevemcconnell.com/articles/#webpage"},"image":{"@id":"https://stevemcconnell.com/wp-content/uploads/2017/08/steve-mcconnell-construx-ceo.jpg"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://stevemcconnell.com/articles/#webpage"}}]}</script>
38 39<!-- /Rank Math WordPress SEO plugin --> 40 41<link rel='dns-prefetch' href='//static.addtoany.com' /> 42<link rel="alternate" type="application/rss+xml" title="Steve McConnell » Feed" href="https://stevemcconnell.com/feed/" /> 43<link rel="alternate" type="application/rss+xml" title="Steve McConnell » Comments Feed" href="https://stevemcconnell.com/comments/feed/" /> 44 <link rel="icon" href="https://stevemcconnell.com/wp-content/uploads/2017/08/steve-mcconnell-favicon.png" type="image/png" /> 45 46 47 48 <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://stevemcconnell.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fstevemcconnell.com%2Farticles%2F" /> 49<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://stevemcconnell.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fstevemcconnell.com%2Farticles%2F&format=xml" /> 50 <meta name="description" content="My Articles I wrote a regular column for IEEE Software from 1996-2002, and I've published articles from time to time in other periodicals. 51My Favorites 52I've been writing for a long time, and some of my"/> 53 54 <meta property="og:locale" content="en_US"/> 55 <meta property="og:type" content="article"/> 56 <meta property="og:site_name" content="Steve McConnell"/> 57 <meta property="og:title" content="Articles | Steve McConnell"/> 58 <meta property="og:description" content="My Articles I wrote a regular column for IEEE Software from 1996-2002, and I've published articles from time to time in other periodicals. 59My Favorites 60I've been writing for a long time, and some of my"/> 61 <meta property="og:url" content="https://stevemcconnell.com/articles/"/> 62 <meta property="article:modified_time" content="2019-09-27T20:33:52+00:00"/> 63 <meta property="og:image" content="https://stevemcconnell.com/wp-content/uploads/2017/08/steve-mcconnell-wordmark.png"/> 64 <meta property="og:image:width" content="250"/> 65 <meta property="og:image:height" content="60"/> 66 <meta property="og:image:type" content="image/png"/> 67 <style id="wp-img-auto-sizes-contain-inline-css"> 68img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 69/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 70</style> 71<link rel='stylesheet' id='wpmf-avada-style-css' href='https://stevemcconnell.com/wp-content/plugins/wp-media-folder//assets/css/avada_style.css?ver=5.4.7' media='all' /> 72<link rel='stylesheet' id='pdfemba_embed_pdf_css-css' href='https://stevemcconnell.com/wp-content/plugins/wp-media-folder/assets/css/pdfemb-embed-pdf.css?ver=c311024b5902b5ec174695ee85b42c56' media='all' /> 73<link rel='stylesheet' id='wpmf-slick-style-css' href='https://stevemcconnell.com/wp-content/plugins/wp-media-folder/assets/js/slick/slick.css?ver=5.4.7' media='all' /> 74<link rel='stylesheet' id='wpmf-slick-theme-style-css' href='https://stevemcconnell.com/wp-content/plugins/wp-media-folder/assets/js/slick/slick-theme.css?ver=5.4.7' media='all' /> 75<link rel='stylesheet' id='wpmf-avada-gallery-style-css' href='https://stevemcconnell.com/wp-content/plugins/wp-media-folder/assets/css/display-gallery/style-display-gallery.css?ver=5.4.7' media='all' /> 76<style id="wp-emoji-styles-inline-css"> 77 78 img.wp-smiley, img.emoji { 79 display: inline !important; 80 border: none !important; 81 box-shadow: none !important; 82 height: 1em !important; 83 width: 1em !important; 84 margin: 0 0.07em !important; 85 vertical-align: -0.1em !important; 86 background: none !important; 87 padding: 0 !important; 88 } 89/*# sourceURL=wp-emoji-styles-inline-css */ 90</style> 91 92<style id="global-styles-inline-css"> 93:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--awb-color-1: #ffffff;--wp--preset--color--awb-color-2: #f6f6f6;--wp--preset--color--awb-color-3: #ebeaea;--wp--preset--color--awb-color-4: #e0dede;--wp--preset--color--awb-color-5: #35cdff;--wp--preset--color--awb-color-6: #35cdff;--wp--preset--color--awb-color-7: #747474;--wp--preset--color--awb-color-8: #333333;--wp--preset--color--awb-color-custom-10: #cccccc;--wp--preset--color--awb-color-custom-11: #4a81d3;--wp--preset--color--awb-color-custom-12: rgba(235,234,234,0.8);--wp--preset--color--awb-color-custom-13: #f8f8f8;--wp--preset--color--awb-color-custom-14: #f9f9f9;--wp--preset--color--awb-color-custom-15: #000000;--wp--preset--color--awb-color-custom-16: #363839;--wp--preset--color--awb-color-custom-17: #dddddd;--wp--preset--color--awb-color-custom-18: #e8e8e8;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
930) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 12px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 24px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 16px;--wp--preset--font-size--xlarge: 32px;--wp--preset--font-size--huge: 48px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-awb-color-1-color{color: var(--wp--preset--color--awb-color-1) !important;}.has-awb-color-2-color{color: var(--wp--preset--color--awb-color-2) !important;}.has-awb-color-3-color{color: var(--wp--preset--color--awb-color-3) !important;}.has-awb-color-4-color{color: var(--wp--preset--color--awb-color-4) !important;}.has-awb-color-5-color{color: var(--wp--preset--color--awb-color-5) !important;}.has-awb-color-6-color{color: var(--wp--preset--color--awb-color-6) !important;}.has-awb-color-7-color{color: var(--wp--preset--color--awb-color-7) !important;}.has-awb-color-8-color{color: var(--wp--preset--color--awb-color-8) !important;}.has-awb-color-custom-10-color{color: var(--wp--preset--color--awb-color-custom-10) !important;}.has-awb-color-custom-11-color{color: var(--wp--preset--color--awb-color-custom-11) !important;}.has-awb-color-custom-12-color{color: var(--wp--preset--color--awb-color-custom-12) !important;}.has-awb-color-custom-13-color{color: var(--wp--preset--color--awb-color-custom-13) !important;}.has-awb-color-custom-14-color{color: var(--wp--preset--color--awb-color-custom-14) !important;}.has-awb-color-custom-15-color{color: var(--wp--preset--color--awb-color-custom-15) !important;}.has-awb-color-custom-16-color{color: var(--wp--preset--color--awb-color-custom-16) !important;}.has-awb-color-custom-17-color{color: var(--wp--preset--color--awb-color-custom-17) !important;}.has-awb-color-custom-18-color{color: var(--wp--preset--color--awb-color-custom-18) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-awb-color-1-background-color{background-color: var(--wp--preset--color--awb-color-1) !important;}.has-awb-color-2-background-color{background-color: var(--wp--preset--color--awb-color-2) !important;}.has-awb-color-3-background-color{background-color: var(--wp--preset--color--awb-color-3) !important;}.has-awb-color-4-background-color{background-color: var(--wp--preset--color--awb-color-4) !important;}.has-awb-color-5-background-color{background-color: var(--wp--preset--color--awb-color-5) !important;}.has-awb-color-6-background-color{background-color: var(--wp--preset--color--awb-color-6) !important;}.has-awb-color-7-background-color{background-color: var(--wp--preset--color--awb-color-7) !important;}.has-awb-color-8-background-color{background-color: var(--wp--preset--color--awb-color-8) !important;}.has-awb-color-custom-10-background-color{background-color: var(--wp--preset--color--awb-color-custom-10) !important;}.has-awb-color-custom-11-background-color{background-color: var(--wp--preset--color--awb-color-custom-11) !important;}.has-awb-color-custom-12-background-color{background-color: var(--wp--preset--color--awb-color-custom-12) !important;}.has-awb-color-custom-13-background-color{background-color: var(--wp--preset--color--awb-color-custom-13) !important;}.has-awb-color-custom-14-background-color{background-color: var(--wp--preset--color--awb-color-custom-14) !important;}.has-awb-color-custom-15-background-color{background-color: var(--wp--preset--color--awb-color-custom-15) !important;}.has-awb-color-custom-16-background-color{background-color: var(--wp--preset--color--awb-color-custom-16) !important;}.has-awb-color-custom-17-background-color{background-color: var(--wp--preset--color--awb-color-custom-17) !important;}.has-awb-color-custom-18-background-color{background-color: var(--wp--preset--color--awb-color-custom-18) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-awb-color-1-border-color{border-color: var(--wp--preset--color--awb-color-1) !important;}.has-awb-color-2-border-color{border-color: var(--wp--preset--color--awb-color-2) !important;}.has-awb-color-3-border-color{border-color: var(--wp--preset--color--awb-color-3) !important;}.has-awb-color-4-border-color{border-color: var(--wp--preset--color--awb-color-4) !important;}.has-awb-color-5-border-color{border-color: var(--wp--preset--color--awb-color-5) !important;}.has-awb-color-6-border-color{border-color: var(--wp--preset--color--awb-color-6) !important;}.has-awb-color-7-border-color{border-color: var(--wp--preset--color--awb-color-7) !important;}.has-awb-color-8-border-color{border-color: var(--wp--preset--color--awb-color-8) !important;}.has-awb-color-custom-10-border-color{border-color: var(--wp--preset--color--awb-color-custom-10) !important;}.has-awb-color-custom-11-border-color{border-color: var(--wp--preset--color--awb-color-custom-11) !important;}.has-awb-color-custom-12-border-color{border-color: var(--wp--preset--color--awb-color-custom-12) !important;}.has-awb-color-custom-13-border-color{border-color: var(--wp--preset--color--awb-color-custom-13) !important;}.has-awb-color-custom-14-border-color{border-color: var(--wp--preset--color--awb-color-custom-14) !important;}.has-awb-color-custom-15-border-color{border-color: var(--wp--preset--color--awb-color-custom-15) !important;}.has-awb-color-custom-16-border-color{border-color: var(--wp--preset--color--awb-color-custom-16) !important;}.has-awb-color-custom-17-border-color{border-color: var(--wp--preset--color--awb-color-custom-17) !important;}.has-awb-color-custom-18-border-color{border-color: var(--wp--preset--color--awb-color-custom-18) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
93.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-normal-font-size{font-size: var(--wp--preset--font-size--normal) !important;}.has-xlarge-font-size{font-size: var(--wp--preset--font-size--xlarge) !important;}.has-huge-font-size{font-size: var(--wp--preset--font-size--huge) !important;} 94/*# sourceURL=global-styles-inline-css */ 95</style> 96 97<link rel='stylesheet' id='pdfp-public-css' href='https://stevemcconnell.com/wp-content/plugins/pdf-poster/build/public.css?ver=2.6.1' media='all' /> 98<link rel='stylesheet' id='addtoany-css' href='https://stevemcconnell.com/wp-content/plugins/add-to-any/addtoany.min.css?ver=1.16' media='all' /> 99<link rel='stylesheet' id='fusion-dynamic-css-css' href='https://stevemcconnell.com/wp-content/uploads/fusion-styles/0bcd6ba5e90b1a4439932baacaf48299.min.css?ver=3.15.0' media='all' />
100<script id="addtoany-core-js-before"> 101window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={}; 102 103//# sourceURL=addtoany-core-js-before 104</script>
vendor: 1 bytes, line 104
104
105<script id="addtoany-core-js" defer src="https://static.addtoany.com/menu/page.js"></script>
vendor: 1 bytes, line 105
105
106<script id="jquery-core-js" src="https://stevemcconnell.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 106
106
107<script id="jquery-migrate-js" src="https://stevemcconnell.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 107
107
108<script id="addtoany-jquery-js" defer src="https://stevemcconnell.com/wp-content/plugins/add-to-any/addtoany.min.js?ver=1.1"></script>
108 109<link rel="https://api.w.org/" href="https://stevemcconnell.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://stevemcconnell.com/wp-json/wp/v2/pages/16" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://stevemcconnell.com/xmlrpc.php?rsd" /> 110<style> 111 </style> 112<style type="text/css" id="css-fb-visibility">@media screen and (max-width: 640px){.fusion-no-small-visibility{display:none !important;}body .sm-text-align-center{text-align:center !important;}body .sm-text-align-left{text-align:left !important;}body .sm-text-align-right{text-align:right !important;}body .sm-text-align-justify{text-align:justify !important;}body .sm-flex-align-center{justify-content:center !important;}body .sm-flex-align-flex-start{justify-content:flex-start !important;}body .sm-flex-align-flex-end{justify-content:flex-end !important;}body .sm-mx-auto{margin-left:auto !important;margin-right:auto !important;}body .sm-ml-auto{margin-left:auto !important;}body .sm-mr-auto{margin-right:auto !important;}body .fusion-absolute-position-small{position:absolute;width:100%;}.awb-sticky.awb-sticky-small{ position: sticky; top: var(--awb-sticky-offset,0); }}@media screen and (min-width: 641px) and (max-width: 1024px){.fusion-no-medium-visibility{display:none !important;}body .md-text-align-center{text-align:center !important;}body .md-text-align-left{text-align:left !important;}body .md-text-align-right{text-align:right !important;}body .md-text-align-justify{text-align:justify !important;}body .md-flex-align-center{justify-content:center !important;}body .md-flex-align-flex-start{justify-content:flex-start !important;}body .md-flex-align-flex-end{justify-content:flex-end !important;}body .md-mx-auto{margin-left:auto !important;margin-right:auto !important;}body .md-ml-auto{margin-left:auto !important;}body .md-mr-auto{margin-right:auto !important;}body .fusion-absolute-position-medium{position:absolute;width:100%;}.awb-sticky.awb-sticky-medium{ position: sticky; top: var(--awb-sticky-offset,0); }}@media screen and (min-width: 1025px){.fusion-no-large-visibility{display:none !important;}body .lg-text-align-center{text-align:center !important;}body .lg-text-align-left{text-align:left !important;}body .lg-text-align-right{text-align:right !important;}body .lg-text-align-justify{text-align:justify !important;}body .lg-flex-align-center{justify-content:center !important;}body .lg-flex-align-flex-start{justify-content:flex-start !important;}body .lg-flex-align-flex-end{justify-content:flex-end !important;}body .lg-mx-auto{margin-left:auto !important;margin-right:auto !important;}body .lg-ml-auto{margin-left:auto !important;}body .lg-mr-auto{margin-right:auto !important;}body .fusion-absolute-position-large{position:absolute;width:100%;}.awb-sticky.awb-sticky-large{ position: sticky; top: var(--awb-sticky-offset,0); }}</style><style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
112<script type="text/javascript"> 113 var doc = document.documentElement; 114 doc.setAttribute( 'data-useragent', navigator.userAgent ); 115 </script>
115 116 117 <style id="wp-block-library-inline-css"> 118:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
118--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-color]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 119/*wp_block_styles_on_demand_placeholder:6ab56b6a58e1b*/ 120/*# sourceURL=wp-block-library-inline-css */ 121</style> 122<style id="wp-block-library-theme-inline-css"> 123.wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote :where(cite),.wp-block-pullquote :where(footer),.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} 124/*# sourceURL=/wp-includes/css/dist/block-library/theme.min.css */ 125</style> 126<style id="classic-theme-styles-inline-css"> 127/*! This file is auto-generated */ 128.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;
128padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 129/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 130</style> 131 132</head> 133 134<body data-rsssl=1 class="wp-singular page-template page-template-100-width page-template-100-width-php page page-id-16 page-parent wp-theme-Avada fusion-image-hovers fusion-pagination-sizing fusion-button_type-flat fusion-button_span-no fusion-button_gradient-linear avada-image-rollover-circle-yes avada-image-rollover-yes avada-image-rollover-direction-left fusion-body ltr fusion-sticky-header no-tablet-sticky-header no-mobile-sticky-header no-mobile-slidingbar no-mobile-totop avada-has-rev-slider-styles fusion-disable-outline fusion-sub-menu-fade mobile-logo-pos-center layout-wide-mode avada-has-boxed-modal-shadow- layout-scroll-offset-full avada-has-zero-margin-offset-top fusion-top-header menu-text-align-center mobile-menu-design-modern fusion-show-pagination-text fusion-header-layout-v3 avada-responsive avada-footer-fx-none avada-menu-highlight-style-bottombar fusion-search-form-classic fusion-main-menu-search-overlay fusion-avatar-square avada-sticky-shrinkage avada-dropdown-styles avada-blog-layout-medium avada-blog-archive-layout-large avada-header-shadow-no avada-menu-icon-position-left avada-has-megamenu-shadow avada-has-mainmenu-dropdown-divider avada-has-header-100-width avada-has-main-nav-search-icon avada-has-breadcrumb-mobile-hidden avada-has-titlebar-hide avada-has-pagination-padding avada-flyout-menu-direction-fade avada-ec-views-v1" data-awb-post-id="16"> 135 <a class="skip-link screen-reader-text" href="#content">Skip to content</a> 136 137 <div id="boxed-wrapper"> 138 139 <div id="wrapper" class="fusion-wrapper"> 140 <div id="home" style="position:relative;top:-1px;"></div> 141 142 143 <header class="fusion-header-wrapper"> 144 <div class="fusion-header-v3 fusion-logo-alignment fusion-logo-center fusion-sticky-menu- fusion-sticky-logo- fusion-mobile-logo- fusion-mobile-menu-design-modern"> 145 146<div class="fusion-secondary-header"> 147 <div class="fusion-row"> 148 <div class="fusion-alignright"> 149 <div class="fusion-social-links-header"><div class="fusion-social-networks"><div class="fusion-social-networks-wrapper"><a class="fusion-social-network-icon fusion-tooltip fusion-linkedin awb-icon-linkedin" style data-placement="bottom" data-title="LinkedIn" data-toggle="tooltip" title="LinkedIn" href="https://www.linkedin.com/in/stevemcc" target="_blank" rel="noopener noreferrer"><span class="screen-reader-text">LinkedIn</span></a><a class="fusion-social-network-icon fusion-tooltip fusion-facebook awb-icon-facebook" style data-placement="bottom" data-title="Facebook" data-toggle="tooltip" title="Facebook" href="https://www.facebook.com/SteveMcConnellConstrux/" target="_blank" rel="noreferrer"><span class="screen-reader-text">Facebook</span></a><a class="fusion-social-network-icon fusion-tooltip fusion-twitter awb-icon-twitter" style data-placement="bottom" data-title="X" data-toggle="tooltip" title="X" href="https://twitter.com/stevemconstrux?lang=en" target="_blank" rel="noopener noreferrer"><span class="screen-reader-text">X</span></a><a class="fusion-social-network-icon fusion-tooltip fusion-mail awb-icon-mail" style data-placement="bottom" data-title="Email" data-toggle="tooltip" title="Email" href="mailto:stevemcc@construx.com?subject=Mail from Steve McConnell's website" target="_self" rel="noopener noreferrer"><span class="screen-reader-text">Email</span></a></div></div></div> </div> 150 </div> 151</div> 152<div class="fusion-header-sticky-height"></div> 153<div class="fusion-header"> 154 <div class="fusion-row"> 155 <div class="fusion-logo" data-margin-top="10px" data-margin-bottom="10px" data-margin-left="0px" data-margin-right="0px"> 156 <a class="fusion-logo-link" href="https://stevemcconnell.com/" > 157 158 <!-- standard logo --> 159 <img src="https://stevemcconnell.com/wp-content/uploads/2017/08/steve-mcconnell-wordmark.png" srcset="https://stevemcconnell.com/wp-content/uploads/2017/08/steve-mcconnell-wordmark.png 1x" width="250" height="60" alt="Steve McConnell Logo" data-retina_logo_url="" class="fusion-standard-logo" /> 160 161 162 </a> 163 </div> <nav class="fusion-main-menu" aria-label="Main Menu"><div class="fusion-overlay-search"> <form role="search" class="searchform fusion-search-form fusion-search-form-classic" method="get" action="https://stevemcconnell.com/"> 164 <div class="fusion-search-form-content"> 165 166 167 <div class="fusion-search-field search-field"> 168 <label><span class="screen-reader-text">Search for:</span> 169 <input type="search" value="" name="s" class="s" placeholder="Search..." required aria-required="true" aria-label="Search..."/> 170 </label>
171 </div> 172 <div class="fusion-search-button search-button"> 173 <input type="submit" class="fusion-search-submit searchsubmit" aria-label="Search" value="" /> 174 </div> 175 176 177 </div> 178 179 180 181 </form> 182 <div class="fusion-search-spacer"></div><a href="#" role="button" aria-label="Close Search" class="fusion-close-search"></a></div><ul id="menu-main-menu" class="fusion-menu"><li id="menu-item-210" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-210 fusion-dropdown-menu" data-item-id="210"><a href="#" class="fusion-bottombar-highlight"><span class="menu-text">Books & Articles</span></a><ul class="sub-menu"><li id="menu-item-25" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25 fusion-dropdown-submenu" ><a href="https://stevemcconnell.com/books/" class="fusion-bottombar-highlight"><span>Books</span></a></li><li id="menu-item-17" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-16 current_page_item menu-item-17 fusion-dropdown-submenu" ><a href="https://stevemcconnell.com/articles/" class="fusion-bottombar-highlight"><span>Articles</span></a></li></ul></li><li id="menu-item-5058" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5058" data-item-id="5058"><a href="https://stevemcconnell.com/cdc-covid-19-forecast-evaluations/" class="fusion-bottombar-highlight"><span class="menu-text">Forecasting & Estimation</span></a></li><li id="menu-item-54" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-54" data-item-id="54"><a href="https://stevemcconnell.com/bio/" class="fusion-bottombar-highlight"><span class="menu-text">Media Kit</span></a></li><li id="menu-item-27" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27" data-item-id="27"><a href="https://stevemcconnell.com/contact/" class="fusion-bottombar-highlight"><span class="menu-text">Get in Touch</span></a></li><li class="fusion-custom-menu-item fusion-main-menu-search fusion-search-overlay"><a class="fusion-main-menu-icon" href="#" aria-label="Search" data-title="Search" title="Search" role="button" aria-expanded="false"></a></li></ul></nav> <div class="fusion-mobile-menu-icons"> 183 <a href="#" class="fusion-icon awb-icon-bars" aria-label="Toggle mobile menu" aria-expanded="false"></a> 184 185 186 187 </div> 188 189<nav class="fusion-mobile-nav-holder fusion-mobile-menu-text-align-left" aria-label="Main Menu Mobile"></nav> 190 191 </div> 192</div> 193 </div> 194 <div class="fusion-clearfix"></div> 195 </header> 196 197 <div id="sliders-container" class="fusion-slider-visibility"> 198 </div> 199 200 201 202 203 <main id="main" class="clearfix width-100"> 204 <div class="fusion-row" style="max-width:100%;"> 205<section id="content" class="full-width"> 206 <div id="post-16" class="post-16 page type-page status-publish hentry"> 207 <span class="entry-title rich-snippet-hidden">Articles</span><span class="vcard rich-snippet-hidden"><span class="fn"><a href="https://stevemcconnell.com/author/steve/" rel="author">Steve McConnell</a></span></span><span class="updated rich-snippet-hidden">2019-09-27T20:33:52+00:00</span> <div class="post-content"> 208 <div class="fusion-fullwidth fullwidth-box fusion-builder-row-1 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:0px;--awb-padding-bottom:0px;--awb-margin-top:0px;--awb-margin-bottom:0px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last" style="--awb-padding-top:0px;--awb-padding-bottom:0px;--awb-bg-size:cover;--awb-margin-bottom:0px;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-column-wrapper-legacy"><div class="fusion-title title fusion-title-1 fusion-title-text fusion-title-size-one" style="--awb-margin-top-small:0px;--awb-margin-right-small:0px;--awb-margin-bottom-small:15px;--awb-margin-left-small:0px;"><h1 class="fusion-title-heading title-heading-left" style="margin:0;">My Articles</h1><span class="awb-title-spacer"></span><div class="title-sep-container"><div class="title-sep sep-double sep-solid" style="border-color:#e0dede;"></div></div></div><div class="fusion-clearfix"></div></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-2 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-background-position:left top;--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:0px;--awb-padding-bottom:0px;--awb-border-sizes-top:0px;--awb-border-sizes-bottom:0px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last" style="--awb-padding-bottom:0px;--awb-bg-size:cover;--awb-margin-bottom:0px;"><div class="fusion-column-wrapper fusion-flex-column-wrapper-legacy"><div class="fusion-text fusion-text-1"><p><span style="background-color: rgba(255, 255, 255, 0); color: var(--body_typography-color); font-family: var(--body_typography-font-family); font-size: var(--body_typography-font-size); font-style: var(--body_typography-font-style,normal); font-weight: var(--body_typography-font-weight); letter-spacing: var(--body_typography-letter-spacing);">I wrote a regular column for IEEE Software from 1996-2002, and I’ve published articles from time to time in other periodicals. </span></p> 209<h2>My Favorites</h2> 210<p>I’ve been writing for a long time, and some of my articles have stood the test of time better than others. Here are my favorites:</p> 211<ul> 212<li><a href="https://stevemcconnell.com/articles/cargo-cult-software-engineering">Cargo Cult Software Engineering</a></li> 213<li><a href="https://stevemcconnell.com/articles/real-quality-for-real-engineers">Real Quality for Real Engineers</a></li> 214<li><a href="https://stevemcconnell.com/articles/sitting-on-the-suitcase">Sitting on the Suitcase</a></li> 215<li><a href="https://stevemcconnell.com/articles/brooks-law-repealed">Brooks’ Law Repealed?</a></li> 216<li><a href="https://stevemcconnell.com/articles/after-the-gold-rush">After the Gold Rush</a></li> 217<li><a href="https://stevemcconnell.com/articles/how-to-read-a-technical-article">How to Read a Technical Article</a></li> 218<li><a href="https://stevemcconnell.com/articles/how-to-write-a-good-technical-article">How to Write a Good Technical Article</a></li> 219</ul> 220<h2>IEEE Software</h2> 221<p>Here are all of my “From the Editor” columns from <i>IEEE Software</i></p> 222<ul> 223<li><a href="/articles/changing-of-the-guard/">Changing of the Guard</a></li> 224<li><a href="/articles/how-to-write-a-good-technical-article">How to Write a Good Technical Article</a></li> 225<li><a href="/articles/business-of-software-improvement">
225The Business of Software Improvement</a></li> 226<li><a href="/articles/i-know-what-i-know">I Know What I Know</a></li> 227<li><a href="/articles/real-quality-for-real-engineers">Real Quality for Real Engineers</a></li> 228<li><a href="/articles/closing-the-gap">Closing the Gap</a></li> 229<li><a href="/articles/raising-your-software-consciousness">Raising Your Software Consciousness</a></li> 230<li><a href="/articles/nine-deadly-sins-of-project-planning">Nine Deadly Sins of Project Planning</a></li> 231<li><a href="/articles/common-sense">Common Sense</a></li> 232<li><a href="/articles/an-ounce-of-prevention">An Ounce of Prevention</a></li> 233<li><a href="/articles/art-science-and-engineering">Art, Science, and Engineering</a></li> 234<li><a href="/articles/who-needs-software-engineering">Who Needs Software Engineering?</a></li> 235<li><a href="/articles/quantifying-soft-factors">Quantifying Soft Factors</a></li> 236<li><a href="/articles/whats-in-a-name">What’s In a Name?</a></li> 237<li><a href="/articles/the-software-managers-toolkit">The Software Manager’s Toolkit</a></li> 238<li><a href="/articles/sitting-on-the-suitcase">Sitting on the Suitcase</a></li> 239<li><a href="/articles/cargo-cult-software-engineering">Cargo Cult Software Engineering</a></li> 240<li><a href="/articles/10-best-influences-on-software-engineering">10 Best Influences on Software Engineering</a></li> 241<li><a href="/articles/brooks-law-repealed">Brooks’ Law Repealed?</a></li> 242<li><a href="/articles/update-on-professional-development">Update on Professional Development</a></li> 243<li><a href="/articles/open-source-methodology-ready-for-prime-time">Open Source Methodology: Ready for the Prime Time?</a></li> 244<li><a href="/articles/y2k-countdown-to-certification">Y2K: Countdown to Certification</a></li> 245<li><a href="/articles/software-engineering-principles">Software Engineering Principles</a></li> 246<li><a href="/articles/after-the-gold-rush">After the Gold Rush</a></li> 247<li><a href="/articles/how-to-read-a-technical-article">How to Read a Technical Article</a></li> 248<li><a href="/articles/building-the-community">Building the Community</a></li> 249</ul> 250<p>Here are all of my “Best Practices” columns from <i>IEEE Software</i></p> 251<ul> 252<li><a href="/articles/why-you-should-use-routines-routinely">Why You Should Use Routines, Routinely</a></li> 253<li><a href="/articles/feasibility-studies">Feasibility Studies</a></li> 254<li><a href="/articles/dealing-with-problem-programmers">Dealing with Problem Programmers</a></li> 255<li><a href="/articles/the-art-science-and-engineering-of-software-development">The Art, Science, and Engineering of Software Development</a></li> 256<li><a href="/articles/achieving-leaner-software">Achieving Leaner Software</a></li> 257<li><a href="/articles/tool-support-for-project-tracking">Tool Support for Project Tracking</a></li> 258<li><a href="/articles/the-programmer-writing">The Programmer Writing</a></li> 259<li><a href="/articles/gauging-software-readiness-with-defect-tracking">Gauging Software Readiness with Defect Tracking</a></li> 260<li><a href="/articles/software-ten-essentials">Software’s Ten Essentials</a></li> 261<li><a href="/articles/annualized-software-delivery">Annualized Software Delivery</a></li> 262<li><a href="/articles/keep-it-simple">Keep It Simple</a></li> 263<li><a href="/articles/classic-mistakes">Classic Mistakes</a></li> 264<li><a href="/articles/daily-build-and-smoke-test">Daily Build and Smoke Test</a></li> 265<li><a href="/articles/how-to-defend-an-unpopular-schedule">How to Defend an Unpopular Schedule</a></li> 266<li><a href="/articles/missing-in-action-information-hiding">Missing in Action: Information Hiding</a></li> 267<li><a href="/articles/who-cares-about-software-construction">Who Cares About Software Construction?</a></li> 268</ul> 269<h2>Other Articles</h2> 270<ul> 271<li><a href="/articles/the-power-of-process">The Power of Process</a>, IEEE Computer</li> 272<li><a href="/articles/managing-outsourced-projects">Managing Outsourced Projects</a>, Software Development</li> 273<li><a href="/articles/upstream-decisions-downstream-costs">Upstream Decisions, Downstream Costs</a>, Windows Tech Journal</li> 274<li><a href="/articles/less-is-more-jumpstarting-productivity-with-small-teams">Less is More: Jumpstarting Productivity with Small Teams</a>
274, Software Development</li> 275<li><a href="/articles/microsoft-a-highly-motivated-environment">Microsoft: A Highly Motivated Environment</a>, Software Practitioner</li> 276<li><a href="/articles/software-quality-at-top-speed">Software Quality at Top Speed</a>, Software Development</li> 277<li><a href="/articles/teach-programming-principles-not-tools-and-tips">Teach Programming Principles, Not ‘Tools and Tips’</a>, IEEE Computational Science and Engineering</li> 278<li><a href="/articles/from-anarchy-to-optimizing">From Anarchy to Optimizing</a>, Software Development</li> 279<li><a href="/articles/a-mission-and-an-adventure">A Mission and An Adventure: The Cultural Differences between Micro and Mainframe Programmers</a>, Software Practitioner</li> 280</ul> 281</div><div class="fusion-clearfix"></div></div></div></div></div> 282 </div> 283 </div> 284 </section> 285 286 </div> <!-- fusion-row --> 287 </main> <!-- #main --> 288 289 290 291 292 <div class="fusion-footer"> 293 294 295 <footer id="footer" class="fusion-footer-copyright-area"> 296 <div class="fusion-row"> 297 <div class="fusion-copyright-content"> 298 299 <div class="fusion-copyright-notice"> 300 <div> 301 Copyright Steve McConnell, All Rights Reserved | <a href="/contact">Contact</a> </div> 302</div> 303<div class="fusion-social-links-footer"> 304 <div class="fusion-social-networks"><div class="fusion-social-networks-wrapper"><a class="fusion-social-network-icon fusion-tooltip fusion-linkedin awb-icon-linkedin" style data-placement="top" data-title="LinkedIn" data-toggle="tooltip" title="LinkedIn" href="https://www.linkedin.com/in/stevemcc" target="_blank" rel="noopener noreferrer"><span class="screen-reader-text">LinkedIn</span></a><a class="fusion-social-network-icon fusion-tooltip fusion-facebook awb-icon-facebook" style data-placement="top" data-title="Facebook" data-toggle="tooltip" title="Facebook" href="https://www.facebook.com/SteveMcConnellConstrux/" target="_blank" rel="noreferrer"><span class="screen-reader-text">Facebook</span></a><a class="fusion-social-network-icon fusion-tooltip fusion-twitter awb-icon-twitter" style data-placement="top" data-title="X" data-toggle="tooltip" title="X" href="https://twitter.com/stevemconstrux?lang=en" target="_blank" rel="noopener noreferrer"><span class="screen-reader-text">X</span></a><a class="fusion-social-network-icon fusion-tooltip fusion-mail awb-icon-mail" style data-placement="top" data-title="Email" data-toggle="tooltip" title="Email" href="mailto:stevemcc@construx.com?subject=Mail from Steve McConnell's website" target="_self" rel="noopener noreferrer"><span class="screen-reader-text">Email</span></a></div></div></div> 305 306 </div> <!-- fusion-fusion-copyright-content --> 307 </div> <!-- fusion-row --> 308 </footer> <!-- #footer --> 309 </div> <!-- fusion-footer --> 310 311 312 </div> <!-- wrapper --> 313 </div> <!-- #boxed-wrapper --> 314 <a class="fusion-one-page-text-link fusion-page-load-link" tabindex="-1" href="#" aria-hidden="true">Page load link</a> 315 316 <div class="avada-footer-scripts"> 317
317<script type="text/javascript">var fusionNavIsCollapsed=function(e){var t,n;window.innerWidth<=e.getAttribute("data-breakpoint")?(e.classList.add("collapse-enabled"),e.classList.remove("awb-menu_desktop"),e.classList.contains("expanded")||window.dispatchEvent(new CustomEvent("fusion-mobile-menu-collapsed",{detail:{nav:e}})),(n=e.querySelectorAll(".menu-item-has-children.expanded")).length&&n.forEach(function(e){e.querySelector(".awb-menu__open-nav-submenu_mobile").setAttribute("aria-expanded","false")})):(null!==e.querySelector(".menu-item-has-children.expanded .awb-menu__open-nav-submenu_click")&&e.querySelector(".menu-item-has-children.expanded .awb-menu__open-nav-submenu_click").click(),e.classList.remove("collapse-enabled"),e.classList.add("awb-menu_desktop"),null!==e.querySelector(".awb-menu__main-ul")&&e.querySelector(".awb-menu__main-ul").removeAttribute("style")),e.classList.add("no-wrapper-transition"),clearTimeout(t),t=setTimeout(()=>{e.classList.remove("no-wrapper-transition")},400),e.classList.remove("loading")},fusionRunNavIsCollapsed=function(){var e,t=document.querySelectorAll(".awb-menu");for(e=0;e<t.length;e++)fusionNavIsCollapsed(t[e])};function avadaGetScrollBarWidth(){var e,t,n,l=document.createElement("p");return l.style.width="100%",l.style.height="200px",(e=document.createElement("div")).style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(l),document.body.appendChild(e),t=l.offsetWidth,e.style.overflow="scroll",t==(n=l.offsetWidth)&&(n=e.clientWidth),document.body.removeChild(e),jQuery("html").hasClass("awb-scroll")&&10<t-n?10:t-n}fusionRunNavIsCollapsed(),window.addEventListener("fusion-resize-horizontal",fusionRunNavIsCollapsed);</script>
317<script type="speculationrules"> 318{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/Avada/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 319</script>
vendor: 1 bytes, line 319
319
320<script id="wpmf_play_gifs-js" src="https://stevemcconnell.com/wp-content/plugins/wp-media-folder/assets/js/gif/play_gif.js?ver=5.4.7"></script>
vendor: 1 bytes, line 320
320
321<script id="wpmf_spin-js" src="https://stevemcconnell.com/wp-content/plugins/wp-media-folder/assets/js/gif/spin.js?ver=1.0"></script>
vendor: 1 bytes, line 321
321
322<script id="wpmf_spinjQuery-js" src="https://stevemcconnell.com/wp-content/plugins/wp-media-folder/assets/js/gif/jquery.spin.js?ver=1.0"></script>
vendor: 1 bytes, line 322
322
323<script id="cssua-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/cssua.js?ver=2.1.28"></script>
vendor: 1 bytes, line 323
323
324<script id="fusion-animations-js-extra"> 325var fusionAnimationsVars = {"status_css_animations":"desktop"}; 326//# sourceURL=fusion-animations-js-extra 327</script>
vendor: 1 bytes, line 327
327
328<script id="fusion-animations-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/general/fusion-animations.js?ver=3.15.0"></script>
vendor: 1 bytes, line 328
328
329<script id="gsap-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/library/gsap.js?ver=3.15.0"></script>
vendor: 1 bytes, line 329
329
330<script id="gsap-scroll-trigger-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/library/ScrollTrigger.js?ver=3.15.0"></script>
vendor: 1 bytes, line 330
330
331<script id="split-type-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/library/SplitType.js?ver=3.15.0"></script>
vendor: 1 bytes, line 331
331
332<script id="awb-tabs-widget-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/awb-tabs-widget.js?ver=3.15.0"></script>
vendor: 1 bytes, line 332
332
333<script id="awb-vertical-menu-widget-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/awb-vertical-menu-widget.js?ver=3.15.0"></script>
vendor: 1 bytes, line 333
333
334<script id="modernizr-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/modernizr.js?ver=3.3.1"></script>
vendor: 1 bytes, line 334
334
335<script id="fusion-js-extra"> 336var fusionJSVars = {"visibility_small":"640","visibility_medium":"1024"}; 337//# sourceURL=fusion-js-extra 338</script>
vendor: 1 bytes, line 338
338
339<script id="fusion-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/fusion.js?ver=3.15.0"></script>
vendor: 1 bytes, line 339
339
340<script id="swiper-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/swiper.js?ver=11.2.5"></script>
vendor: 1 bytes, line 340
340
341<script id="bootstrap-transition-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/bootstrap.transition.js?ver=3.3.6"></script>
vendor: 1 bytes, line 341
341
342<script id="bootstrap-tooltip-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/bootstrap.tooltip.js?ver=3.3.5"></script>
vendor: 1 bytes, line 342
342
343<script id="jquery-request-animation-frame-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/jquery.requestAnimationFrame.js?ver=1"></script>
vendor: 1 bytes, line 343
343
344<script id="jquery-easing-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/jquery.easing.js?ver=1.3"></script>
vendor: 1 bytes, line 344
344
345<script id="jquery-fitvids-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/jquery.fitvids.js?ver=1.1"></script>
vendor: 1 bytes, line 345
345
346<script id="jquery-flexslider-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/jquery.flexslider.js?ver=2.7.2"></script>
vendor: 1 bytes, line 346
346
347<script id="jquery-lightbox-js-extra"> 348var fusionLightboxVideoVars = {"lightbox_video_width":"1280","lightbox_video_height":"720"}; 349//# sourceURL=jquery-lightbox-js-extra 350</script>
vendor: 1 bytes, line 350
350
351<script id="jquery-lightbox-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/jquery.ilightbox.js?ver=2.2.3"></script>
vendor: 1 bytes, line 351
351
352<script id="jquery-mousewheel-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/jquery.mousewheel.js?ver=3.0.6"></script>
vendor: 1 bytes, line 352
352
353<script id="jquery-fade-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/jquery.fade.js?ver=1"></script>
vendor: 1 bytes, line 353
353
354<script id="images-loaded-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/imagesLoaded.js?ver=3.1.8"></script>
vendor: 1 bytes, line 354
354
355<script id="fusion-equal-heights-js-extra"> 356var fusionEqualHeightVars = {"content_break_point":"800"}; 357//# sourceURL=fusion-equal-heights-js-extra 358</script>
vendor: 1 bytes, line 358
358
359<script id="fusion-equal-heights-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/fusion-equal-heights.js?ver=1"></script>
vendor: 1 bytes, line 359
359
360<script id="fusion-parallax-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/fusion-parallax.js?ver=1"></script>
vendor: 1 bytes, line 360
360
361<script id="fusion-video-general-js-extra"> 362var fusionVideoGeneralVars = {"status_vimeo":"1","status_yt":"1"}; 363//# sourceURL=fusion-video-general-js-extra 364</script>
vendor: 1 bytes, line 364
364
365<script id="fusion-video-general-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/fusion-video-general.js?ver=1"></script>
vendor: 1 bytes, line 365
365
366<script id="fusion-video-bg-js-extra"> 367var fusionVideoBgVars = {"status_vimeo":"1","status_yt":"1"}; 368//# sourceURL=fusion-video-bg-js-extra 369</script>
vendor: 1 bytes, line 369
369
370<script id="fusion-video-bg-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/fusion-video-bg.js?ver=1"></script>
vendor: 1 bytes, line 370
370
371<script id="fusion-lightbox-js-extra"> 372var fusionLightboxVars = {"status_lightbox":"1","lightbox_gallery":"1","lightbox_skin":"metro-white","lightbox_title":"1","lightbox_zoom":"1","lightbox_arrows":"1","lightbox_slideshow_speed":"5000","lightbox_loop":"0","lightbox_autoplay":"","lightbox_opacity":"0.9","lightbox_desc":"1","lightbox_social":"1","lightbox_social_links":{"facebook":{"source":"https://www.facebook.com/sharer.php?u={URL}","text":"Share on Facebook"},"twitter":{"source":"https://x.com/intent/post?url={URL}","text":"Share on X"},"reddit":{"source":"https://reddit.com/submit?url={URL}","text":"Share on Reddit"},"linkedin":{"source":"https://www.linkedin.com/shareArticle?mini=true&url={URL}","text":"Share on LinkedIn"},"whatsapp":{"source":"https://api.whatsapp.com/send?text={URL}","text":"Share on WhatsApp"},"mail":{"source":"mailto:?body={URL}","text":"Share by Email"}},"lightbox_deeplinking":"1","lightbox_path":"vertical","lightbox_post_images":"1","lightbox_animation_speed":"normal","l10n":{"close":"Press Esc to close","enterFullscreen":"Enter Fullscreen (Shift+Enter)","exitFullscreen":"Exit Fullscreen (Shift+Enter)","slideShow":"Slideshow","next":"Next","previous":"Previous"}}; 373//# sourceURL=fusion-lightbox-js-extra 374</script>
vendor: 1 bytes, line 374
374
375<script id="fusion-lightbox-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/fusion-lightbox.js?ver=1"></script>
vendor: 1 bytes, line 375
375
376<script id="fusion-tooltip-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/fusion-tooltip.js?ver=1"></script>
vendor: 1 bytes, line 376
376
377<script id="fusion-sharing-box-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/fusion-sharing-box.js?ver=1"></script>
vendor: 1 bytes, line 377
377
378<script id="jquery-sticky-kit-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/jquery.sticky-kit.js?ver=1.1.2"></script>
vendor: 1 bytes, line 378
378
379<script id="fusion-youtube-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/fusion-youtube.js?ver=2.2.1"></script>
vendor: 1 bytes, line 379
379
380<script id="vimeo-player-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/library/vimeoPlayer.js?ver=2.2.1"></script>
vendor: 1 bytes, line 380
380
381<script id="fusion-general-global-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/fusion-general-global.js?ver=3.15.0"></script>
vendor: 1 bytes, line 381
381
382<script id="avada-general-footer-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/general/avada-general-footer.js?ver=7.15"></script>
vendor: 1 bytes, line 382
382
383<script id="avada-quantity-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/general/avada-quantity.js?ver=7.15"></script>
vendor: 1 bytes, line 383
383
384<script id="avada-crossfade-images-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/general/avada-crossfade-images.js?ver=7.15"></script>
vendor: 1 bytes, line 384
384
385<script id="avada-select-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/general/avada-select.js?ver=7.15"></script>
vendor: 1 bytes, line 385
385
386<script id="avada-live-search-js-extra"> 387var avadaLiveSearchVars = {"live_search":"1","ajaxurl":"https://stevemcconnell.com/wp-admin/admin-ajax.php","no_search_results":"No search results match your query. Please try again","min_char_count":"4","per_page":"100","show_feat_img":"1","display_post_type":"1"}; 388//# sourceURL=avada-live-search-js-extra 389</script>
vendor: 1 bytes, line 389
389
390<script id="avada-live-search-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/general/avada-live-search.js?ver=7.15"></script>
vendor: 1 bytes, line 390
390
391<script id="fusion-alert-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/fusion-alert.js?ver=c311024b5902b5ec174695ee85b42c56"></script>
vendor: 1 bytes, line 391
391
392<script id="awb-off-canvas-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/general/awb-off-canvas.js?ver=3.15.0"></script>
vendor: 1 bytes, line 392
392
393<script id="fusion-flexslider-js-extra"> 394var fusionFlexSliderVars = {"status_vimeo":"1","slideshow_autoplay":"1","slideshow_speed":"7000","pagination_video_slide":"","status_yt":"1","flex_smoothHeight":"false"}; 395//# sourceURL=fusion-flexslider-js-extra 396</script>
vendor: 1 bytes, line 396
396
397<script id="fusion-flexslider-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/fusion-flexslider.js?ver=c311024b5902b5ec174695ee85b42c56"></script>
vendor: 1 bytes, line 397
397
398<script id="fusion-column-legacy-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/general/fusion-column-legacy.js?ver=c311024b5902b5ec174695ee85b42c56"></script>
vendor: 1 bytes, line 398
398
399<script id="jquery-title-textillate-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/library/jquery.textillate.js?ver=3.15.0"></script>
vendor: 1 bytes, line 399
399
400<script id="fusion-title-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/general/fusion-title.js?ver=c311024b5902b5ec174695ee85b42c56"></script>
vendor: 1 bytes, line 400
400
401<script id="awb-background-slider-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/general/awb-background-slider.js?ver=c311024b5902b5ec174695ee85b42c56"></script>
vendor: 1 bytes, line 401
401
402<script id="fusion-container-js-extra"> 403var fusionContainerVars = {"content_break_point":"800","container_hundred_percent_height_mobile":"0","is_sticky_header_transparent":"0","hundred_percent_scroll_sensitivity":"450"}; 404//# sourceURL=fusion-container-js-extra 405</script>
vendor: 1 bytes, line 405
405
406<script id="fusion-container-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/general/fusion-container.js?ver=3.15.0"></script>
vendor: 1 bytes, line 406
406
407<script id="jquery-elastic-slider-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/library/jquery.elasticslider.js?ver=7.15"></script>
vendor: 1 bytes, line 407
407
408<script id="avada-elastic-slider-js-extra"> 409var avadaElasticSliderVars = {"tfes_autoplay":"1","tfes_animation":"sides","tfes_interval":"3000","tfes_speed":"800","tfes_width":"150"}; 410//# sourceURL=avada-elastic-slider-js-extra 411</script>
vendor: 1 bytes, line 411
411
412<script id="avada-elastic-slider-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/general/avada-elastic-slider.js?ver=7.15"></script>
vendor: 1 bytes, line 412
412
413<script id="avada-drop-down-js-extra"> 414var avadaSelectVars = {"avada_drop_down":"1"}; 415//# sourceURL=avada-drop-down-js-extra 416</script>
vendor: 1 bytes, line 416
416
417<script id="avada-drop-down-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/general/avada-drop-down.js?ver=7.15"></script>
vendor: 1 bytes, line 417
417
418<script id="avada-to-top-js-extra"> 419var avadaToTopVars = {"status_totop":"desktop","totop_position":"right","totop_scroll_down_only":"0"}; 420//# sourceURL=avada-to-top-js-extra 421</script>
vendor: 1 bytes, line 421
421
422<script id="avada-to-top-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/general/avada-to-top.js?ver=7.15"></script>
vendor: 1 bytes, line 422
422
423<script id="avada-header-js-extra"> 424var avadaHeaderVars = {"header_position":"top","header_sticky":"1","header_sticky_type2_layout":"menu_only","header_sticky_shadow":"1","side_header_break_point":"800","header_sticky_mobile":"","header_sticky_tablet":"","mobile_menu_design":"modern","sticky_header_shrinkage":"1","nav_height":"75","nav_highlight_border":"0","nav_highlight_style":"bottombar","logo_margin_top":"10px","logo_margin_bottom":"10px","layout_mode":"wide","header_padding_top":"0px","header_padding_bottom":"0px","scroll_offset":"full"}; 425//# sourceURL=avada-header-js-extra 426</script>
vendor: 1 bytes, line 426
426
427<script id="avada-header-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/general/avada-header.js?ver=7.15"></script>
vendor: 1 bytes, line 427
427
428<script id="avada-menu-js-extra"> 429var avadaMenuVars = {"site_layout":"wide","header_position":"top","logo_alignment":"center","header_sticky":"1","header_sticky_mobile":"","header_sticky_tablet":"","side_header_break_point":"800","megamenu_base_width":"custom_width","mobile_menu_design":"modern","dropdown_goto":"Go to...","mobile_nav_cart":"Shopping Cart","mobile_submenu_open":"Open submenu of %s","mobile_submenu_close":"Close submenu of %s","submenu_slideout":"1"}; 430//# sourceURL=avada-menu-js-extra 431</script>
vendor: 1 bytes, line 431
431
432<script id="avada-menu-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/general/avada-menu.js?ver=7.15"></script>
vendor: 1 bytes, line 432
432
433<script id="bootstrap-scrollspy-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/library/bootstrap.scrollspy.js?ver=7.15"></script>
vendor: 1 bytes, line 433
433
434<script id="avada-scrollspy-js" src="https://stevemcconnell.com/wp-content/themes/Avada/assets/min/js/general/avada-scrollspy.js?ver=7.15"></script>
vendor: 1 bytes, line 434
434
435<script id="fusion-responsive-typography-js-extra"> 436var fusionTypographyVars = {"site_width":"1100px","typography_sensitivity":"1","typography_factor":"1.5","elements":"h1, h2, h3, h4, h5, h6"}; 437//# sourceURL=fusion-responsive-typography-js-extra 438</script>
vendor: 1 bytes, line 438
438
439<script id="fusion-responsive-typography-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/fusion-responsive-typography.js?ver=3.15.0"></script>
vendor: 1 bytes, line 439
439
440<script id="fusion-scroll-to-anchor-js-extra"> 441var fusionScrollToAnchorVars = {"content_break_point":"800","container_hundred_percent_height_mobile":"0","hundred_percent_scroll_sensitivity":"450"}; 442//# sourceURL=fusion-scroll-to-anchor-js-extra 443</script>
vendor: 1 bytes, line 443
443
444<script id="fusion-scroll-to-anchor-js" src="https://stevemcconnell.com/wp-content/themes/Avada/includes/lib/assets/min/js/general/fusion-scroll-to-anchor.js?ver=3.15.0"></script>
vendor: 1 bytes, line 444
444
445<script id="fusion-video-js-extra"> 446var fusionVideoVars = {"status_vimeo":"1"}; 447//# sourceURL=fusion-video-js-extra 448</script>
vendor: 1 bytes, line 448
448
449<script id="fusion-video-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/general/fusion-video.js?ver=3.15.0"></script>
vendor: 1 bytes, line 449
449
450<script id="fusion-column-js" src="https://stevemcconnell.com/wp-content/plugins/fusion-builder/assets/js/min/general/fusion-column.js?ver=3.15.0"></script>
vendor: 1 bytes, line 450
450
451<script id="wp-emoji-settings" type="application/json"> 452{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://stevemcconnell.com/wp-includes/js/wp-emoji-release.min.js?ver=c311024b5902b5ec174695ee85b42c56"}} 453</script>
vendor: 1 bytes, line 453
453
454<script type="module"> 455/*! This file is auto-generated */ 456var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 457//# sourceURL=https://stevemcconnell.com/wp-includes/js/wp-emoji-loader.min.js 458</script>
458 459
459<script type="text/javascript"> 460 jQuery( document ).ready( function() { 461 var ajaxurl = 'https://stevemcconnell.com/wp-admin/admin-ajax.php'; 462 if ( 0 < jQuery( '.fusion-login-nonce' ).length ) { 463 jQuery.get( ajaxurl, { 'action': 'fusion_login_nonce' }, function( response ) { 464 jQuery( '.fusion-login-nonce' ).html( response ); 465 }); 466 } 467 }); 468 </script>
468 469
469<script type="text/javascript"> 470 var subscribersSiteId = 'af278862-e02a-4409-aae5-be48029d5087'; 471</script>
vendor: 2 bytes, line 471
471
472<script type="text/javascript" src="https://cdn.subscribers.com/assets/subscribers.js"></script>
472 </div> 473 474 <section class="to-top-container to-top-right" aria-labelledby="awb-to-top-label"> 475 <a href="#" id="toTop" class="fusion-top-top-link"> 476 <span id="awb-to-top-label" class="screen-reader-text">Go to Top</span> 477 478 </a> 479 </section> 480
480<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a403d6f0dac0eaf8',t:'MTc5MDI3NDQwOQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
480</body> 481</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.