<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Chris Doyle</title>
    <description>The latest articles on DEV Community by Chris Doyle (@arches).</description>
    <link>https://dev.to/arches</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F551570%2Fc785bc36-5c22-4eed-9a1d-f4198b2b4c90.png</url>
      <title>DEV Community: Chris Doyle</title>
      <link>https://dev.to/arches</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arches"/>
    <language>en</language>
    <item>
      <title>Setting Meaningful Employee Goals</title>
      <dc:creator>Chris Doyle</dc:creator>
      <pubDate>Tue, 09 Feb 2021 05:13:42 +0000</pubDate>
      <link>https://dev.to/arches/setting-meaningful-employee-goals-2aee</link>
      <guid>https://dev.to/arches/setting-meaningful-employee-goals-2aee</guid>
      <description>&lt;p&gt;I've always struggled with employee performance coaching. I wanted to set clear employee goals and give direct feedback, but somehow I could never put all the pieces together at once. Feedback without goals felt like complaining, and goals without feedback felt like wishful thinking. This created a big tension for me as a caring, empathic manager.&lt;/p&gt;

&lt;p&gt;Through years of trial and error (mostly error) managing people as a CTO, I've finally uncovered a &lt;strong&gt;concise set of principles&lt;/strong&gt; that seamlessly combine employee goals and feedback!&lt;/p&gt;

&lt;p&gt;In a previous post, I outlined how to &lt;a href="http://arches.io/posts/managers-guide-mastering-feedback-communication"&gt;prepare for feedback communication&lt;/a&gt;. In this post, we'll examine how to &lt;strong&gt;execute&lt;/strong&gt; your feedback conversation and expand it into a meaningful discussion of employee goals.&lt;/p&gt;

&lt;h1&gt;
  
  
  ACE Your Employee Goals!
&lt;/h1&gt;

&lt;p&gt;You'll approach the conversation in three phases:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ask.&lt;/strong&gt; Always start with a question. ALWAYS👏 start👏 with👏 a👏 question!👏&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connect.&lt;/strong&gt; Guide the conversation by linking observations (not judgments) to their words.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expect.&lt;/strong&gt; Be clear about outcomes.&lt;/p&gt;

&lt;p&gt;Plan for an hour. Half an hour isn't enough, and you'll get antsy after an hour. Don't rush it; if you run out of time, you can always schedule a follow-up.&lt;/p&gt;

&lt;p&gt;And remember, employee goals are a collaboration. You're setting the stage, creating structure, and providing guardrails around the process. This gives the employee autonomy and support, while helping them arrive at goals that support the larger organization.&lt;/p&gt;

&lt;h1&gt;
  
  
  Ask: Create a Safe Atmosphere For Growth
&lt;/h1&gt;

&lt;p&gt;Starting your feedback conversation with a question &lt;strong&gt;builds trust and rapport&lt;/strong&gt; and cultivates a growth space. You need them to know you're interested in their thoughts and you're on their side, so engage in this discussion! Show you're listening. Ask clarifying questions, deepening questions. Seek the core of their ideas. Let the conversation flow for at least 5-10-15 minutes before starting to Connect; you want to give them time to get comfortable opening up.&lt;/p&gt;

&lt;p&gt;While you're discussing their views on your topic area, &lt;strong&gt;look for hooks&lt;/strong&gt; that correspond to your Observations - you'll use them to transition from Ask to Connect. You can always refer back to the hooks later, you don't have to jump on them immediately. Record especially relevant snippets verbatim, so you can Connect directly to their own words later (as a clarification, not a trap).&lt;/p&gt;

&lt;p&gt;You're trying to map their mental space so you can frame your feedback using their own mental model. This deepens the relevance of your feedback and enables intrinsic, sustainable change.&lt;/p&gt;

&lt;h1&gt;
  
  
  Connect: Interpret Observations Together
&lt;/h1&gt;

&lt;p&gt;Now that you're playing on a field they've created, use your observations to &lt;strong&gt;gently guide&lt;/strong&gt; their thinking. You want to be like a potter at the wheel rather than a blacksmith at the forge. Allow the employee to influence your judgments as they offer their own data points. After all, this &lt;em&gt;is&lt;/em&gt; a collaboration.&lt;/p&gt;

&lt;p&gt;To help this phase feel natural but still keep things on the rails, I use four tactics:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Enhance&lt;/strong&gt; when they say something I like. Agree with them, repeat what they said in my own words. Add observations that support their point.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Challenge&lt;/strong&gt; ideas holding them back. Literally say "Can I challenge that?" and mention a relevant observation that encourages them to rethink their position.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Question&lt;/strong&gt; again when they haven't yet led me into an area I want to talk about and the current thread has dead-ended or started circling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reframe&lt;/strong&gt; if I want to bring my own perspective to the discussion. Combine a few hooks to triangulate a new idea for them. Since this explicitly puts me in the driver's seat, I use it sparingly (mostly when the first three are taking too long).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some observations naturally land more forcefully than others. Deliver challenging observations tactfully by keeping them objective and impersonal. These are the most sensitive and difficult moments - you must remain on the employee's side as you help them process new information, while also standing firmly confident in your observations. The conversation may change the interpretation or importance of an observation, but the observation itself is &lt;em&gt;yours:&lt;/em&gt; your thought, your perspective, based on your experience. Save your flexibility for supporting the employee's goals; rewriting the past doesn't help anyone.&lt;/p&gt;

&lt;h1&gt;
  
  
  Expect: Set Concrete Employee Goals
&lt;/h1&gt;

&lt;p&gt;Alright, you've spent 30-45 minutes or more tilling the field; it's time to plant the seeds. Pivot the conversation to the future.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Take a break if you're coming up on the 1-hour mark. These are intense conversations, you'll both need a break, and the employee needs a chance to absorb everything. Better to end on a high note and schedule a follow-up than burn them out with a marathon session.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Approach this phase with a continuation of the &lt;strong&gt;ask-and-guide mentality,&lt;/strong&gt; and shoot for two or three &lt;a href="https://en.wikipedia.org/wiki/SMART_criteria"&gt;SMART goals&lt;/a&gt;. Since the first two phases focused on topics that you chose, the employee will naturally be thinking about goals in those areas! They're likely to suggest goals that both satisfy your expectations and feel achievable.&lt;/p&gt;

&lt;p&gt;If not, you may need to escalate the directness and force of your guidance. Escalate carefully, and strive to remain objective and on their side. Ultimately you can force them to adopt a goal you set, but they won't get far without their own passion. The best goals are ones you &lt;em&gt;both&lt;/em&gt; strongly believe are &lt;strong&gt;achievable and impactful.&lt;/strong&gt; Any goals that &lt;em&gt;you&lt;/em&gt; bring to the table need a killer pitch to achieve buy-in from the employee. Luckily, you have a detailed picture of how they see this topic that you can use to craft that pitch if necessary.&lt;/p&gt;

&lt;p&gt;Do NOT allow the employee to set goals that don't align with the needs of the company! The employee wonders why they aren't promoted even though they achieved their goals, you wonder why the employee isn't effective, and everyone gets frustrated. They can set personal goals and do whatever they want on their own time, but performance at work needs to &lt;strong&gt;advance the interests of the company&lt;/strong&gt; as well as the employee. Redirect with a yes-and: "Your idea is great; you also have a big opportunity at our company by doing XYZ and I want to see you get the biggest impact for your effort." A little open honesty goes a long way.&lt;/p&gt;

&lt;h1&gt;
  
  
  Bonus: Keep The Ball Rolling With Easier Feedback!
&lt;/h1&gt;

&lt;p&gt;One more absolutely critical point:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WRITE. IT. ALL. DOWN.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Referring back to this conversation, their mental map, and specific outcomes they'll pursue, directly supports your daily coaching. You can relate specific scenarios to the bigger picture, discuss various options for a situation and how they might play out, and meaningfully celebrate wins in real-time. Connecting employee goals directly to real-world experiences amplifies your message over time.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Don't push your advantage! Celebrate with someone when they get a win through your suggestions. Even point out to them the wins they might not see. I know, you're excited to see your suggestions working, but hammering every win with a moral basically amounts to "I told you so" - or worse, assumes they can't connect the dots themselves.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When the next performance review cycle rolls around, being able to tie your new observations to concrete, specific, previously-agreed upon goals sets you up for another productive conversation.&lt;/p&gt;

&lt;h1&gt;
  
  
  You're Ready To Set Employee Goals!
&lt;/h1&gt;

&lt;p&gt;Together, high-level goals and concrete feedback create the structured environment and sustained effort that propels employees toward their potential. It's hard to do well, but if you nail this process and you'll stand out in their pantheon of impactful mentors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What struggles do YOU face setting employee goals? Tweet me &lt;a href="https://twitter.com/archslide"&gt;@archslide&lt;/a&gt; and share your story!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>management</category>
      <category>leadership</category>
    </item>
    <item>
      <title>Mastering Feedback Communication</title>
      <dc:creator>Chris Doyle</dc:creator>
      <pubDate>Thu, 04 Feb 2021 23:27:41 +0000</pubDate>
      <link>https://dev.to/arches/mastering-feedback-communication-202n</link>
      <guid>https://dev.to/arches/mastering-feedback-communication-202n</guid>
      <description>&lt;p&gt;I've always struggled with employee performance coaching, especially with communicating feedback. This created a big tension for me as a caring, empathic manager. I saw feedback as a critical part of my role, but whenever I gave corrective feedback I felt like I was scolding someone when I should be supporting them. Through years of trial and error (mostly error) managing people as a CTO, I've finally uncovered a &lt;strong&gt;concise set of principles&lt;/strong&gt; that allow me to both fulfill my duty as a manager and feel good about it!&lt;/p&gt;

&lt;p&gt;Effective feedback starts with intent.  In this post, we'll discuss how to &lt;strong&gt;prepare&lt;/strong&gt; for feedback communication. With careful reflection, you can create a meaningful feedback conversation that supports employee growth.&lt;/p&gt;

&lt;h1&gt;
  
  
  ACE Your Feedback Communication!
&lt;/h1&gt;

&lt;p&gt;You'll approach the feedback communication conversation in three phases:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ask.&lt;/strong&gt; Always start with a question. ALWAYS👏 start👏 with👏 a👏 question!👏&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connect.&lt;/strong&gt; Guide the conversation by linking observations (not judgments) to their words.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expect.&lt;/strong&gt; Be clear about outcomes.&lt;/p&gt;

&lt;p&gt;To prepare, you'll create a list for each phase, likely bouncing among the three as you go.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Questions for the Ask phase&lt;/li&gt;
&lt;li&gt;Observations for the Connect phase&lt;/li&gt;
&lt;li&gt;Expectations for the Expect phase&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Questions Set The Scene For Growth
&lt;/h1&gt;

&lt;p&gt;Change begins with awareness and acceptance, and a belief that change is possible - aka a &lt;strong&gt;growth mindset.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Growth mindset is a safe, expansive, creative mindset. Criticism puts the employee in a defensive mindset: an unsafe, constrained, fall-back-on-existing-strengths mindset. It's critical to approach feedback from a growth perspective.&amp;lt;&amp;gt;&lt;/p&gt;

&lt;p&gt;Starting your feedback conversation with a question &lt;strong&gt;builds trust and rapport&lt;/strong&gt; and cultivates a growth space. Active listening shows the employee you care about them and their opinions, rather than telling them what to do or punishing them for some real or imaginary imperfection. Remember, criticism does not engender change. You may feel pressure to be firm, be direct, lay down the law - but opening with strong corrective statements like "you need to pick up the pace" only breeds fear and distrust.&lt;/p&gt;

&lt;p&gt;Think about the topics you want to cover, then craft clear, open-ended questions to kick off a conversation in each area. Some questions you might start with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For someone who's been &lt;strong&gt;stagnant:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;How do you feel about your growth?&lt;/li&gt;
&lt;li&gt;Have you been growing? On what dimensions?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;For someone you want to see &lt;strong&gt;step up:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;What does leadership mean to you? Who do you see demonstrating leadership?&lt;/li&gt;
&lt;li&gt;What makes them exemplary?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;For someone who needs to &lt;strong&gt;improve technically:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;What are the most important parts of the development process?&lt;/li&gt;
&lt;li&gt;What are the best ways to learn from others?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;For someone who's been &lt;strong&gt;isolated:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;How do you want to show up on the team?&lt;/li&gt;
&lt;li&gt;What do you want to contribute?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Stick with the one or two most impactful opportunity areas. No one can change everything at once.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Try building momentum by linking these to recent changes. "Given our new strategy, how do you see yourself contributing over the next six months?". You're &lt;em&gt;partnering&lt;/em&gt; with the employee to navigate a new situation together, instead of piling more pressure on them. A team change, process change, personal change - it's all fair game. Employee goals are as much about adapting to dynamic circumstances as they are about the employee's individual direction.&lt;/p&gt;

&lt;h1&gt;
  
  
  Observations Communicate Feedback Objectively
&lt;/h1&gt;

&lt;p&gt;What is an observation? It's a data point. Not an accusation, not a judgment. In fact, &lt;strong&gt;observations remove judgment from the conversation&lt;/strong&gt; by forcing you to evaluate your emotions and biases.&lt;/p&gt;

&lt;p&gt;If you feel an employee works slowly, that's a judgment. But why do you feel that way? What actions have you observed that create this impression? Maybe they're missing deadlines, or they aren't pushing much code, or they're asking the same questions over and over. All these observations can have reasonable explanations that don't assuming a fundamental lack of ability (try thinking of some!). But until you Ask - truly, deeply, curiously Ask - you can't valid your assumptions (hint: they're probably wrong).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Before ACE, I would go into performance reviews armed with judgments. During the conversation, I would &lt;em&gt;always&lt;/em&gt; discover new information about the situation. How could I not? The employee has a lot of info I don't have. This put me in an impossible position: deliver my judgment and feel like I was unfairly criticizing the employee, or not deliver it and feel like I hadn't addressed the problem. No matter what I chose, I left the conversation feeling like a bad manager.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An Observation &lt;strong&gt;remains the same in the face of additional data&lt;/strong&gt; (data + data = more data). Its &lt;em&gt;meaning&lt;/em&gt; invariably changes (interpretation + more data = new interpretation). A growth-minded employee readily, thankfully accepts new data as an opportunity to learn and accelerate. A &lt;a href="https://hbr.org/2019/03/the-feedback-fallacy"&gt;criticized employee&lt;/a&gt; rebels against new data as they seek to reverse your preconceived judgment.&lt;/p&gt;

&lt;p&gt;By reserving judgment, you can &lt;em&gt;together&lt;/em&gt; decide what these mean. Since you haven't finalized a mental model of the person, you leave room to update it as they add their own observations.&lt;/p&gt;

&lt;p&gt;Some ways to generate Observations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Just think of some 😛 Seriously though, you likely have firsthand experience with this employee or you wouldn't be working with them on feedback and goals. Write down anything that's top of mind.&lt;/li&gt;
&lt;li&gt;Think of how you feel about the employee; these are NOT observations. Think about the behaviors that make you feel this way; these ARE observations!&lt;/li&gt;
&lt;li&gt;Incorporate observations you've heard from others about the employee (if and only if you think it's relevant)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And, some additional tips as you prepare for your feedback communication:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rely on your experience! You know a lot of things and people want to hear what you think, even if it seems obvious to you. What table stakes are they doing well or poorly against? Don't assume they know it.&lt;/li&gt;
&lt;li&gt;Rely on your position! Employees value your perspective; you're able to see things they can't (and vice versa).&lt;/li&gt;
&lt;li&gt;You don't need a ton of observations to have a productive conversation&lt;/li&gt;
&lt;li&gt;You do need to include some positive observations. Building up their confidence smooths the growth process ("belief in ability to change"), so plan how you're going to make them feel good about their strengths and contributions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Expectations Bolster Impact
&lt;/h1&gt;

&lt;p&gt;The rubber hits the road with expectations. What &lt;em&gt;behavioral changes&lt;/em&gt; do you want to see from your employee, and why? Again, write them down in advance but be prepared to adjust on the fly.&lt;/p&gt;

&lt;p&gt;Expectations should be grounded in the employee's role, and relate closely to the needs of the company. Across the board, they should be the same for everyone doing the same job. Yet, individuals will thrive with different goals based on their skills and interests, and as a manager you must find a win-win balance between generic role expectations and the unique strengths of the individual.&lt;/p&gt;

&lt;p&gt;Expectations have little to do with Observations, either. Decoupling the two allows you to &lt;strong&gt;stand firm with your expectations&lt;/strong&gt; regardless of how the Ask and Connect phases went.&lt;/p&gt;

&lt;p&gt;For example: you want your employee to build a reputation as an expert, and you see an opportunity for them to create stronger relationships outside their team. You observe them hanging back in larger meetings, and thus not getting on the inter-team radar. During your feedback communication conversation, you learn they have a massive fear of public speaking. No problem! This new data doesn't change your expectation (stronger relationships), only your approach. Together you set a more appropriate goal on an easier avenue for them: casual one-on-one chats.&lt;/p&gt;

&lt;p&gt;Some tips to generate expectations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Consult internal assets: your career framework, the job description for the role, preveious performance evaluations&lt;/li&gt;
&lt;li&gt;Think about company needs and company strategy, and how this employee fits into the bigger picture&lt;/li&gt;
&lt;li&gt;If you could change one thing to turn this employee into the most amazing example of this role, what would it be?&lt;/li&gt;
&lt;li&gt;What is the employee's biggest strength? How could they double down on it to help the company?&lt;/li&gt;
&lt;li&gt;What is the employee most excited about? You'll see much more growth in an area they're naturally attuned to.&lt;/li&gt;
&lt;li&gt;Reference the &lt;a href="https://en.wikipedia.org/wiki/SMART_criteria"&gt;SMART framework&lt;/a&gt; to craft concrete goals together&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  You're Ready To Communicate Feedback!
&lt;/h1&gt;

&lt;p&gt;Careful preparation alone changes the tone and impact of your feedback conversations. But wait, there's more: feedback and goals are two sides of the same coin. Feedback without goals is just complaining, and goals without feedback is wishful thinking! In Part 2, we'll discuss how to expand your feedback communication conversation into a meaningful discussion of employee goals.&lt;/p&gt;

&lt;p&gt;Look for Part 2 in February 2021! &lt;a href="//mailto:chris@arches.io?subject=Let+me+know+about+employee+goals&amp;amp;body=Thanks!"&gt;Drop me a line&lt;/a&gt; if you want to get notified when it launches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are your go-to questions for easing into a tough topic with an employee? Tweet me &lt;a href="https://twitter.com/archslide"&gt;@archslide&lt;/a&gt; and share your story.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>management</category>
      <category>leadership</category>
    </item>
    <item>
      <title>Manager's Guide: How To Hire Web Developers</title>
      <dc:creator>Chris Doyle</dc:creator>
      <pubDate>Fri, 08 Jan 2021 14:57:33 +0000</pubDate>
      <link>https://dev.to/arches/manager-s-guide-how-to-hire-web-developers-3l4f</link>
      <guid>https://dev.to/arches/manager-s-guide-how-to-hire-web-developers-3l4f</guid>
      <description>&lt;p&gt;The brief euphoria of your newly opened headcount has transformed into a full panic: "how on earth will I hire a web developer for my team?" Don't worry - you can and you &lt;em&gt;will&lt;/em&gt; successfully hire a great engineer and emerge a hero! It all starts with one little secret:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commit.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I know, your instinct is to balance hiring with other priorities, aka half-ass it. Mine too. Unfortunately, that's a great way to drain your time and energy for a year with nothing to show for it. Instead, plan to spend a massive amount of time for eight weeks. We're talking at least 20-35% of your week, depending how much help you can get. "Won't that suck?" you ask. Yes, it &lt;em&gt;will&lt;/em&gt; suck. But at the end you'll move on with your life as the manager of a larger, more capable team! I'll say it again because it's the difference between success and failure:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commit, or fail.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's scary to invest so much time, but below I'll share the comprehensive process that has allowed me to hire great web developers - not painlessly, but efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Attracting The &lt;em&gt;Right&lt;/em&gt; Web Developers
&lt;/h2&gt;

&lt;p&gt;Nailing your job description is crucial. The document itself is important, but the mental rigor behind the document underpins this entire process. Hiring web developers can be so hard that you feel you have to take anyone you can get; that's a myth. By starting with a clear idea of your ideal team member, and realistic expectations, you'll find the right person. So ask yourself:&lt;/p&gt;

&lt;h3&gt;
  
  
  What Skills Are You Truly Hiring For?
&lt;/h3&gt;

&lt;p&gt;A fearless assessment of your needs will smooth every subsequent step.&lt;/p&gt;

&lt;p&gt;Are you trying to hire web developers for a startup? Hiding your chaos might help you hire faster, but your team can't support a developer who thrives on structure and direction. That quick hire will turn into a nightmare of a performance management problem. &lt;strong&gt;Your goal is not to convince someone who isn't a fit - your goal is to find a developer who's already aligned.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your hire will be expected to navigate an ambiguous role with no oversight, just say so.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Would A Developer Join Your Company?
&lt;/h3&gt;

&lt;p&gt;Luckily, being transparent with candidates about your company is a strength, not a liability. You may think "this place is a mess, we don't even have a sprint process yet" is going to turn people away. And it will! But there are also plenty of developers searching for an opportunity to take a leadership role and help improve your development process. My career has focused on startups, and "leadership opportunity" has been part of every job I've ever posted.&lt;/p&gt;

&lt;p&gt;What else makes your opportunity uniquely attractive to a web developer? Sure, you aren't Google/Facebook/Amazon/etc and you can't afford to compete with them on salary, but compensation isn't the only thing a candidate considers. Plenty of developers don't want to work at a big company - focus on what makes your role interesting and exciting! Being a key contributor on a small team, working on novel challenges, or learning a new tech stack are totally valid and compelling "unique selling propositions" for your candidates.&lt;/p&gt;

&lt;p&gt;Alright, now that you understand who you need, let's go find them!&lt;/p&gt;

&lt;h2&gt;
  
  
  How To Find Great Web Developers
&lt;/h2&gt;

&lt;p&gt;Buckle up, because this is the soul-crushing part. Once you start it's an all-out sprint to the finish line, so get your ducks in a row up front. If you're doing it right you won't have time to do anything but execute your plan.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sourcing
&lt;/h3&gt;

&lt;p&gt;VOLUME VOLUME VOLUME VOLUME VOLUME. The last search I conducted we started with over 1000 LinkedIn profiles and hired two people. A thousand sounds like a lot, but it's manageable if you tailor your process to the volume.&lt;/p&gt;

&lt;p&gt;Your goal in this phase is to find hundreds of profiles who have a passing shot at being a fit, as quickly as humanly possible. An actual recruiter, a LinkedIn Recruiter license, or free tools like vanilla LinkedIn or AngelList can get you there. Use the search filters in whatever tool you're using to cast a wide net. LinkedIn Recruiter allows you to search by fields like role title or skill endorsements. Honestly these filters barely work, just do what you can.&lt;/p&gt;

&lt;p&gt;Do not spend ANY time inspecting profiles, except for a few spot checks to see how you can improve your pool composition. Inspecting profiles at this stage will quickly descend into madness. The one thing that's going to give you encouragement in this phase is - say it with me - VOLUME.&lt;/p&gt;

&lt;p&gt;When your pool reaches &lt;em&gt;at least&lt;/em&gt; 200 profiles you can move on to the next step. &lt;strong&gt;Substantial batch size will improve your efficiency and build momentum.&lt;/strong&gt; Momentum is essential for morale during hiring, especially once you start involving more of your team in the later phases.&lt;/p&gt;

&lt;p&gt;Did I mention this process thrives on 📣📣 VOLUME?!?!?!!?! 📣📣&lt;/p&gt;

&lt;h3&gt;
  
  
  Narrowing The Field
&lt;/h3&gt;

&lt;p&gt;Now you're going to analyze the profiles. But wait - there are hundreds! Go in with a strategy or you'll be here forever. Decide ahead of time on a small number of simple criteria. For example, in a recent search I was looking for a web developer with at least 6 years of experience and solid ruby/rails exposure. Look ONLY for these things when reading profiles. You'll quickly hone in on the fastest way to find the info and make a decision.&lt;/p&gt;

&lt;p&gt;Since you're going to be doing so many of these, &lt;strong&gt;make sure you have a fast and reliable way to analyze, store your decision, and repeat.&lt;/strong&gt; The speed will make or break you. At my best this year I analyzed about 80 profiles an hour on LinkedIn Recruiter. This is one of the most soul-crushing steps, it's so rote and monotonous and it just feels bad to be judging humans so mechanically. Psych yourself up, spend an hour or two plowing through it, and then give yourself a break. Too long and your brain will glaze over.&lt;/p&gt;

&lt;p&gt;Many profiles will be in a gray area - don't worry about it, in those few cases the penalty for getting it wrong is minimal. You can always source more profiles, and the rest of your process will weed out anyone that you over-included.&lt;/p&gt;

&lt;p&gt;Expect extensive drop-off in this step, 50-80% or more depending how well your tools let you tailor your initial pool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reaching Out
&lt;/h3&gt;

&lt;p&gt;Once you have at least 30-60 profiles that meet your basic criteria, you can start reaching out. You only get a few sentences of attention, so make sure you're clear about the role and your unique selling proposition. Unless you're targeting specific people for a high level role like a Principal or VP, don't worry about customizing this outreach. We're still in a volume-based scenario here. Write the most interesting form letter you can, make sure you address everyone by the correct name, and just let it fly.&lt;/p&gt;

&lt;p&gt;You probably won't send enough of these to run a true A/B test, but tune your message if you glean any insights as you go. For example, I had been telling people we're a Chicago company but initially hadn't clarified that the role was remote-friendly.&lt;/p&gt;

&lt;p&gt;The goal of this phase is to &lt;strong&gt;schedule a 30-minute follow-up,&lt;/strong&gt; so make sure to close your message with a strong call to action. Something simple like "Are you interested in a quick call to learn more?" is great. A yes/no question makes the response super easy.&lt;/p&gt;

&lt;p&gt;I like this phase, because we get to start seeing some results! 👀&lt;/p&gt;

&lt;p&gt;We've found that having an engineering leader reach out rather than a recruiter materially increases our response rates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interviewing Web Developers
&lt;/h2&gt;

&lt;p&gt;We're finally going to start talking to people. You might modify this structure to fit your own circumstances, but as long as you hit the high points you'll be okay.&lt;/p&gt;

&lt;h3&gt;
  
  
  Initial Screen
&lt;/h3&gt;

&lt;p&gt;A 30 minute call starts building a rapport with the candidate. This phase requires significant time and effort, because the previous phases are such inexact filters. But your goal is to hire, and that means balancing what works for you and what works for the candidate. A call is much more engaging than an email thread, so I usually move to a voice/video channel as fast as possible. I've had good luck &lt;strong&gt;spreading this work out&lt;/strong&gt; so I don't have to personally make every single call.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When someone shows interest in your initial reach-out, you can reply: "Great! The next step is a call with Alan, he's open tomorrow 2pm-4pm, what works for you?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You might see a small drop-off from people who expected to talk to you personally, but it's worth it to save your calendar from utter destruction.&lt;/p&gt;

&lt;p&gt;In this call, pitch your role/company and see if there's mutual interest.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do they actually have the technical experience you need?&lt;/li&gt;
&lt;li&gt;Do they check one or two of your most important boxes? Any obvious red flags?&lt;/li&gt;
&lt;li&gt;What's their timeline for making a move?&lt;/li&gt;
&lt;li&gt;Discuss comp if you want ("what would it take for you to consider making a change" or "our salary range for this position starts at 140k" are good, "what are you making now" not so good and potentially illegal)&lt;/li&gt;
&lt;li&gt;Answer their questions&lt;/li&gt;
&lt;li&gt;Discover their motivation (key for later!). If you can't offer best-in-class salary you're going to have to appeal to them in a different way.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Technical Screen
&lt;/h3&gt;

&lt;p&gt;One way or another you want to evaluate the candidate's technical ability. I'm not trying to resolve the many schools of thought on technical evaluation in this post. As a starting point I'll just say that at Ascent we currently offer either a take-home exercise plus a video chat to review it, or a live pairing exercise. The candidate can play to their strengths and needs, and we get a conversation about code either way.&lt;/p&gt;

&lt;p&gt;This is when I start bringing another team member or two into the process. They can help evaluate code samples and conduct the review, and I usually ask them to review take-home responses without including any personally identifying information to reduce bias in our process.&lt;/p&gt;

&lt;h3&gt;
  
  
  On-Site / Full Loop
&lt;/h3&gt;

&lt;p&gt;Now it's time for the whole team to get to know the candidate. By this point, you know a fair bit about the candidate, but your team does not. It's natural for the team to be skeptical, which can easily come across as cold or harsh for the candidate. Give your team an outline of what you know about the candidate so far. The candidate's motivation is especially useful here. And, gently &lt;strong&gt;remind the team to be warm and "sell" the candidate&lt;/strong&gt; a bit. Whether or not you make an offer, you want every single candidate coming out of your process to be excited to work for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing The Best Web Developer
&lt;/h2&gt;

&lt;p&gt;Adopting a rubric is one of the most effective ways to improve your candidate evaluation. It should include the dimensions you want to evaluate, and examples of what constitutes strong or weak performance on those dimensions. The Medium engineering team has an &lt;a href="https://medium.engineering/engineering-interviews-grading-rubric-8b409bec021f"&gt;excellent rubric&lt;/a&gt; I've used as a starting point. A rubric reduces bias in the hiring process by helping you evaluate candidates equally and objectively (to the extent any judgment of a human after three hours is objective).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A rubric has become one of my most valuable tools as a hiring manager.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With a rubric I feel like I've systematically evaluated a candidate, touching on each and every aspect I care about. Strengths and gaps become obvious, and the final outcome feels like a fully informed decision. Gone are the days of finger-in-the-wind vibe-based hires. Make sure your team understands the rubric and references it liberally in their feedback.&lt;/p&gt;

&lt;p&gt;The final element of selecting the right web developer is gathering &lt;em&gt;evidence-based&lt;/em&gt; feedback from your team. Rather than asking hypotheticals like "what are some important elements of teamwork", ask for a concrete example: "When is a time your team worked really well together? How did you contribute?" This ensures the candidate can walk the walk as well as they can talk the talk. Think back to some of your best and worst interviews, and you'll find that evidence-based answers made candidates seem much more grounded and capable, and when you come away thinking "they said all the right things" but still feeling wary or hollow it's often due to a lack of evidence. Don't just take their word for it - dig all the way to the core.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use "STAR" questions to gather evidence. Ask about the Situation (original problem statement), Task (the candidate's responsibility within the situation), Action (what they did), Result (how it went). You'll quickly discover the difference between their knowledge and their experience.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Making The Offer
&lt;/h2&gt;

&lt;p&gt;Finally, after 4-6 weeks and hundreds of person-hours, you found a developer you like! Amazing! Time to seal the deal. Here's how you're gonna make it happen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make the offer "in person" (video/phone is fine)&lt;/li&gt;
&lt;li&gt;Ask for any remaining questions. Especially in a remote environment, the candidate will have zero opportunity for hallway/elevator/interstitial conversations where they can just get comfortable.&lt;/li&gt;
&lt;li&gt;Tell them why you want them! If you can't make a very convincing pitch to the candidate about why THEY are right for YOUR team, you've severely missed the mark in previous steps. Everyone likes to feel special and seen; just try to reflect their best qualities back to them.&lt;/li&gt;
&lt;li&gt;Remind them why working for you will address their motivation and advance their career. This dovetails closely into the previous item.&lt;/li&gt;
&lt;li&gt;Present the full offer. Carefully explain non-cash aspects of their compensation: equity, benefits, etc. Most people won't care about every benefit, but many people care deeply about one or two. Make sure your offer fits into your salary bands properly or you're going to have big problems later.&lt;/li&gt;
&lt;li&gt;Don't pressure them to commit, but get an initial indication of how they feel about the offer.&lt;/li&gt;
&lt;li&gt;Let them have a reasonable (but not indefinite) amount of time to think it over. A week is standard.&lt;/li&gt;
&lt;li&gt;Resist the urge to negotiate against yourself. If they don't jump at the offer, it doesn't mean they won't accept. If they want another 5k they'll ask for it. If they want another 500k, this was never going to work out in the first place.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Onboarding
&lt;/h2&gt;

&lt;p&gt;We'll save this one for later. Right now, breathe a giant sigh of relief and do something nice for yourself, you deserve a break! Hiring web developers is one of the most challenging, draining aspects of engineering management. If you can do this, you can do anything.&lt;/p&gt;

&lt;h4&gt;
  
  
  What's your best tip for making it through the hiring process alive? Tweet me &lt;a href="https://twitter.com/archslide"&gt;@archslide&lt;/a&gt; and share your story.
&lt;/h4&gt;

</description>
      <category>management</category>
    </item>
    <item>
      <title>Time Travel - The True Power of Developers</title>
      <dc:creator>Chris Doyle</dc:creator>
      <pubDate>Sat, 02 Jan 2021 04:29:16 +0000</pubDate>
      <link>https://dev.to/arches/time-travel-the-true-power-of-developers-17e4</link>
      <guid>https://dev.to/arches/time-travel-the-true-power-of-developers-17e4</guid>
      <description>&lt;p&gt;&lt;em&gt;In &lt;a href="https://dev.to/arches/abstraction-is-art-why-all-developers-are-creatives-a65"&gt;Abstraction is Art: Why All Programmers are Creatives&lt;/a&gt;, I described the central role abstractions play in technology and technical companies. This post builds on those ideas to discuss how innovation works in the medium of abstractions.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Progression: Advancing Abstractions
&lt;/h2&gt;

&lt;p&gt;The tools we use both limit and advance our thinking. If I gave you a hammer and asked you to build a birdhouse, I’d probably get something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--831dJxlz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://arches.io/images/wooden-birdhouse.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--831dJxlz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://arches.io/images/wooden-birdhouse.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But if I gave you scissors, you might build a birdhouse like this instead:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w56JyYP---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://arches.io/images/cloth-birdhouse.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w56JyYP---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://arches.io/images/cloth-birdhouse.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You could have found your own hammer and built a wooden birdhouse anyway, but the scissors put you in a certain mindset. In software our tools are abstractions (a specific type of idea) and the same concept applies.&lt;/p&gt;

&lt;p&gt;In Orwell’s classic dystopian novel 1984 society is being oppressed under the watchful eye of Big Brother. Their subjugation is so complete that even thinking about rebelling against the government is a crime. They are no longer able to articulate revolt, communicate about revolt, plot revolt, or eventually even IMAGINE revolt; they are no longer able to revolt. Over time, the very concept of rebellion is lost.&lt;/p&gt;

&lt;p&gt;To “unlock” this ability, they would need to awkwardly describe it using combinations of existing ideas until they solidify the concept, name the concept, and finally evangelize the concept and the names to the rest of the population. Only then would revolt become possible again.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Responsibility
&lt;/h2&gt;

&lt;p&gt;When we accurately anticipate the future, our progress accelerates because each step is built on top of a previous enabling idea instead of starting from scratch each time.&lt;/p&gt;

&lt;p&gt;As programmers we have the opportunity to build our own tools, our own abstractions, our own language – and this gives us tremendous power and responsibility.  Every decision has a cascading effect, making certain things easier and certain things harder. We make dozens of decisions every day as we write code, and those decisions move us closer and further away from any given feature we might want to build in the future. Our requirements just said “birdhouse,” but once we make a birdhouse, is the business going to ask us to expand into bird apartments (probably easier in wood) or allow customers to request custom sizes (probably easier in fabric)?&lt;/p&gt;

&lt;p&gt;We have to solve today’s problem while simultaneously anticipating tomorrow’s needs. There’s a careful balance between thinking ahead and overengineering, giving rise to terms like YAGNI (“you ain’t gonna need it”). But thinking and building are two different things – it’s always worth thinking a couple steps ahead so you don’t paint yourself into a corner. When we accurately anticipate the future, our progress accelerates because each step is built on top of a previous enabling idea instead of starting from scratch each time.&lt;/p&gt;

&lt;p&gt;How do we get better at predicting the future? Context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context as Binoculars
&lt;/h2&gt;

&lt;p&gt;If we’re doing our jobs right, we’re making decisions with the full awareness of a wide variety of contexts. The more information we can bring to bear in each decision, and the more deeply we can empathize with the stakeholders providing that information, the more accurately we can imagine futures that anticipate the needs of our constituents.&lt;/p&gt;

&lt;p&gt;So what exactly are these “contexts” that are so important? There are a few that are fundamental. You have to have a really solid grasp of the technology you’re working with, and how the technical landscape is changing. Understanding the customer is paramount; they’re the ultimate arbiter of whether you’re creating value. It’s critical to understand your company’s business model and how it fits into the broader market. Ultimately anything that helps you understand your particular problem domain and solution space is going to serve you well. Side note: this is why diversity is critical. Someone brings the context they gained in a college CS program, someone else brings the context from their artistic background, and someone else brings the context from their time in sales or customer support.&lt;/p&gt;

&lt;p&gt;Luckily, guessing the future is only half the picture. As developers, we can have a strong influence on how the future unfolds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Progression is Vision
&lt;/h2&gt;

&lt;p&gt;A house starts with a foundation, then the scaffolding of the walls, then the plumbing/electrical, then the drywall, then the plaster, then the paint, then the furniture.  In the earliest stages we can barely see it’s going to become a house, but the architect has a plan. Over time we start to get a rough idea of the finished product, but there are still many questions to be answered.  Eventually, we’re living in the space and trying to figure out how to position our couch around the weird angle in our living room wall.&lt;/p&gt;

&lt;p&gt;When our abstractions come together into a larger whole, we’ve created a framework, a conceptual model.  It stands under its own weight; it has internal consistency; it has structure and shape and boundaries, strengths and weaknesses, characteristics like any physical object.  Rather than starting from scratch on every new problem, we instead think about which parts of our framework are relevant and how we can refine them to apply in this new situation.  Maybe we repurpose a guest room into a nursery, or build a deck so we can grill and relax outside – our options aren’t always easy, but it’s hard to justify a new house for every new need so we find a way to make it work.&lt;/p&gt;

&lt;p&gt;Because future questions are answered inside the framework, the framework sets the direction for future conversation long in advance.  It frames the discussion before the discussion even begins. As developers, this is the power we possess: to set the stage of the future.  If we’re careless or oblivious about this power we’ll be continually tripping over our feet; when we wield it with intention and foresight we can achieve any future we envision.&lt;/p&gt;

</description>
      <category>leadership</category>
      <category>programming</category>
    </item>
    <item>
      <title>Abstraction Is Art - Why All Developers Are Creatives</title>
      <dc:creator>Chris Doyle</dc:creator>
      <pubDate>Sat, 02 Jan 2021 04:26:26 +0000</pubDate>
      <link>https://dev.to/arches/abstraction-is-art-why-all-developers-are-creatives-a65</link>
      <guid>https://dev.to/arches/abstraction-is-art-why-all-developers-are-creatives-a65</guid>
      <description>&lt;h2&gt;
  
  
  Mind The Gap
&lt;/h2&gt;

&lt;p&gt;Humans have always built on top of the work of those who came before us. Karl Benz was able to invent cars because he had the wheel and the combustion engine. Orville and Wilbur Wright were able to invent planes because they had gliders and bicycle chains. They were successful because they looked at the world around them and brought existing ideas together in a new way.&lt;/p&gt;

&lt;p&gt;The technological acceleration we've seen in the last 50 years is driven by the same principle of building on previous work, with one important difference: our production costs have fallen to zero. Henry Ford had to build factories to realize his ideas. General Motors and Rolls Royce had to build concrete bunkers to test their jet engines in case they exploded. Programmers need only open their laptop and get to work. Without production costs, the cycle of innovation now happens at the speed of thought.&lt;/p&gt;

&lt;p&gt;Almost.&lt;/p&gt;

&lt;p&gt;There's still some friction in the cycle, and it's basically because computers are not smart. Fast? Yes: we can tell them "do x, do y, do z" and they'll do it in milliseconds - but they have no idea WHY. But we have our reasons, right? We ask them to add the numbers in a spreadsheet because those numbers represent our income and expenses, so the sum represents our profit. We ask them to send a paragraph of text to our friends because that paragraph represents a funny thing that happened at work.&lt;/p&gt;

&lt;p&gt;WE know the whys, because the whys are part of our world. The computers don't know the whys, because the world of the computer is incredibly limited. Computers are still literally dealing with ones and zeroes, and could not be further away from our messy experience of hugs and giraffes and hot chocolate.&lt;/p&gt;

&lt;p&gt;In order for computers to be useful in our rich and meaningful world, we need to bridge the gap somehow. As programmers, we need a way to keep our feet in both worlds at once. That bridge is abstraction.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Abstraction?
&lt;/h2&gt;

&lt;p&gt;Think of a car. Got one? I bet it has four wheels and an engine. "Car" is an abstraction, a generalized idea. As a society, we've communally decided that wheels and engines are important parts of all cars. Is it blue or red or black? Who cares. Color doesn't fundamentally change the thing we're talking about, whereas something with wheels and no engine might be a bicycle rather than a car. Since color is not important when we're talking about cars, it hasn't become part of the abstraction.&lt;/p&gt;

&lt;p&gt;For a computer to handle our complex world, we have to simplify — and we simplify by just leaving stuff out. It's much easier to tell a computer about our Platonic ideal of a "car" - four wheels and an engine - instead of every single minor detail and variation in the actual cars in the actual world. As programmers we also know which properties of a car are useful for our particular task, and that’s how we choose what to include and what to leave out. If we’re running a race track, we might want our computers to know about top speeds and RPMs. If we’re running a rideshare company, our biggest concern is the number of seats.&lt;/p&gt;

&lt;p&gt;We give the computer a limited view, but we ourselves still have a full world of knowledge. This duality is what makes programming possible; the same abstraction can be simple and "machine-readable" while also being emotional, subjective, and yes - artistic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Art Is Abstraction Is Art
&lt;/h2&gt;

&lt;p&gt;Artists are trying to represent a particular slice of the world through a specific perspective. In holding a mirror to society, they selectively include or exclude certain details and ideas to present an opinionated view. Even a photograph - an "exact replication" of the world - has an opinion by way of subject matter, framing, editing, and the context of its display. Art, then, is an abstraction. It's an idea, stripped of all its nonconsequential details to highlight its core.&lt;/p&gt;

&lt;p&gt;Creating and experiencing art helps us understand ourselves. It allows us to experiment, to learn, to fail, to try another way. This boundless exploration extends beyond the physical world as well: we can delve into love, loss, or any aspect of the human experience without going through those events directly.&lt;/p&gt;

&lt;p&gt;The same way a novel, poem, dance, or painting captures the world, so do abstractions.  Perhaps the closest comparison is to storytelling. Stories are full of complex devices for manipulating ideas. Metaphor, allegory, fantasy. A story allows us to construct new realities through imagination. Stories are powerful because they connect with our deepest selves, and through the details we choose to include or omit, they have a point of view.  Abstractions similarly afford us limitless opportunity to explore, build, learn, and communicate.&lt;/p&gt;

&lt;h2&gt;
  
  
  So What Is Programming?
&lt;/h2&gt;

&lt;p&gt;Artists create sketches, drafts, studies, and yet the final work is not always as imagined. Artistic ideals are sometimes subverted for a paid commission. Programming is not always joyful or meaningful either, but programming is always an artistic endeavor. It's fully subjective, it's based in the realm of ideas, it's an act of creation, and it involves the creator holding an opinionated mirror up to the world.&lt;/p&gt;

&lt;p&gt;Thinking of programming as a technical endeavor is correct but woefully insufficient. This is why so many of the best programmers I've worked with have significant artistic backgrounds, and why I always say anyone can learn to code.&lt;/p&gt;

&lt;p&gt;As in any discipline, programmers stand on the shoulders of those who have come before us. In programming, those previous works are works of abstraction. The earliest programmers were truly writing programs with ones and zeroes. But someone abstracted those ones and zeroes into english characters, and abstracted those english characters into software instructions. Over the decades, countless thousands of developers have slowly advanced programming languages to the point where many programs do read somewhat like prose. They have created networking libraries, databases, web browsers, apps. Each of these abstractions is built on the abstractions before it, and the work of every programmer is to use existing abstractions and their own ingenuity to create new works.&lt;/p&gt;

&lt;p&gt;Programming classes/books/blogs/etc usually focus directly on code, which isn’t entirely surprising - a group of potters would probably focus on clay, too. The code is what's sitting in front of us; it's obvious. Abstraction is less obvious, yet far more important. I will go so far as to say that abstraction, not code, is the fundamental medium of programming. And thus, while computers themselves might be governed by math and equations, programming computers is primarily a creative, subjective, artistic activity.&lt;/p&gt;

</description>
      <category>leadership</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
