PageSourceSearch

https://stevemcconnell.com/articles/

html stevemcconnell.com collected 2026-09-24 18:26:51 UTC 78,477 bytes, 481 lines download raw bytes

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&amp;d=mm&amp;r=g","url":"https://secure.gravatar.com/avatar/8f6d09acb1ebe757ec355f7aade137421a298ad5008786617d13e0d3cf7fffda?s=96&amp;d=mm&amp;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 &raquo; Feed" href="https://stevemcconnell.com/feed/" />
43<link rel="alternate" type="application/rss+xml" title="Steve McConnell &raquo; 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&#038;format=xml" />
50					<meta name="description" content="My Articles    I wrote a regular column for IEEE Software from 1996-2002, and I&#039;ve published articles from time to time in other periodicals. 
51My Favorites
52I&#039;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&#039;ve published articles from time to time in other periodicals. 
59My Favorites
60I&#039;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:&#115;t&#101;ve&#109;c&#099;&#064;&#099;o&#110;&#115;t&#114;ux&#046;&#099;o&#109;?&#115;u&#098;j&#101;&#099;t&#061;&#077;ai&#108;&#032;&#102;&#114;&#111;m&#032;&#083;t&#101;&#118;&#101;&#032;M&#099;&#067;o&#110;&#110;el&#108;&#039;s&#032;&#119;&#101;b&#115;i&#116;&#101;" 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="&#xf002;" />
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 &#038; 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 &#038; 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&#8217;ve published articles from time to time in other periodicals. </span></p>
209<h2>My Favorites</h2>
210<p>I&#8217;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 &#8220;From the Editor&#8221; 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&#8217;s In a Name?</a></li>
237<li><a href="/articles/the-software-managers-toolkit">The Software Manager&#8217;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&#8217; 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 &#8220;Best Practices&#8221; 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&#8217;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 &#8216;Tools and Tips&#8217;</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:s&#116;e&#118;emcc&#064;&#099;&#111;&#110;&#115;&#116;rux.com?&#115;u&#098;jec&#116;&#061;Mai&#108;&#032;f&#114;o&#109; S&#116;eve&#032;&#077;&#099;&#067;&#111;&#110;nel&#108;&#039;&#115;&#032;we&#098;sit&#101;" 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.