<?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>Forem: Cristina Ruth</title>
    <description>The latest articles on Forem by Cristina Ruth (@cristinaruth).</description>
    <link>https://forem.com/cristinaruth</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%2F247300%2F9f1a74e9-88c1-4dec-b1b5-e1c761dd54e6.jpeg</url>
      <title>Forem: Cristina Ruth</title>
      <link>https://forem.com/cristinaruth</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/cristinaruth"/>
    <language>en</language>
    <item>
      <title>5-Minute Guide to Organizing Your Own Tech Meetup</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Mon, 13 Jan 2020 12:49:59 +0000</pubDate>
      <link>https://forem.com/cristinaruth/5-minute-guide-to-organizing-your-own-tech-meetup-1lg0</link>
      <guid>https://forem.com/cristinaruth/5-minute-guide-to-organizing-your-own-tech-meetup-1lg0</guid>
      <description>&lt;p&gt;If you've been wanting to organize your own tech meetup, here is a step-by-step guide on how I got started a year or so ago, combined with lessons learned I've had along the way.&lt;/p&gt;

&lt;p&gt;The steps are as follows, and we'll go through each one in detail.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Does the meetup already exist?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What is your goal? Who is your target audience? What are your potential topics?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Who are the organizers of the already-existing tech meetups in your area?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Determine your event cadence.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Determine your event formats.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Determine your venues and food sources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build the "interested" contact list.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create your meetup group and your first event!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rinse and repeat and keep up interest.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Step 1. Does the meetup already exist?
&lt;/h1&gt;

&lt;p&gt;It seems like an obvious question, but we just get so excited at concepts and ideas, that we don't do our research first.&lt;/p&gt;

&lt;p&gt;Search through meetup.com for tech groups in your area and ensure that none already exist similar to the one you want to create. Sometimes, too, the tech meetups are harder to find and the names are not descriptive enough to know what they are about. As you find tech meetup groups that have a large member base, take note of them and their corresponding organizers as we'll need them in &lt;strong&gt;step 3&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Once we're sure that the meetup we want to create is unique in your area, we move on to step 2.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 2. What is your goal? Who is your target audience? What are your potential topics?
&lt;/h1&gt;

&lt;p&gt;Each meetup group is different. What do you want to achieve with this meetup? Do you want to connect professional people who work in IT together in a social setting? Do you want to share knowledge with each other?&lt;/p&gt;

&lt;p&gt;The more specific you can be in defining your goal and what to achieve, the better since this will help you define who your &lt;strong&gt;target audience&lt;/strong&gt; would be. Who is the typical person who would attend your meetup events? What do they do? Where do they spend their time? What motivates them to attend your events?&lt;/p&gt;

&lt;p&gt;As you answer these questions around your goal and target audience, it will help you define your potential topics because now, you have an idea of the ideal person who would be attending your event. What topics would they be interested in? Is it new technology, best practices, or other things?&lt;/p&gt;

&lt;p&gt;Note all these down somewhere -- you'll need to reference them later as you plan and schedule your events.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 3. Who are the organizers of the already-existing tech meetups in your area?
&lt;/h1&gt;

&lt;p&gt;Look through your notes of popular tech meetups and their corresponding organizers from &lt;strong&gt;step 1&lt;/strong&gt;. Reach out to each organizer introducing yourself, stating you want to start your own (maybe include your goal and other details you've determined from &lt;strong&gt;step 2&lt;/strong&gt; ) and are looking for some tips -- maybe offer to buy them coffee and meet that way.&lt;/p&gt;

&lt;p&gt;You may not get responses from all of them, but the more organizers you meet, the more tips you'll be able to get.&lt;/p&gt;

&lt;p&gt;Some questions you can ask them that will help you with the next steps are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What local companies offer venues and/or food for the tech meetups?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What other venue places do they use for their events? What is the associated cost for each one?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What are their event formats? Which are the most popular ones?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What other tips / lessons learned do they have to share?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Step 4. Determine your event cadence.
&lt;/h1&gt;

&lt;p&gt;Organizing a meetup takes time. It requires coordinating with venues, local companies, and brainstorming various event formats. Take these into consideration when determining a regular event cadence for your meetup. Will it be monthly, weekly, bi-weekly, etc? If monthly, would be on the 1st, 2nd, 3rd, or 4th Monday, Tuesday, Wednesday, etc? What time would you generally have your events? Think through your schedule and how the meetup events organizing schedule would look like.&lt;/p&gt;

&lt;p&gt;Having a regular cadence will help your members know ahead of time when your events are held and hold a spot on their calendar for your events.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 5. Determine your event formats.
&lt;/h1&gt;

&lt;p&gt;Now that you know your desired event cadence, it's time to brainstorm some event formats you want for your meetup that are appropriate to your target audience. Hopefully, you've gotten some tips from the other tech organizers around this as well.&lt;/p&gt;

&lt;p&gt;Some common formats are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Talks&lt;/strong&gt;. A speaker comes and talks about a particular topic, and then the audience can ask questions afterwards.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lightning Talks&lt;/strong&gt;. Multiple speakers come and speak 5-10 minutes around a common topic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Workshops&lt;/strong&gt;. Hands-on learnings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Social&lt;/strong&gt;. People gather around food and drinks and hang out.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Having a good mix would ensure your meetup doesn't stay too static and can keep up the interest of your members.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 6. Determine your venues and food sources.
&lt;/h1&gt;

&lt;p&gt;Since meetup is all about meeting people &lt;em&gt;in person&lt;/em&gt;, you would need a space to hold your events in with adequate space for the amount of people you'll have.&lt;/p&gt;

&lt;p&gt;Hopefully, you'll have gotten a good list from the other tech organizers in the area, but if not, then you have some research work to do. Local libraries usually have meeting rooms you can use as long as your events are free. Reach out on social media/Slack communities for local companies who may be interested in providing you space for your events.&lt;/p&gt;

&lt;p&gt;People &lt;em&gt;like&lt;/em&gt; food, so bonus points if you can secure some food sponsors for your events. Make sure you set your members' expectations on whether there will be food or not at the events. From personal experience, it's harder to get companies to pay for food for your meetup, especially if you're just starting out.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 7. Build the "interested" contact list.
&lt;/h1&gt;

&lt;p&gt;Now that you've got a plan, nobody knows your meetup exists. So we now have to do some advertising. I have no marketing background, so this was the hardest part I had to do when I was just starting my own meetup.&lt;/p&gt;

&lt;p&gt;Create a Google form where you can collect emails of people who would be interested in your meetup. Share on social media something around, "Hey, I'm starting this group about X and Z. If you're interested, I can let you know when we have our first event if you fill out this form."&lt;/p&gt;

&lt;p&gt;Bonus if you already have existing contacts in your area's tech community, because then you'd just ask them to spread the word. The other tech organizers may also agree to help you spread the word.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 8. Create your meetup group and your first event!
&lt;/h1&gt;

&lt;p&gt;Once you have an adequate number of interested people signed up and you have an event venue secured, it's time to create your meetup group and your first event!&lt;/p&gt;

&lt;p&gt;After you've scheduled your first event, send the link to the people who signed up from &lt;strong&gt;step 7&lt;/strong&gt; , and spread the word on social media and other tech organizers and other meetup groups. A lot of meetup groups have the discussion board on the front page open to any comments, so you can also comment on there.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 9. Rinse and repeat and keep up interest.
&lt;/h1&gt;

&lt;p&gt;There &lt;em&gt;will&lt;/em&gt; be mistakes -- expect them! And learn from them, and apply any learnings to future events.&lt;/p&gt;

&lt;p&gt;As I mentioned earlier, mix up the events every now and then to keep up interest of your members. If you're out of ideas, you could ask your members for topics they would be interested in.&lt;/p&gt;

&lt;h1&gt;
  
  
  Wrap Up
&lt;/h1&gt;

&lt;p&gt;Creating your own tech meetup requires a lot of initial planning ranging from ensuring that it doesn't already exist to reaching out to other local tech meetup organizers on lessons learned and securing event venues and food. It also includes defining a goal and your target audience as well as an event cadence and event formats.&lt;/p&gt;

&lt;p&gt;At the start, there will need to be a lot of marketing to help others be aware of your group, but once you start having your events, word-of-mouth advertising will help. Meetup also is a good platform that will drive new members to your group through their defined interests.&lt;/p&gt;

&lt;p&gt;I hope this guide has helped you and I wish you all the best in making your new meetup group! 🙂&lt;/p&gt;

&lt;h1&gt;
  
  
  Other Resources
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sloboda-studio.com/blog/how-to-organize-a-tech-meetup/"&gt;https://sloboda-studio.com/blog/how-to-organize-a-tech-meetup/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pragtob.wordpress.com/2016/03/31/before-you-start-to-organize-a-meetup/"&gt;https://pragtob.wordpress.com/2016/03/31/before-you-start-to-organize-a-meetup/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>meetup</category>
      <category>guide</category>
    </item>
    <item>
      <title>5 Ways Writing Documentation Helps YOU</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Thu, 02 Jan 2020 13:25:46 +0000</pubDate>
      <link>https://forem.com/cristinaruth/5-ways-writing-documentation-helps-you-3mnl</link>
      <guid>https://forem.com/cristinaruth/5-ways-writing-documentation-helps-you-3mnl</guid>
      <description>&lt;p&gt;When I first started my professional dev career, I &lt;strong&gt;hated&lt;/strong&gt; writing documentation. I didn't think it was as fun as coding and so, I never took the time to write them.&lt;/p&gt;

&lt;p&gt;Over the years, as my job responsibilities progressed, I realized how valuable writing documentation is and that, ultimately, doing so helps &lt;strong&gt;me&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Documentation?
&lt;/h2&gt;

&lt;p&gt;Before we go any further, let's first clarify what documentation is.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Documentation is written "articles" or descriptions around a specific topic.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Documentation can be written for many things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Explaining the description of classes, functions and variables.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explaining the "why" behind business logic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explaining how things in a system connect together. (i.e. diagrams of database connections and APIs and servers, etc)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explaining how to get something set up. (i.e. getting a developer machine setup to enable development work for a given repository)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explaining guidelines. (i.e. a standards documentation around variable naming and patterns to be used)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explaining troubleshooting steps for common problems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explaining the high-level logic flow of a specific feature. (i.e. diagram flowchart)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And more.&lt;/p&gt;

&lt;p&gt;As developers, we read documentation when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Trying to install a "plugin" into our project. We then read through their "get started" documentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trying to troubleshoot a bug, and we find our way into a "plugin". We then read through their "troubleshooting" documentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When we're looking into contributing to an open source project, we read through their "Contributing.md" documentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When we're setting up our machines to have a local working environment for an open source project, we read through their "Setup.md" documentation.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And more.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Documentation Helps YOU
&lt;/h2&gt;

&lt;p&gt;In this article, we'll walk through 5 ways writing documentation helps &lt;strong&gt;you&lt;/strong&gt; :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Improve your writing skills.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Help yourself in the future.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Help your teammates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Free your time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Help yourself stand out.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  1. Improve Your Writing Skills
&lt;/h2&gt;

&lt;p&gt;Writing skills are applicable to &lt;strong&gt;all&lt;/strong&gt; aspects of your life. You need writing skills to be able to efficiently communicate the message you want to deliver. This applies in everything -- from your personal life to school to your career, &lt;em&gt;any&lt;/em&gt; career.&lt;/p&gt;

&lt;p&gt;The more documentation you write, the more you hone and improve your writing skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Help Yourself in the future
&lt;/h2&gt;

&lt;p&gt;That code you write and how it all works together, as well as all the business logic around it and how everything is connected -- that &lt;em&gt;context&lt;/em&gt; &lt;strong&gt;WILL&lt;/strong&gt; be gone in just a few weeks of not working on it.&lt;/p&gt;

&lt;p&gt;When you have multiple codebases to touch or large codebases with multiple various complex functionalities, each piece will have &lt;em&gt;pick-up time&lt;/em&gt; which will take a &lt;strong&gt;lot longer&lt;/strong&gt; without documentation. (Pick up time is the amount of time it takes to be able to understand a given task and start making progress to finishing it.)&lt;/p&gt;

&lt;p&gt;I've personally found that writing the supporting documentation on what I've done helps &lt;strong&gt;me&lt;/strong&gt; a couple months in the future when I have to touch the project again.&lt;/p&gt;

&lt;p&gt;If it's code you know you will not touch for a while but will need to come back to, it may be worth the time investment to write the supporting documentation for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Help Your Teammates
&lt;/h2&gt;

&lt;p&gt;As we discussed above, code is complex and pick-up time takes a lot longer without written documentation.&lt;/p&gt;

&lt;p&gt;If you work in a team environment where your code &lt;strong&gt;will&lt;/strong&gt; be worked on by some other developer, then it would be even harder for them to pick up the context without written documentation.&lt;/p&gt;

&lt;p&gt;By writing supporting documentation on the what you've written, you're &lt;strong&gt;enabling&lt;/strong&gt; your teammates to be more productive.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Free Your time
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Have you ever gotten a meeting invite asking how things work? 🙋‍♀️&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Have you ever gotten emails asking how to do a particular task? 🙋‍♀️&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Have you ever gotten emails asking why something works a particular way and it's the same answer every time? 🙋‍♀️&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ever since I've started writing supporting documentation, I have had less meetings and emails around how things work/how to do things.&lt;/p&gt;

&lt;p&gt;If I encounter a meeting invite around a topic that isn't captured in the documentation, I create the documentation before the meeting if I have time, send it to the meeting requestor, and ask them to meet with me if the documentation is not suffice. If I don't have enough time before the meeting, I write the documentation afterwards because I &lt;strong&gt;know&lt;/strong&gt; it will save me meeting time in the future.&lt;/p&gt;

&lt;p&gt;I start a FAQ documentation on how to do specific tasks and around questions that have the same answers. I then point people to these when answering emails. Now they know in the future where to go to get their answers. If they do forget, it takes me much less time to give them a link to the FAQ documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Help Yourself Stand Out
&lt;/h2&gt;

&lt;p&gt;If you help &lt;strong&gt;others&lt;/strong&gt; be productive by writing documentation, you will set yourself apart and stand out.&lt;/p&gt;

&lt;p&gt;I've worked with a lot of developers, and few take the time to write documentation. So I am very appreciative when I encounter the ones that enable me to be productive because they took the time to write up supporting documentation, and it also saves me a meeting request.&lt;/p&gt;

&lt;p&gt;By writing supporting documentation, you set yourself apart and &lt;strong&gt;enable&lt;/strong&gt; others to be more productive. In my experience, developers who help others be more productive are the ones who get &lt;strong&gt;promoted&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documentation Caveat
&lt;/h2&gt;

&lt;p&gt;As with all things related to software development, documentation takes time and effort. Therefore, it requires some time management.&lt;/p&gt;

&lt;p&gt;There would be situations where there would be no time to write documentation due to critical project timelines.&lt;/p&gt;

&lt;p&gt;We, therefore, need to be cognizant of &lt;strong&gt;when&lt;/strong&gt; it's appropriate to &lt;strong&gt;invest&lt;/strong&gt; in writing documentation, and when it's not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap Up
&lt;/h2&gt;

&lt;p&gt;Writing documentation helps &lt;strong&gt;you&lt;/strong&gt; enhance your writing skills while enabling yourself and your teammates to be more productive. It also saves you time from meetings and emails in the future. By enabling others and having good written communication skills, you &lt;strong&gt;highly increase&lt;/strong&gt; your chances of getting &lt;strong&gt;promoted&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But we also need to realize that it takes effort and time, and we just have to also be aware when it makes sense to write it, and when it doesn't.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/cristinaruth" rel="noopener noreferrer"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zQj764Ae--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>documentation</category>
      <category>productivity</category>
      <category>softskills</category>
    </item>
    <item>
      <title>11 Things to Consider for More Accurate Developer Estimates</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Mon, 23 Dec 2019 15:15:57 +0000</pubDate>
      <link>https://forem.com/cristinaruth/11-things-to-consider-for-more-accurate-developer-estimates-1omp</link>
      <guid>https://forem.com/cristinaruth/11-things-to-consider-for-more-accurate-developer-estimates-1omp</guid>
      <description>&lt;p&gt;If you've been asked to do an estimate before, you'd agree it's easier said than done.&lt;/p&gt;

&lt;p&gt;The bigger the scope (how much to be done), the harder it is to estimate because the complexity increases and therefore, the ambiguity and unknowns increase, and the more room there are for bugs, mistakes and miscommunication.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Estimates
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;High-Level&lt;/strong&gt;. At this point, our business partners/clients just want to understand the total effort required for something they are &lt;em&gt;considering&lt;/em&gt; doing. They want a &lt;em&gt;gut&lt;/em&gt; estimate, something that takes a &lt;em&gt;few seconds&lt;/em&gt; to estimate. They don't want much time spent on even just estimating because they are not sure yet if it's worth the investment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Detailed&lt;/strong&gt;. Detailed estimates are when the project has already been &lt;em&gt;vetted&lt;/em&gt; and our business partners/clients want a &lt;em&gt;more accurate&lt;/em&gt; estimate on what it would take. We can then take the time to analyze it a bit more so we can come back with more defined tasks and a more defined timeline.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In my experience, &lt;strong&gt;high-level&lt;/strong&gt; estimates are used a lot more because they apply to a lot of things, and not just to estimate a project effort. They are also used to quick estimate &lt;strong&gt;features&lt;/strong&gt; and &lt;strong&gt;bugs&lt;/strong&gt; for easier prioritization on which ones are to be focused on.&lt;/p&gt;

&lt;p&gt;I've also found that I only do &lt;strong&gt;detailed&lt;/strong&gt; estimates at the start of a &lt;em&gt;just vetted&lt;/em&gt; project to help identify the various pieces and estimated timeline and effort of the project as a whole.&lt;/p&gt;

&lt;p&gt;Since &lt;strong&gt;high-level&lt;/strong&gt; estimates are done a lot more times than &lt;strong&gt;detailed&lt;/strong&gt; ones, this post will then focus on the things I usually consider when doing &lt;strong&gt;high-level&lt;/strong&gt; estimates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview of Things to Consider
&lt;/h2&gt;

&lt;p&gt;When providing a high-level estimate, here are all the things I consider in my head before giving an answer. We'll go through each one in detail below.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Identify the various pieces.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;My and my team of developers' familiarity with all the pieces.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Impact on existing functionalities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time to communicate and organize daily task progress and coordinating with my team of developers as well as our business partners/clients.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time to write unit tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time to write integration tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time to manually test.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time to log bugs, triage them, prioritize them, and retesting them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time to document what we have done, especially if it's a &lt;em&gt;major&lt;/em&gt; effort.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time to log bugs, triage them, prioritize them, and retesting them &lt;strong&gt;AFTER&lt;/strong&gt; going live.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time to train support operations staff to support the new functionality.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Depending on the thing we're estimating (project, feature or bug), not all of the above may apply, but I do go through this list in my head no matter what I'm estimating.&lt;/p&gt;

&lt;h2&gt;
  
  
  1 - Identifying the Various Pieces
&lt;/h2&gt;

&lt;p&gt;Even in high-level estimates, a &lt;em&gt;gut&lt;/em&gt; design on how the pieces work together will form in our heads of what it would take. Taking that design and breaking it down into multiple pieces then helps us identify the complexity.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What are all the various pieces involved in the work that is to be done?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How many systems and codebases are we touching?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How many APIs are we going to call?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Which databases do we connect to, if any?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What are the frameworks/plugins/architecture/packages/patterns that we need to use and/or apply?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since this is a high-level design, we can only use what we &lt;strong&gt;know&lt;/strong&gt; of the systems. So familiarity helps provide more accurate estimates. Which brings me to my next point.&lt;/p&gt;

&lt;h2&gt;
  
  
  2 - Familiarity with all the Pieces
&lt;/h2&gt;

&lt;p&gt;With all the pieces we were able to identify, what is our familiarty with all the pieces?&lt;/p&gt;

&lt;p&gt;I usually work with a team of developers, so for a safer estimate, I usually &lt;strong&gt;assume&lt;/strong&gt; that majority of them, including myself, will not be familiar with everything.&lt;/p&gt;

&lt;p&gt;I usually consider familiarity around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Codebases and structure&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Database schemas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Architectural patterns&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;APIs (is it a new API we're going to be using)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vendor solutions&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I then account for &lt;strong&gt;time to learn&lt;/strong&gt; -- reading the documentation, researching and even coordinating with a knowledgeable resource. A lot of times, there are multiple knowledgeable resources, one for each &lt;em&gt;piece&lt;/em&gt; we are not familiar with.&lt;/p&gt;

&lt;h2&gt;
  
  
  3 - Identifying Functionality Impact
&lt;/h2&gt;

&lt;p&gt;This thing that we are estimating -- is it a new functionality? Or is it updating an existing functionality? If so, then is it a &lt;strong&gt;core&lt;/strong&gt; one that would impact &lt;em&gt;multiple&lt;/em&gt; other functionalities when updated?&lt;/p&gt;

&lt;p&gt;Knowing this answer will help us gauge our overall testing effort. The more existing functionalities are impacted, the more testing we will have to be doing (i.e. regression testing).&lt;/p&gt;

&lt;p&gt;If your impacted functionalities have already existing unit tests and integration tests, then we'll also need to consider the effort to &lt;em&gt;update&lt;/em&gt; existing unit tests and integration tests as needed. Having existing unit tests and integration tests will definitely help &lt;strong&gt;reduce&lt;/strong&gt; the overall testing effort, because these will cover part of your regression testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  4 - Communication and Organization Overhead
&lt;/h2&gt;

&lt;p&gt;We'll also need to consider communication time and organization time to sort and execute through our daily tasks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;How much time would it take to organize through the tasks that we need to get done?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How much time would it take to provide updates to the team of what we got done, what is in progress, and what we're going to work on next?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How much time would it take to coordinate with the knowledge resources to get the information we need to complete our tasks?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How much time would it take to coordinate with my team of developers and answer their clarification questions?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How much time would it take to coordinate with our business partners/clients to clarify requirements and prioritize features/bugs?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Executing through a project requires a lot of communication between me, my team of developers, our business partners/clients, and our stakeholders. Communicating is part of the work if we want to ensure building that &lt;strong&gt;trust&lt;/strong&gt; relationship with the people we work with.&lt;/p&gt;

&lt;h2&gt;
  
  
  5 - Writing Unit tests
&lt;/h2&gt;

&lt;p&gt;If we're writing new functionality, and we've established that they are worth writing unit tests for, then we need to accommodate for the time to write them.&lt;/p&gt;

&lt;p&gt;Similarly, if you develop using TDD (test driven development), then your work effort will include this as well as the solution is developed.&lt;/p&gt;

&lt;h2&gt;
  
  
  6 - Writing Integration Tests
&lt;/h2&gt;

&lt;p&gt;If your team invests in integration tests, then these may need to be written as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  7 - Manual Testing
&lt;/h2&gt;

&lt;p&gt;Despite unit tests and integration tests being present, there is still manual testing that needs to be done.&lt;/p&gt;

&lt;p&gt;The less unit tests and integration tests you have, the more manual testing that will need to be done.&lt;/p&gt;

&lt;p&gt;This includes the initial manual testing done when development is complete. But, I also include the manual testing required &lt;strong&gt;each and every time&lt;/strong&gt; a bug is fixed, or a code change has been introduced due to shifted requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  8 - Bugs and More Bugs
&lt;/h2&gt;

&lt;p&gt;So we've written our automated tests and have done our manual testing. During our initial manual testing phase, it is highly likely that we will find bugs.&lt;/p&gt;

&lt;p&gt;Depending on how many bugs are found, there is effort to sort through them, triage them, prioritize them, fix them, test them and coordinate with the team on their status.&lt;/p&gt;

&lt;p&gt;Worse, bug fixes can introduce &lt;em&gt;more&lt;/em&gt; bugs so typically, bug fixes also include regression testing to ensure nothing else got broken.&lt;/p&gt;

&lt;h2&gt;
  
  
  9 - Updating Documentation
&lt;/h2&gt;

&lt;p&gt;If your team is invested in creating/maintaining documentation, this is also additional effort.&lt;/p&gt;

&lt;p&gt;Consider the size and complexity of the solution and how much the documentation needs to be updated/created.&lt;/p&gt;

&lt;h2&gt;
  
  
  10 - Stabilization after Going Live
&lt;/h2&gt;

&lt;p&gt;Despite all our testing efforts, we can only test so much scenarios ourselves. Our real users and real data puts our solution to the test.&lt;/p&gt;

&lt;p&gt;During this time, we are in &lt;em&gt;bugs and more bugs&lt;/em&gt; stage again, but uncontrolled and in the hands of our users.&lt;/p&gt;

&lt;h2&gt;
  
  
  11 - Handing Off to Operational Support
&lt;/h2&gt;

&lt;p&gt;For some teams, operational support (incidents when things are down/not working right, fixing production bugs, upgrading dependencies like servers, databases, plugins, etc) is handled by a different team.&lt;/p&gt;

&lt;p&gt;If this applies, then there is also additional effort in handing this off to the operational support team, and likely a duality will be present wherein there will be a time period where you and/or your development team will provide some support to the operational support team as they learn the solution until they can handle majority, if not all, of the problems/support questions that come through.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;Developing solutions not only includes development time, but analysis, communication, testing and stabilization.&lt;/p&gt;

&lt;p&gt;The larger the change size, the higher the complexity and the more difficult it is to estimate. Ambiguity and unknowns also increase the estimate because they also increase the complexity.&lt;/p&gt;

&lt;p&gt;The more detailed we can be when doing our estimates, the better our estimates will become.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/cristinaruth" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.buymeacoffee.com%2Fbuttons%2Fdefault-orange.png" alt="Buy Me A Coffee"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>consulting</category>
      <category>estimates</category>
    </item>
    <item>
      <title>Do you volunteer? Why/why not?</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Thu, 19 Dec 2019 12:00:55 +0000</pubDate>
      <link>https://forem.com/cristinaruth/do-you-volunteer-why-why-not-1hcf</link>
      <guid>https://forem.com/cristinaruth/do-you-volunteer-why-why-not-1hcf</guid>
      <description>&lt;p&gt;If you volunteer, what kinds of things do you do? Is it tech related or not?&lt;/p&gt;

&lt;p&gt;If you don’t, what is keeping you from volunteering? Schedule? Short-term vs long-term commitment? Other reasons?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>giveback</category>
      <category>techforgood</category>
    </item>
    <item>
      <title>What are your struggles as a beginner dev?</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Mon, 16 Dec 2019 04:18:31 +0000</pubDate>
      <link>https://forem.com/cristinaruth/what-are-your-struggles-as-a-beginner-dev-if0</link>
      <guid>https://forem.com/cristinaruth/what-are-your-struggles-as-a-beginner-dev-if0</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What could you use help in? &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What do you wish you knew? &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What's the thing you most struggle with?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
    </item>
    <item>
      <title>4 Steps To Grow Your People Skills</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Wed, 11 Dec 2019 11:01:46 +0000</pubDate>
      <link>https://forem.com/cristinaruth/4-steps-to-grow-your-people-skills-nfi</link>
      <guid>https://forem.com/cristinaruth/4-steps-to-grow-your-people-skills-nfi</guid>
      <description>&lt;p&gt;Talking with people is not easy. 6 years ago, I was immensely shy and found it hard to talk with people. Today, I give talks at conferences.&lt;/p&gt;

&lt;p&gt;In this post, I share my history, my journey, my learnings, and outlined them to 4 steps where &lt;strong&gt;YOU&lt;/strong&gt; can do it too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then and Now
&lt;/h2&gt;

&lt;h3&gt;
  
  
  6 years ago
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;I would rather code all day than to talk with people.&lt;/li&gt;
&lt;li&gt;I focused on myself and only worked with people if I had to.&lt;/li&gt;
&lt;li&gt;I pretended I was busy with my phone or something else when I found myself in an elevator with a stranger.&lt;/li&gt;
&lt;li&gt;I clammed up when speaking in front of a lot of people.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Today
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;I actually &lt;strong&gt;like&lt;/strong&gt; talking to people. In fact, I start feeling sad if I spend too many days coding by myself.&lt;/li&gt;
&lt;li&gt;I focus on others and continually seek out new people even if I don't have to work with them.&lt;/li&gt;
&lt;li&gt;I say hi and chat about the weather, or what's currently happening, with a stranger in an elevator. I also smile and say hi to people I "meet" in the hallways.&lt;/li&gt;
&lt;li&gt;I can talk comfortably in front of a lot of people. I still get nervous, but it's way easier now.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Happened?
&lt;/h2&gt;

&lt;p&gt;The first couple of years, I think it was mainly due to increased job responsibilities -- becoming more of a lead/senior dev. As part of that, I had to interact and talk with people a &lt;em&gt;lot&lt;/em&gt; more. I had to clarify requirements, ask questions, set expectations, coordinate with testers, etc.&lt;/p&gt;

&lt;p&gt;Over the years, I learned to "banter" and "small talk" through trials and errors and practice -- &lt;em&gt;lots&lt;/em&gt; of practice.&lt;/p&gt;

&lt;p&gt;Then, a few years ago, I read a couple of books (mentioned below) that radically changed my view from &lt;em&gt;me&lt;/em&gt; to &lt;em&gt;you&lt;/em&gt; -- and &lt;strong&gt;genuinely&lt;/strong&gt; caring for others, their needs and listening.&lt;/p&gt;

&lt;p&gt;It was hard but after reading those books, I actively &lt;strong&gt;tried&lt;/strong&gt; doing things that I was super uncomfortable about -- like...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Saying hi to complete strangers&lt;/li&gt;
&lt;li&gt;Speaking in front of people&lt;/li&gt;
&lt;li&gt;Making small talk&lt;/li&gt;
&lt;li&gt;Finding topics to talk about, and&lt;/li&gt;
&lt;li&gt;Keeping conversations going&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There were a LOT of cringy and mortifying moments like...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;OMG. That did NOT go well. So embarrassing!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But despite those, I still kept on trying. And trying. And trying. And telling myself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;OK. That was not good, but let's focus on what YOU can learn from this and learn what NOT to do next so we can improve!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And somehow, suddenly, I realized that I can talk with people better and I can talk in front of people better. It's &lt;em&gt;easier&lt;/em&gt;! Note the &lt;em&gt;er&lt;/em&gt;. It's still hard, but it's not as gut-wrenching as I found it before.&lt;/p&gt;

&lt;h2&gt;
  
  
  How You Can Do It Too
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Note: This section does not contain affiliate links.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Read the Book "How to Win Friends and Influence People"
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/How-Win-Friends-Influence-People/dp/B0006IU7JK/ref=sr_1_2?crid=NPQNKD77KGQY&amp;amp;keywords=how+to+win+friends+and+influence+people&amp;amp;qid=1576022195&amp;amp;sprefix=how+to+win+friend%2Caps%2C215&amp;amp;sr=8-2"&gt;How to Win Friends and Influence People&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This book helped me focus on others instead of myself, and oddly enough, by focusing on others, I have actually benefitted &lt;strong&gt;more&lt;/strong&gt; by forming more genuine connections and had a huge part in earning me a &lt;strong&gt;promotion&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you find yourself struggling to talk with people like I described above, give this book a shot and see what kind of learnings you can take from it. Check your local library if they have a copy. Take notes as you read. Make a cheat sheet for your reference for your daily life.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Read the Book "The 7 Habits of Highly Effective People"
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/Habits-Highly-Effective-People-Powerful/dp/1451639619/ref=sxts_sxwds-bia?crid=2FGADSH971NBN&amp;amp;keywords=7+habits+of+highly+effective+people&amp;amp;pd_rd_i=1451639619&amp;amp;pd_rd_r=1cdf1a12-a168-4738-9af7-6bf40a34d593&amp;amp;pd_rd_w=kJbF4&amp;amp;pd_rd_wg=xnM4X&amp;amp;pf_rd_p=1cb3f32a-ccfd-479b-8a13-b22f56c942c6&amp;amp;pf_rd_r=R08GTY3FAHEMG7VQQP36&amp;amp;psc=1&amp;amp;qid=1576021033&amp;amp;sprefix=7+habits+o%2Caps%2C212"&gt;The 7 Habits of Highly Effective People&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I honestly thought this was a productivity book. Little did I know that it contained lots and lots of life lessons within. One of the biggest lessons I took from this book was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Seek first to understand, than to be understood.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is huge when talking with people, especially conflicts, which is inevitable in any relationship, personal or professional.&lt;/p&gt;

&lt;p&gt;This book &lt;strong&gt;enhanced&lt;/strong&gt; the learnings I got from &lt;code&gt;How to Win Friends and Influence People&lt;/code&gt;, and taught me more about relationships, both personal and professional, as well as teaching me how to determine what I really want and then take actions on those wants/goals.&lt;/p&gt;

&lt;p&gt;If you'd like to further improve your relationships, as well as learn how to set your goals and take action, check your local library and see if they have a copy. Take notes. Make a cheat sheet!&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Apply Your Learnings
&lt;/h3&gt;

&lt;p&gt;Keep them small -- &lt;strong&gt;one thing&lt;/strong&gt; you can do for that day. And then &lt;strong&gt;make sure&lt;/strong&gt; to celebrate that you tried! No matter the result -- whether you succeeded or not. Be kind to yourself, and help yourself through this. Change is hard. But it only will happen through persistence despite hard times. Learn from your mistakes and you &lt;strong&gt;will&lt;/strong&gt; eventually succeed!&lt;/p&gt;

&lt;p&gt;Some small things I tried that you can try too:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Say hi to a stranger.&lt;/li&gt;
&lt;li&gt;Remembering to ask a person who asked how I was - &lt;code&gt;how are YOU?&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Remembering to &lt;strong&gt;listen&lt;/strong&gt; to the other person I'm talking to. Instead of thinking and thinking on what &lt;em&gt;I&lt;/em&gt; am going to say next.&lt;/li&gt;
&lt;li&gt;Strike up a conversation with a random stranger.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A tip I read somewhere I found really helpful when talking with random strangers is to comment on something you &lt;strong&gt;both&lt;/strong&gt; are experiencing OR having experienced. This is why the weather is such a common small talk topic! We all are experiencing the same weather when we're in the same physical space. A similar conversation starter is asking how their conference experience is so far (if you're attending a conference).&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Go Bigger
&lt;/h3&gt;

&lt;p&gt;When you've done the small things above consistently to the point that you got better, you'll just randomly realize that you are better at interacting with people. It's just a &lt;em&gt;bit&lt;/em&gt; easier than it was before.&lt;/p&gt;

&lt;p&gt;Keep challenging yourself at this point. Keep practicing. Go &lt;em&gt;bigger&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Some big things I tried that you can try too:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Submitted and presented talks for conferences.&lt;/li&gt;
&lt;li&gt;At conferences, sat at tables where complete strangers were sitting AND talked with them.&lt;/li&gt;
&lt;li&gt;Joined in in-progress conversations where people were already talking.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is definitely scarier. I did my first &lt;em&gt;big conference&lt;/em&gt; talk in September this year, and I was &lt;em&gt;nervous&lt;/em&gt;! It's very different being up in front of a bunch of people rather than just talking in-person with 1 or a few people. My instinct was to just quit and stop because it would be easier to do that.&lt;/p&gt;

&lt;p&gt;But if I had done that, I would not have been able to give my talk. I would've not been able to grow.&lt;/p&gt;

&lt;p&gt;My talk went fine -- I felt &lt;em&gt;really&lt;/em&gt; awkward -- but I had chosen a topic I &lt;strong&gt;knew&lt;/strong&gt; by heart and so, talking about it, the words just came flowing out of my mouth. It was easy to talk about it because I knew the topic so well.&lt;/p&gt;

&lt;p&gt;And I &lt;strong&gt;celebrated&lt;/strong&gt; that I did it. That I tried it.&lt;/p&gt;

&lt;p&gt;It is so important to celebrate our small wins, and celebrate the fact that we just &lt;em&gt;tried&lt;/em&gt; it. &lt;strong&gt;You&lt;/strong&gt; can do it too!&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;I'm still not perfect in talking with people and I will &lt;strong&gt;never be&lt;/strong&gt; and that is &lt;strong&gt;perfectly okay&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You&lt;/strong&gt; will never be either and that is also perfectly okay! Just keep learning, trying, practicing and celebrate your small wins. What matters is that you are &lt;strong&gt;better&lt;/strong&gt; than how you were before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.com/Crucial-Conversations-Talking-Stakes-Second/dp/0071771328/ref=sr_1_1?crid=2APG4R23BEZ6X&amp;amp;keywords=crucial+conversations&amp;amp;qid=1576061485&amp;amp;s=books&amp;amp;sprefix=crucial+con%2Cstripbooks%2C195&amp;amp;sr=1-1"&gt;Crucial Conversations Tools for Talking When Stakes Are High, Second Edition&lt;/a&gt; - I found this book helpful on dealing with conflicts with people and being able to navigate those conversations especially with emotions run high. After you've read the other books above and want more, this is another book that can help you hone those people skills.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/cristinaruth" rel="noopener noreferrer"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zQj764Ae--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>softskills</category>
      <category>personalgrowth</category>
    </item>
    <item>
      <title>14 Skills You Need To Be A Successful Developer Consultant</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Tue, 03 Dec 2019 19:18:59 +0000</pubDate>
      <link>https://forem.com/cristinaruth/14-skills-you-need-to-be-a-successful-developer-consultant-58n4</link>
      <guid>https://forem.com/cristinaruth/14-skills-you-need-to-be-a-successful-developer-consultant-58n4</guid>
      <description>&lt;p&gt;As developer consultants, we generally work with clients, majority of whom are not technical, to help deliver a software solution to their problems.&lt;/p&gt;

&lt;p&gt;It's not always easy because technical skills alone would not result in a happy client, and I was curious what key skills you need to have to be a successful one. So I chatted with a couple of other local Madison devs and we discussed what we think these key skills are.&lt;/p&gt;

&lt;p&gt;Below is a summary of our key points and our chat log behind each one.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Learning
&lt;/h2&gt;

&lt;p&gt;Having the &lt;strong&gt;ability to learn &lt;em&gt;and&lt;/em&gt; how fast you learn&lt;/strong&gt; will impact your consulting relationship with your client. There are many things to learn like the client's business, their needs/problems, who knows which, even their codebase and tech stack. It's similar to &lt;strong&gt;adaptability&lt;/strong&gt; , and certainly having a &lt;strong&gt;positive attitude&lt;/strong&gt; and &lt;strong&gt;I can do it attitude&lt;/strong&gt; will help you tackle all of the things that need to be learned and adapted to.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; An employee is expected to have some ramp-up time to absorb the stack, the company, the culture, etc, but a consultant is expected to be productive as quickly as possible. That means the entire engagement depends on the consultant learning as much as possible as fast as possible -- understanding the client's business, their needs, their problems, how to get results from other people in the company, who to talk to for what, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Ah so can this also mean &lt;strong&gt;adaptability&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; I think there's a lot of overlap there&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Yeah, I think a positive attitude is also key here&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; There's a lot of things to tackle&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Having an "I can do it" attitude will keep you resilient in all the things that need to be done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Definitely. It's also a great way to build exposure to a wide breadth of things. The "sure, I'll take that on" attitude keeps you relevant as technology and the business keep moving forward.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  2. Ability to Listen
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Listen&lt;/strong&gt; to your client, ask further &lt;strong&gt;questions&lt;/strong&gt; and &lt;strong&gt;read between the lines&lt;/strong&gt; to determine if what they're asking for really would meet their needs. A lof ot clients come with assumed solutions already in mind and part of the consultant's work is to ensure that the client gets the appropriate solution that fits &lt;em&gt;their&lt;/em&gt; needs.&lt;/p&gt;

&lt;p&gt;But it's tricky. While doing this, you have to be careful on ensuring the &lt;strong&gt;client still feels heard&lt;/strong&gt; and does not feel arrogance coming from your end.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; You have to be able to listen very carefully hear to what your client is really asking for versus what he/she may be asking for at face value. "Listening" encompasses asking good questions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Oh, yeah, reading between the lines!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; That's a good point. Clients usually assume you know all about their business and general things about their problem. Sometimes getting results means putting on the deerstalker hat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; Example: we've learned the hard way that clients don't always really know what platform (!) they should really be targeting. We've built web apps that the client later decided should be mobile, and vice versa. More careful inquiry, poking and prodding at the early stages, versus, simply taking the ask at face value would have saved both of us time &amp;amp; $.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; And also, the client needs to feel that they're actually heard right?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; It's a careful line to listen between the lines and making the customer not feel like they're heard and just sensing arrogance from the consultant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; def&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  3. Expectation Management
&lt;/h2&gt;

&lt;p&gt;Setting expectations applies not only to customers/clients, but also team members, bosses and executives. It can also apply to your personal life, like with a significant other, a friend, a child, a parent, a relative or an acquaintance.&lt;/p&gt;

&lt;p&gt;Ensure &lt;em&gt;they&lt;/em&gt; know what to expect from you so that you can manage and build their &lt;strong&gt;trust&lt;/strong&gt; in the relationship. This means a lot of &lt;strong&gt;proactive&lt;/strong&gt; communication, and asking clarifying questions if you are not sure about something.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; So by Expectation Management, I mean that developers should be able to set expectations with customers and teammates, if applicable. This means, letting them know what's coming next, what to expect, what are the good things, what are the bad things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Wrong expectations would result in people getting upset because expectations weren't managed well enough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; For example, I am working with a customer and they asked me to develop something.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; If I didn't manage expectations well, I would say I'll get this done within a week.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; If I did, I could say that I need more information, and some time to research, and I don't know the exact timeline yet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; I've found this to be crucial for building trust with the client&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; Managing client expectations is hugely important, and not always easy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; so — yeah, good one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  4. Negotiation
&lt;/h2&gt;

&lt;p&gt;As mentioned, clients/customers can have specific solutions already in mind, and sometimes, that means asking for &lt;em&gt;impossible&lt;/em&gt; things. This &lt;a href="https://www.youtube-nocookie.com/embed/BKorP55Aqvg"&gt;short youtube comedy sketch&lt;/a&gt; demonstrates how difficult that can be. Being able to counter and negotiate their asks while keeping that &lt;strong&gt;trust&lt;/strong&gt; in the relationship will ensure the client gets what they really need.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Customers can tend to ask for impossible things. Having the ability to counter their asks and explain things in a way that they can see the benefit to them, can mean $$$ saved for the customers and more efficient solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; good one also&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; This is a good one but also difficult to master. I have not 😟 but my go-to tactic is to find a win-win-win by understanding what's driving the client.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; I don't think anybody would ever master this. It's so hard!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kendell:&lt;/strong&gt; I've found while consulting for Horticulture, before switching to tech that self worth is a big part of negotiation. That way you don't feel guilty asking for a deal that respects your time &amp;amp; financial expectations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Somewhere I read that negotiation should always be approached from a position of power - even if the only "power" is that you can walk away.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Hmm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Doesn't sound quite right?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; In a consultant role, you don't have that position of power&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; I think it depends on the individual. I was sent to a client recently and found the manager to be an absolutely terrible person, and it was very bad for their dev team. I informed my boss I wouldn't be returning and felt the moral situation strong enough to say my employer could either keep me and not send me back or lose me. A couple of weeks later the manager was let go.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Wow&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; I'm glad to hear you have your employer support on this one&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Everything's shades of intensity, but if the worst case happens, there's always another job&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; I think that's easier for people with years of experience on their belt&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; It's hard for someone who's just starting out. their bargaining power is pretty low&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; I think there's a bell curve. Having no experience definitely lessens that power. 3-6 years of experience is where the power maximizes because that's where the highest number of positions are. 7+ reduces in power again because the number of options becomes more limited.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Wait. interesting. Why do you think 7+ reduces the power?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; But in the end I see it as being about self-respect. Gotta eat Ramen for a few months to get out of a toxic job? Do it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Harder for people wtih families though. Especially if you don't have the backup savings to not really care about keeping your job&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Still curious why would 7 years of experience reduce the number of options&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; IMO it's a function of specialty and salary. 7+ years usually means you're in a niche or deep in a specific industry or set of technologies. Shifting to a job in a different area would require taking a pay cut because you're basically the equivalent of someone with 2-3 years of experience in that area. Not many people are willing to take that drastic of a measure (though we have seen several recently at my company).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Oh, good point. didn't realize that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Family/savings as a limiter is definitely true, but there are always other jobs. TekSystems will take anyone who hasn't been a zombie for more than four or five months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; True, but the quality of the position would be questionable right?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Oh, undoubtedly, but if it's just a temp position while searching for a "real" job, it's a way to pay the bills/support the family until something better is available&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; True enough, good point&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  5. Explain Technical Concepts
&lt;/h2&gt;

&lt;p&gt;When going to the doctor and they bring up a medical term about what you have and does not explain what it is, do you find yourself getting frustrated?&lt;/p&gt;

&lt;p&gt;In our technical software world, a lot of terms are &lt;strong&gt;jargon&lt;/strong&gt;. We get so used using them every day that we forget which words are jargon. When working with clients, we need to be &lt;strong&gt;more aware&lt;/strong&gt; of the terms we use, watch for confused facial expressions, and be able to explain them in a non-condescending way to ensure and keep that &lt;strong&gt;trust&lt;/strong&gt; in the relationship.&lt;/p&gt;

&lt;p&gt;Recently, our cat had to have a lot of tests because they felt her kidneys were larger than normal during her last physical exam. Throughout the process, the vet explained &lt;em&gt;everything&lt;/em&gt; in layman's terms that I could understand and I was &lt;em&gt;very&lt;/em&gt; appreciative of that.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Having the ability to be able to explain technical concepts to people who don't understand them will set a consultant apart.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Think explaining CORS to a customer, and being able to explain it more with relatable common objects where non-technical people can relate. Or explaining technical debt. Being able to do so will help convince customers of concepts you want them to do. 🙂&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; We see this often as many of our clients have a vague idea for their business but know nothing about tech, electronics, materials, or design. They get frustrated if we can't explain why building their thing has a line item for user account management or whatever.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; Yep, doing so in a way that client doesn’t feel stupid . I have a hard time keeping up with concepts and esp their acronyms in parallel techs all the time. And things change so fast..&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Yeah, very key! If you explain it in a condescending way, then you're destroying that client relationship trust&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Ooh, I'm going to run with that one&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  6. Agnosticism
&lt;/h2&gt;

&lt;p&gt;As consultants, our role is to solve our client's problems in the best way that we can. We should then be careful to pick the technologies for our solution that best fit our clients, and try to avoid using the technologies just because we really like them or would like to play with them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; It’s easy to get married to a favorite tech or toolchain, but it may not always be the best fit for your client. One size doesn’t always fit all..&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; OOOOH!!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; I love this one&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Choose the tech that's best for the business/client/users rather than your favorite ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Nice one! Some clients already have their stack embedded in stone, and being unwilling to conform can lose the business or make the project a lot harder.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  7. Organization
&lt;/h2&gt;

&lt;p&gt;Software is &lt;strong&gt;complicated&lt;/strong&gt;. There are a lot of tasks, requirement clarifications, bugs, steps to implement, etc. The better your organization skills are, the better you'll be able to keep track of outstanding tasks, which ones need follow up, map out the big picture, and prioritize which tasks are &lt;em&gt;critical&lt;/em&gt; to be done &lt;em&gt;now&lt;/em&gt;. Being able to do these would result in efficiency and therefore cost less $$$ as the project progresses.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Organization skills can help you keep track of all the things that need to be done TODAY vs LATER.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; It can help you keep notes of what was discussed with clients, past decisions and paths forward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Knowing what can be done TODAY vs LATER will also help keep you focused and know when to set expectations and communicate with your client;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Being focused would mean efficiency in spending $$$ therefore reducing cost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; +1&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Nice. It also contributes to building an organized project - setting appropriate priorities (e.g. critical path items) and focusing on what the client requires sooner rather than later.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  8. Realism
&lt;/h2&gt;

&lt;p&gt;We all would like things to go as best they could, but this is not always the case, especially in our software world where there is a lot of ambiguity. So being able to have a realistic lens on can help with expectation management and also help build that trust relationship with your client.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; This maybe overlaps with several of the other ideas, inc. Expectation Management — but this also might be one of the areas I’m personally worst at. For instance, building out realistic timelines — I find I’m almost always way too optimistic, even after doing this kind of thing for a long time…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Hmmm Yeah, it's related but different also. I think we all want to be optimistic but reality doesn't quite let us achieve that desired timeline&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Communicating the reality also to clients can be tough&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; yep &amp;amp; yep&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; re estimating, I triple my worst-case estimate and they're dead-on. Not joking - at the end the estimate is always within a relative handful of hours of the actual work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Estimating is hard. It also depends on how well you know the system if the system exists already.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; If it's a new system, then there's even more unknowns in terms of integrations with new/existing technologies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; It's definitely more art than science!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  9. Empathy
&lt;/h2&gt;

&lt;p&gt;Being able to understand your client and be able to see things from their perspective will help you better solve their problems and also help build trust. Empathy not only plays a role in your client relationship but in all aspects of your career like building trust with coworkers, or building trust/keeping morale with your team of developers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Really just a facet of client relations - understanding the client's motivations, situation, desires, limitations, etc from their perspective provides not only an alignment of purpose but also builds trust&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; oh yeah. And in larger projects, if you're a lead of other devs, empathy also plays a role in your team being efficient because your team's morale would be higher.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; I think this also goes for your clients’ users too — kind of an extension of what I was trying to say about Listening&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Very nice point about the users. Too often, we end up forgetting about the end users&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Agreed, part of satisfying the client is making them look good to their clients&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Feed the Elephant theory extended a level&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  10. Business Understanding
&lt;/h2&gt;

&lt;p&gt;We developers can get really technical and love to solve problems with code. But we have to remember that ultimately we are developing solutions for &lt;strong&gt;business reasons&lt;/strong&gt;. Along with empathy, the more we understand the business, their priorities, their goals, their needs, the better we are able to solve their problems.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; We develop software for businesses!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; The more we understand that business, their processes, their customers, and their needs, the better the solution we will end up creating for them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; This one is high on my list. There are lots of projects that are just clean-up jobs because someone wanted to try some new technology or do something they hadn't done before. At the end of the day devs are responsible for making money for the business, not satisfying an itch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Too many a times I've seen devs develop solutions because it's a shiny new tech. The business $$$ should be the end goal, not to play with new tech.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Can always play with new tech as part of a hackathon or something.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Or just because it's a Saturday! I ported my ping-pong scoring system to a Pi 1 the other day because my laptop died. Learned about changing expectations (the Pi 1 was amazing in its day, but no longer "fast")!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  11. Out-of-the-Box Thinking
&lt;/h2&gt;

&lt;p&gt;Sometimes, we get too stuck in our way of thinking because we're just &lt;em&gt;too close&lt;/em&gt; to the problem. There is value in &lt;em&gt;seeking perspective&lt;/em&gt; from outsiders outside of the box, &lt;em&gt;listen&lt;/em&gt; and &lt;em&gt;consider&lt;/em&gt; their points of view.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; sometimes the inspiration for an innovative approach to a problem comes from a completely different discipline or field&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Good one! It's so easy to get into this. This is why I often seek out non-team devs on opinions because it's so easy to get too in the box.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  12. Documentation
&lt;/h2&gt;

&lt;p&gt;Documentation is not fun, but it does &lt;em&gt;really&lt;/em&gt; help because we're building a &lt;em&gt;product&lt;/em&gt; and documentation is the piece of booklet that we get when we buy something from the store that needs to tell us users how to operate it.&lt;/p&gt;

&lt;p&gt;Similarly, the software we're building &lt;strong&gt;is&lt;/strong&gt; a product, and we need to build a manual to tell other users how to &lt;strong&gt;support&lt;/strong&gt; it. For software, &lt;code&gt;other users&lt;/code&gt; = the client/business owner and other developers who have to either add to it, or fix some bugs.&lt;/p&gt;

&lt;p&gt;No documentation also usually means &lt;strong&gt;bottlenecks&lt;/strong&gt; because only 1 resource knows how it works, and bottlenecks significantly slows agility.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; a no-brainer, but often a place where freelancer’s esp cut corners — after all, the client usually doesn’t care (at first!) if the code is well documented and organized&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Also, selling this as a key need to the customer&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Of course, need documentation to operationally support the software you've built&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; How will YOU know how it works in the future, or even worse, some other dev who did not build it?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; This bites me every time I revisit old personal projects&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Ha. Me too. Biting me already on a personal project of mine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; I...may have lost the source code for an executable I want to make updates to. That might ok because there weren't any comments in the code to start with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Organizationally, we have bottlenecks because of the lack of documentation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; only some specific people know how X works&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; so, then, only those people can work on X&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Ahh, yeah. We just dealt with a client who was all .Net except that one critical microservice that someone decided to try out Python on (and document nothing)...and then he left. So they keep hiring people to figure out how it works, saddling them with the microservice for a while, and repeating it when they quit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Whoa lol&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  13. Stewardship
&lt;/h2&gt;

&lt;p&gt;As consultants, we need to keep the client's best interest. Steve says it best in the chat log below.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; 👍 good one&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Consultants are responsible for spending the client's money wisely. There are lots of ways that can manifest, but it comes down to acting in the best interest of the client at all times - even if your employer wants you to do otherwise. A trust relationship is paramount in consulting, especially in a small town like Madison.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  14. Flexibility
&lt;/h2&gt;

&lt;p&gt;As consultants, we also need to be flexible on what can or cannot be done. We can negotiate as much as we want, but too much negotiation can turn our client relationships sour. We need to choose our battles wisely, and to know which ones to let go.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; While it's important to negotiate with clients on what's right, it's still important to be flexible if the negotiation doesn't work out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; Don't get too stuck on your opinions because ultimately, the customer being happy is what matters and if we remain stubborn, then customers will just get frustrated and we will NOT get anything done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; def&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Wait, where are technical skills?
&lt;/h2&gt;

&lt;p&gt;As consultants, we definitely need technical skills to be able to build technical solutions for our clients. We all agree they're required.&lt;/p&gt;

&lt;p&gt;However, Steve brings up an interesting point on how some employers actually didn't care if the candidates could code, they just wanted someone &lt;strong&gt;they could train to code&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; I mean, I'm not surprised, but none of our list involves technical skills.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cristina:&lt;/strong&gt; It's of course a given that you need technical skills to be able to consult successfully.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; Technical skills can be acquired through on-the-job training, but interpersonal/business skills are more artsy and nuanced&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; I've had employers who didn't care if candidates could code, they just wanted someone they could train to code&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bo:&lt;/strong&gt; Right, maybe a discussion for another day — the skills / disciplines that one needs to code etc don’t completely overlap those that are needed to consult&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve:&lt;/strong&gt; I think a lot of valuable consulting skills are also valuable manager-ing skills&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;To be a successful developer consultant requires not only technical skills, but a myriad of interpersonal/business skills, which are harder to master. But as long as we're aware of them and continuously try to improve, then we're already doing better than how we were before.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/cristinaruth" rel="noopener noreferrer"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zQj764Ae--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>consulting</category>
      <category>softskills</category>
    </item>
    <item>
      <title>Comic: The Lost Kitty</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Fri, 29 Nov 2019 23:54:07 +0000</pubDate>
      <link>https://forem.com/cristinaruth/comic-the-lost-kitty-54kb</link>
      <guid>https://forem.com/cristinaruth/comic-the-lost-kitty-54kb</guid>
      <description>&lt;p&gt;Randomly wrote this comic and wanted to share in case anybody would like it. 😄&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OKPnHVlp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/2in3vas0oxe06t8cieoo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OKPnHVlp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/2in3vas0oxe06t8cieoo.png" alt="The Lost Kitty Comic"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>random</category>
      <category>comics</category>
    </item>
    <item>
      <title>Get notifications for new posts under followed tags</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Thu, 28 Nov 2019 14:11:09 +0000</pubDate>
      <link>https://forem.com/cristinaruth/get-notifications-for-new-posts-under-followed-tags-19dk</link>
      <guid>https://forem.com/cristinaruth/get-notifications-for-new-posts-under-followed-tags-19dk</guid>
      <description>&lt;p&gt;Is there a way to do this? I have lots of tags followed but the home page gets a little too busy and I probably miss a bunch of them.&lt;/p&gt;

&lt;p&gt;I checked the FAQ on how to where to send suggestions -- couldn't find any, so I'm posting it here. &lt;/p&gt;

</description>
      <category>meta</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>How to Use Your Custom Domain with Your Site on Netlify</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Wed, 27 Nov 2019 02:47:46 +0000</pubDate>
      <link>https://forem.com/cristinaruth/how-to-use-your-custom-domain-with-your-site-on-netlify-2l3f</link>
      <guid>https://forem.com/cristinaruth/how-to-use-your-custom-domain-with-your-site-on-netlify-2l3f</guid>
      <description>&lt;h1&gt;
  
  
  Purchase Your Domain
&lt;/h1&gt;

&lt;p&gt;If you don't already own your domain, purchase one. Personally, I prefer &lt;a href="https://domains.google.com"&gt;https://domains.google.com&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Manage DNS CNAME Record
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Within Netlify, go to the site you want to add a custom domain to.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click the &lt;code&gt;Domain Settings&lt;/code&gt; button.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under the &lt;code&gt;Custom Domains&lt;/code&gt; section, click on &lt;code&gt;Add domain alias&lt;/code&gt; button.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Type in your domain as &lt;code&gt;www.yourdomain.com&lt;/code&gt; and click the &lt;code&gt;Save&lt;/code&gt; button.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your new domain should now be listed in the &lt;code&gt;Custom Domains&lt;/code&gt; section, but you will see that next to it is a warning sign with the text &lt;code&gt;Check DNS Configuration&lt;/code&gt;. Click on that text.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A &lt;code&gt;DNS Configuration&lt;/code&gt; window pops up telling you to point the &lt;code&gt;www CNAME&lt;/code&gt; record to Netlify. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to where you purchased your domain and find a way to manage the &lt;code&gt;DNS&lt;/code&gt; settings. If it's in Google Domains, then go to domains.google.com and go to their &lt;code&gt;DNS&lt;/code&gt; settings via the menu on the left.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Near the bottom of the page, under the &lt;code&gt;Custom resource records&lt;/code&gt;, scan it to see if there is any existing &lt;code&gt;CNAME&lt;/code&gt; entries. If so, either update that or delete it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add a new &lt;code&gt;CNAME&lt;/code&gt; entry with the following values:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Name: &lt;code&gt;www&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Type: &lt;code&gt;CNAME&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;TTL: &lt;code&gt;1H&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Value: &lt;code&gt;the-value-netlify-gave-you.netlify.com&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;DNS records can take up to 48 hours to propagate. So check again in about a day in the same &lt;code&gt;Custom Domains&lt;/code&gt; section and see if the text next to your custom domain has changed to something around &lt;code&gt;Check nameservers&lt;/code&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Update Name Servers
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Click the text and Netlify will show you domains to use as nameservers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go back to where you purchased your domain and again, go to the &lt;code&gt;DNS&lt;/code&gt; management settings. Within domains.google.com, we go to &lt;code&gt;DNS&lt;/code&gt; settings and then the &lt;code&gt;Name servers&lt;/code&gt; section.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For domains.google.com, we click on &lt;code&gt;Use custom name servers&lt;/code&gt;, add each domain that Netlify gave us (example is ns2.netlify.com), and click the Save button.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Since this is a DNS change, it can take up to 48 hours to propagate. So we play the waiting game again. Check again in about a day or so. When everything is working right, the &lt;code&gt;Netlify DNS&lt;/code&gt; text will show up next to your custom domain.&lt;/p&gt;

&lt;h1&gt;
  
  
  SSL
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;BONUS:&lt;/strong&gt; Netlify automatically gives you a free SSL certificate even with a custom domain. This allows users to access your site via &lt;code&gt;https&lt;/code&gt; and keeps browsers from throwing users a warning around your site not being secure.&lt;/p&gt;

&lt;p&gt;You can check this by going to the &lt;code&gt;SSL/TLS certificate&lt;/code&gt; section. It may take about a day again for this after you complete the name servers setup.&lt;/p&gt;

&lt;h1&gt;
  
  
  And You're Done!
&lt;/h1&gt;

&lt;p&gt;Now, you've got your custom domain on your site. Yay!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/11sBLVxNs7v6WA/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/11sBLVxNs7v6WA/giphy.gif" alt="Yay"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/cristinaruth" rel="noopener noreferrer"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zQj764Ae--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>netlify</category>
    </item>
    <item>
      <title>The Password Struggle</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Thu, 21 Nov 2019 17:03:49 +0000</pubDate>
      <link>https://forem.com/cristinaruth/the-password-struggle-4g1i</link>
      <guid>https://forem.com/cristinaruth/the-password-struggle-4g1i</guid>
      <description>&lt;p&gt;Today's digital world has accounts everywhere. That means logins and passwords.&lt;/p&gt;

&lt;p&gt;But systems get hacked, hackers get our login info and our accounts get compromised. And now, we got a problem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/ZajGATIGCQFCE/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/ZajGATIGCQFCE/giphy.gif" alt="Problem"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So some solutions then pop up. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/31lPv5L3aIvTi/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/31lPv5L3aIvTi/giphy.gif" alt="Yay"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Like Multi-Factor Authentication. So then, if someone gets a hold of your password, if you have this setup, you can stay &lt;em&gt;safe&lt;/em&gt;. Er. Safe-&lt;em&gt;er&lt;/em&gt;. If someone gets ahold of your "factor" (which is less likely), then you're in trouble again.&lt;/p&gt;

&lt;p&gt;Or, the bajillion ways multiple websites require you to have various different letter, symbol, capitalized and lower-case letters to ensure a more secure password.&lt;/p&gt;

&lt;p&gt;Or, the bajillion systems who require you to change your password every x days.&lt;/p&gt;

&lt;p&gt;Or, the push for you to use different passwords for every single thing.&lt;/p&gt;

&lt;p&gt;Which causes yet another issue because then, we have &lt;strong&gt;so many&lt;/strong&gt; passwords, and we can't fit it all in our brain, so then we forget and we reset our passwords, and we have yet to &lt;strong&gt;remember another one&lt;/strong&gt;. Which we will likely forget &lt;strong&gt;again&lt;/strong&gt; anyway.&lt;/p&gt;

&lt;p&gt;So now, we got the problem of too many passwords, so we get password management solutions to remember our passwords for us.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/KmTnUKop0AfFm/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/KmTnUKop0AfFm/giphy.gif" alt="AHHHHHH"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I mean, &lt;code&gt;login with x platform&lt;/code&gt; makes things better and easier, but not all systems support it, and it usually also means my data is shared.&lt;/p&gt;

&lt;p&gt;All of these solutions and problems seem to go back to &lt;strong&gt;one thing&lt;/strong&gt;: passwords.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/3ohs7Ps45sznsObPMc/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/3ohs7Ps45sznsObPMc/giphy.gif" alt="Aha"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So. Is there any password-alternative out there to be able to have access to an account? There &lt;em&gt;has&lt;/em&gt; to be some other thing? I tried a quick google and couldn't find &lt;em&gt;anything&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Do &lt;strong&gt;you&lt;/strong&gt; know of any alternative solutions? Please save us from this password struggle that has overrun our digital experience today! 😭&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>rant</category>
    </item>
    <item>
      <title>What is a Team Lead? What is a Tech Lead? Are they the same or different?</title>
      <dc:creator>Cristina Ruth</dc:creator>
      <pubDate>Tue, 19 Nov 2019 12:16:32 +0000</pubDate>
      <link>https://forem.com/cristinaruth/discuss-what-is-a-team-lead-what-is-a-tech-lead-are-they-the-same-or-different-139i</link>
      <guid>https://forem.com/cristinaruth/discuss-what-is-a-team-lead-what-is-a-tech-lead-are-they-the-same-or-different-139i</guid>
      <description>&lt;p&gt;To you, what defines a Team Lead? A Tech Lead? If different, is there a term that describes both roles combined?&lt;/p&gt;

&lt;p&gt;I always get confused which is which. 🤔&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
  </channel>
</rss>
