<?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: Inspirezone Developer Community</title>
    <description>The latest articles on DEV Community by Inspirezone Developer Community (@inspirezone).</description>
    <link>https://dev.to/inspirezone</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%2Forganization%2Fprofile_image%2F4053%2F22cf99e7-188e-4b89-970e-fd0124835026.png</url>
      <title>DEV Community: Inspirezone Developer Community</title>
      <link>https://dev.to/inspirezone</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/inspirezone"/>
    <language>en</language>
    <item>
      <title>7 Inevitable Challenges in Software Development and How to Combat Them ⚔️</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Mon, 18 Jul 2022 07:12:00 +0000</pubDate>
      <link>https://dev.to/inspirezone/7-inevitable-challenges-in-software-development-and-how-to-combat-them-4o50</link>
      <guid>https://dev.to/inspirezone/7-inevitable-challenges-in-software-development-and-how-to-combat-them-4o50</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclaimer: This post includes affiliate links. I may receive compensation if you purchase products or services from the different links provided in this article.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;The efforts of launching software products can be a complicated process as it usually involves multiple parties working together across several stages whilst trying to solve technical problems. &lt;/p&gt;

&lt;p&gt;As a result, the process of developing software is usually met with challenges that most engineering teams can relate to. &lt;/p&gt;

&lt;p&gt;Challenges in software development can be driven by factors internal to the organisation or by external factors such as those caused by changes in the software industry as a whole.&lt;/p&gt;

&lt;p&gt;It’s critical that engineering teams are aware of challenges in software development they are likely to face so the necessary plans and processes can be put in place to combat them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--foHqlfow--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/08/designing.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--foHqlfow--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/08/designing.png" alt="Requirements is a type of software documentation" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, these challenges are not only limited to large teams and can apply to smaller teams and individuals working on software projects.&lt;/p&gt;

&lt;p&gt;Read on to discover ideas for how to guard yourself and your teams against these inevitable challenges so they aren’t so inevitable any more!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Several points in this article 'how to combat challenges in software development', were inspired by the book&lt;/em&gt; &lt;a href="https://www.amazon.co.uk/Pragmatic-Programmer-journey-mastery-Anniversary/dp/0135957052/ref=sr_1_1?crid=17H2LPIA76VW&amp;amp;keywords=the+pragmatic+programmer&amp;amp;qid=1658869812&amp;amp;s=books&amp;amp;sprefix=the+pra%252Cstripbooks%252C61&amp;amp;sr=1-1&amp;amp;_encoding=UTF8&amp;amp;tag=inspirezone0e-21&amp;amp;linkCode=ur2&amp;amp;linkId=7a8d4df8d74efeaa56ee3c50599dda86&amp;amp;camp=1634&amp;amp;creative=6738"&gt;&lt;em&gt;"The Pragmatic Programmer" by David Thomas and Andrew Hunt&lt;/em&gt;&lt;/a&gt; &lt;em&gt;(affiliate link), a well-renowned book in the software engineering field that we recommend every developer should read.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. Keeping up with the Trends
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0kWXryO_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/09/tech-industry.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0kWXryO_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/09/tech-industry.png" alt="gears-with-tech-icons" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The software engineering world is known for its extremely dynamic nature. Technology available today can be deemed obsolete a decade later. It’s important to be aware of changing trends in the industry and adapt accordingly. &lt;/p&gt;

&lt;p&gt;Tools, libraries, frameworks and even programming languages that developers rely on may not be so reliable later if support for them continuously declines down the line affecting the maintainability of solutions that use those components.&lt;/p&gt;

&lt;p&gt;Don’t let yourself or your team be left behind and be aware of critical changes in technology trends.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Combat:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Design solutions using the concept of &lt;strong&gt;reversibility&lt;/strong&gt;. This means being able to reverse an entire system or components of it so it's not reliant on a single technology, tool, vendor and if possible, programming language.&lt;/p&gt;

&lt;p&gt;Implement solutions with architectures that are flexible enough to withstand changes without having to redesign the entire solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Ever-Changing Requirements
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QuMJQl85--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/08/project-management.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QuMJQl85--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/08/project-management.png" alt="project-management" width="600" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Requirements are the information that communicates the problem to be solved for the end-user. Requirements are therefore critical to allow engineering teams to closely solve these problems.&lt;/p&gt;

&lt;p&gt;An all too common challenge (for any industry) is when requirements change. Reasons for evolving requirements can be: missing information, changing market demands,  customers' needs changing or not evaluating requirements for technical soundness before executing them.&lt;/p&gt;

&lt;p&gt;Requirements that are poorly communicated also result in an end product that does not match the customer’s expectations.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Combat:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Work closely with the end customer to understand why they need a particular problem solved. This will help in the refinement of the requirements and eliminate ones that are not essential to address the core problems the software is trying to solve. &lt;/p&gt;

&lt;p&gt;Negotiate on an MVP (&lt;a href="https://en.wikipedia.org/wiki/Minimum_viable_product"&gt;Minimum Viable Product&lt;/a&gt;) - a product with just enough features to be usable by customers and can be released to receive early feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The Race Against Time and Resources
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aleAwLqa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/11/planning-calendar.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aleAwLqa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/11/planning-calendar.png" alt="circling-calendar" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, the software industry is infamous for constantly missing targets on deliverables and providing timescales that should be taken with a &lt;a href="https://en.wikipedia.org/wiki/Grain_of_salt"&gt;grain of salt&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;This is one of the common challenges in software development because teams are often faced with many unknowns that may be difficult to plan for. These unknowns can cause major roadblocks when faced and eventually cause delays in meeting deliverables. &lt;/p&gt;

&lt;p&gt;There are also often gaps between expectations and what can be realistically achieved in the given time frame. &lt;/p&gt;

&lt;p&gt;This can be caused by agreeing on deadlines before the full scope of the project is evaluated. Estimating when products can be delivered to end-users takes proficient planning and awareness of the technical challenges the project will come across. &lt;/p&gt;

&lt;p&gt;Poor resource management also plays a factor and lack of resources and skills needed to deliver on projects will put pressure on individuals and have negative effects on productivity. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Combat:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Perform sufficient research and planning beforehand that will provide clues on where roadblocks could source from. &lt;em&gt;Don’t be surprised by roadblocks, anticipate them.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Set clear and realistic expectations on what can be achieved given the available resources. Get better at estimating to avoid surprises and continuously re-evaluate timescales as the project progresses.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Maintenance Struggles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TyfF4Z6g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/08/taking-notes.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TyfF4Z6g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/08/taking-notes.png" alt="laptop-and-pen" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All software requires maintenance at some point. Balancing maintenance activities while continuing on with core development activities can be one of the common challenges in software development.&lt;/p&gt;

&lt;p&gt;Maintenance can be required for shipped products or for ones still in the development stages. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;“All software becomes legacy as soon as it’s written” - Andrew Hunt &amp;amp; David Thomas (&lt;a href="https://www.amazon.co.uk/Pragmatic-Programmer-journey-mastery-Anniversary/dp/0135957052/ref=sr_1_1?crid=17H2LPIA76VW&amp;amp;keywords=the+pragmatic+programmer&amp;amp;qid=1658869812&amp;amp;s=books&amp;amp;sprefix=the+pra%252Cstripbooks%252C61&amp;amp;sr=1-1&amp;amp;_encoding=UTF8&amp;amp;tag=inspirezone0e-21&amp;amp;linkCode=ur2&amp;amp;linkId=7a8d4df8d74efeaa56ee3c50599dda86&amp;amp;camp=1634&amp;amp;creative=6738"&gt;The Pragmatic Programmer Book&lt;/a&gt;)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A codebase not touched for years may need an urgent bug fix. A project in the active development stages may need a continuous update of the environment and tools. These are all examples of maintenance activities that should not be overlooked.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Combat:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Do not neglect to tackle potentially unexpected maintenance activities that may arise throughout a project. &lt;/p&gt;

&lt;p&gt;The availability of &lt;a href="https://inspirezone.tech/5-types-of-software-documentation/"&gt;software documentation&lt;/a&gt; such as on source code, software design and development processes will allow critical information to be passed onto developers that will handle the maintenance of the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Neglected Testing
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hAbaTZeG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/09/software-bugs-always-there.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hAbaTZeG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/09/software-bugs-always-there.png" alt="software-bugs" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can all agree that testing is one activity that should not be neglected when developing software. However, testing is often not given the necessary attention especially as deadlines approach.&lt;/p&gt;

&lt;p&gt;Not placing enough effort on testing will not only negatively affect the robustness and quality assurance but software riddled with bugs will reduce the end-users confidence in the product. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Combat:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;View testing as a critical activity and allocate sufficient time and resources for it during the project planning phases.&lt;/p&gt;

&lt;p&gt;Document testing requirements that will set expectations on the type and level of testing processes that should be carried out at various stages of the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. The Technical Debt Bill
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LmktMGTX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/02/technical-debt-too-busy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LmktMGTX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/02/technical-debt-too-busy.png" alt="what is technical debt, too busy" width="700" height="400"&gt;&lt;/a&gt;&lt;/p&gt;
Too busy for efficiency. &lt;a href="https://medium.com/the-andela-way/what-technical-debt-is-and-how-its-measured-ff41603005e3"&gt;(Image source)&lt;/a&gt;



&lt;p&gt;&lt;a href="https://inspirezone.tech/what-is-technical-debt/"&gt;Technical debt&lt;/a&gt; is an analogy describing a trade-off between a shorter time to market launch and software quality assurance.&lt;/p&gt;

&lt;p&gt;Like financial debt, technical debt accumulates interest and the longer it takes to pay back the higher the interest will be.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;“Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite…&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;&lt;a href="http://c2.com/doc/oopsla92.html"&gt;- Ward Cunningham, The WyCash Portfolio Management System&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Software is never perfect, so technical debt is inevitable. The danger is when engineering teams are unaware of the debt, or when they refuse to pay it back promptly. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Combat:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The first challenge engineering teams must overcome is accepting that technical debt is not imaginary and should be taken seriously. Next, become aware of the &lt;a href="https://inspirezone.tech/what-is-technical-debt/"&gt;sources of technical debt&lt;/a&gt; and indications of accumulating debt.&lt;/p&gt;

&lt;p&gt;Like any other activity, plan technical debt pay back into your software development processes. This will ensure the debt is not neglected and will prevent the team from being overloaded with debt interest before realising it too late.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Glaring Gaps in Communication
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P_ppkI_2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/06/communicate.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P_ppkI_2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://inspirezone.tech/wp-content/uploads/2021/06/communicate.png" alt="people-talking" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clear and effective communication is an essential part to the success of any project. This is even more crucial when considering the technical challenges in software development and the efforts to reach solutions to complex problems.&lt;/p&gt;

&lt;p&gt;It's all too easy for gaps in communication to appear. Gaps can appear amongst the developers on a team or between developers and external influences such as stakeholders.&lt;/p&gt;

&lt;p&gt;The consequences of this can be a misalignment of the goals of a project and lack of ownership which will only cause confusion and disorganisation.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Combat:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Set expectations on the methods and frequency of communication before a project begins. &lt;/p&gt;

&lt;p&gt;Will an Agile approach be used? How will progress be communicated to stakeholders? Will teams have daily standups? Are periodic meetings necessary? As &lt;a href="https://www.techrepublic.com/article/developers-explain-what-makes-them-most-productive-and-what-can-totally-ruin-their-day/"&gt;too many meetings can be detrimental to productivity&lt;/a&gt;, agree on a non-intrusive schedule amongst the relevant parties.&lt;/p&gt;

&lt;p&gt;There are numerous challenges in software development that most engineering teams will face at some point. A good first step in combating these challenges is acknowledging them and putting processes in place to handle or prevent them from occurring.&lt;/p&gt;

&lt;p&gt;With each project you’re involved with, whether past or current, reflect on what challenges you faced and evaluate how to tackle them more effectively the next time.&lt;/p&gt;

&lt;p&gt;Which of these challenges in software development can you relate with?&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;a href="https://inspirezone.tech/"&gt;Inspirezone.tech&lt;/a&gt; is a developer community focused on encouraging active coding practice and reaching your goals through accountability with other devs in a close-knit community. If this sounds interesting to you consider &lt;a href="https://community.inspirezone.tech/"&gt;joining us&lt;/a&gt; or following us on &lt;a href="https://twitter.com/inspirezonetech"&gt;Twitter&lt;/a&gt; 💻 ✨&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>product</category>
      <category>motivation</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>10 Essential Things Software Engineers Do Apart From Coding</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Tue, 28 Jun 2022 17:55:33 +0000</pubDate>
      <link>https://dev.to/inspirezone/10-essential-things-software-engineers-do-apart-from-coding-e5d</link>
      <guid>https://dev.to/inspirezone/10-essential-things-software-engineers-do-apart-from-coding-e5d</guid>
      <description>&lt;p&gt;Most will imagine things software engineers do as likely sitting in front of a computer typing code all day. While coding is certainly one activity carried out by programmers, it’s not quite an accurate description of what it takes to produce functional software.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jI-Pw__h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/41sxngx1q63f9lx1jmcv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jI-Pw__h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/41sxngx1q63f9lx1jmcv.jpg" alt="Code-Sleep-Repeat" width="500" height="488"&gt;&lt;/a&gt;&lt;/p&gt;
Programmers only code? Not quite...



&lt;p&gt;The art of creating software is a lot more than just writing code. Let’s look at some stats to back this statement up.&lt;/p&gt;

&lt;p&gt;A developer survey performed by &lt;a href="https://www.activestate.com/resources/white-papers/developer-survey-2019-open-source-runtime-pains/"&gt;ActiveState&lt;/a&gt; with 1,250 responses showed that 61.52% of developers spend 4 hours or less programming on a typical day. And only 10.56% spend 8 hours or more programming on a typical day.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Gb1mDX_z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eax7p2xy6xyyvfn7i2qj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gb1mDX_z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eax7p2xy6xyyvfn7i2qj.png" alt="time-spent-coding-survey" width="880" height="334"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://www.activestate.com/resources/white-papers/developer-survey-2019-open-source-runtime-pains/"&gt;Result &lt;/a&gt; of 1,250 respondents on time spent programming on a typical day



&lt;p&gt;Another developer survey performed by &lt;a href="https://tidelift.com/subscription/managed-open-source-survey"&gt;Tidelift&lt;/a&gt; with 295 responses shows developers only spend 32% of their time writing or improving code. The remaining 68% of their time is spent on other duties such as testing, maintenance and admin tasks.&lt;/p&gt;

&lt;p&gt;Stats like those provided by the &lt;a href="https://www.activestate.com/resources/white-papers/developer-survey-2019-open-source-runtime-pains/"&gt;ActiveState&lt;/a&gt; and &lt;a href="https://tidelift.com/subscription/managed-open-source-survey"&gt;Tidelift&lt;/a&gt; surveys prove there are other essential things software engineers do as part of working on software projects. &lt;/p&gt;

&lt;p&gt;What activities apart from coding are arguably as critical in the process of developing software? Let’s look into 10 of these other essential things software engineers do on a regular basis.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Researching and planning
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UkatODTK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f8b2hlsw0itdxioeyxl8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UkatODTK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f8b2hlsw0itdxioeyxl8.png" alt="project-management" width="600" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The initial stages when commencing new development projects will likely involve research on the suitable technologies, toolkits, libraries, development environments, programming languages and any other necessary tools.&lt;/p&gt;

&lt;p&gt;Depending on the scale of a project, engineering teams may plan to dedicate efforts in performing research to confirm validity of the projects concept.&lt;/p&gt;

&lt;p&gt;The efforts placed in a validating phase is usually referred to as a Proof Of Concept (PoC). This is when intentional efforts are placed to prove the core concept of a project can be successfully delivered. This will occur before officially launching execution of the project and before significant time and resources are allocated.&lt;/p&gt;

&lt;p&gt;Proper research of the tools and technologies required and placing effort in planning the projects execution is worth the investment and will ultimately save time in the long run. &lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QAUPNPa6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zz4gziopj5rvdh2iix03.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QAUPNPa6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zz4gziopj5rvdh2iix03.png" alt="Documents" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Documentation is useful for exchanging and handing over knowledge and therefore writing documents is a large part of the things software engineers do. Documents also provides a formal method of communication amongst all parties involved in a project such as development teams, stakeholders and end users.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Developers experience a 55% increase in productivity with good documentation – &lt;a href="https://github.blog/2021-11-16-the-2021-state-of-the-octoverse/"&gt;GitHub 2021 developer survey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Functional specifications, architecture design, flow diagrams, READMEs, bug fix reports, testing reports, release notes, user guides… These are some of the common forms of documentation and records generated by software development teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Gathering Requirements
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5C5dPX74--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d4vftwxohsbob4sskyz4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5C5dPX74--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d4vftwxohsbob4sskyz4.png" alt="requirements-gathering" width="500" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whether writing up requirements or interpreting them, requirements are the base-line of what is ultimately translated into a working solution. &lt;/p&gt;

&lt;p&gt;Software engineers are fundamentally problem solvers and therefore, understanding the needs of customers is essential to the success of a project. In an ideal scenario requirements inform what customers are looking for which is then made into reality through engineering efforts.&lt;/p&gt;

&lt;p&gt;However, the work involved in properly capturing requirements can be underestimated. Requirements can change over time, be misunderstood or communicated poorly. This is why placing sufficient efforts in capturing and executing requirements is one of the essential things software engineers do. &lt;/p&gt;

&lt;h2&gt;
  
  
  4. Maintenance Activities
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cYwQXduV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ri86md681hgghgm83wz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cYwQXduV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ri86md681hgghgm83wz.png" alt="tools" width="400" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code needs regular care and the process of writing code will always involve follow up maintenance work.&lt;/p&gt;

&lt;p&gt;Refactoring, tidying up, releasing bug fixes or &lt;a href="https://inspirezone.tech/what-is-technical-debt/"&gt;paying back Technical Debt&lt;/a&gt; are some forms of maintenance work carried out by developers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Developers spend 35% of their time on maintenance activities – &lt;a href="https://thenewstack.io/how-much-time-do-developers-spend-actually-writing-code/"&gt;thenewstack analysis of the Tidelift developer survey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Open source projects typically have a dedicated person or team that oversees the repository who are called &lt;a href="https://inspirezone.tech/reasons-to-become-an-open-source-maintainer/"&gt;open source maintainers&lt;/a&gt;. Open source maintainers perform many duties often not related to writing code such as code reviews, updating documentation or merging pull requests.&lt;/p&gt;

&lt;p&gt;The upkeep and support of the components that make up a software project is certainly an important part of the things software engineers do. &lt;/p&gt;

&lt;h2&gt;
  
  
  5. Debugging
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PJaRgldM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1959cx530kpur7q8rstv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PJaRgldM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1959cx530kpur7q8rstv.png" alt="debugging" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Analytical and problem solving are key skills required of software engineers and this especially comes into play when debugging issues. Debugging usually accounts for a large chunk of the efforts involved in the process of developing software.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“If debugging is the process of removing bugs. Then programming must be the process of putting them in” – &lt;a href="https://softwarequotes.com/quote/if-debugging-is-the-process-of-removing-bugs--then"&gt;Edsger Dijkstra&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Unless you write perfect software, there’s no way out of having to debug at some point in every project. Debugging activities can involve taking part in a &lt;a href="https://revdebug.com/blog/root-cause-analysis-in-software-development/"&gt;root cause analysis&lt;/a&gt;, studying API reference manuals, using IDE debug tools or &lt;a href="https://inspirezone.tech/how-to-search-for-programming-solutions/"&gt;googling for an answer to your programming problems&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Coding is an art and so is debugging. &lt;a href="https://inspirezone.tech/9-indispensable-rules-for-debugging-software-and-hardware/"&gt;Learning to debug problems in a systematic way&lt;/a&gt; and resolving them is a key part of the things software engineers do. &lt;/p&gt;

&lt;h2&gt;
  
  
  6. Reading Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LlEZWs2K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lo6gj7gaxk83npz08rj7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LlEZWs2K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lo6gj7gaxk83npz08rj7.png" alt="reading-code" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reading, studying, analysing, interpreting code also comes part of the package in the role of programmers.&lt;/p&gt;

&lt;p&gt;The ability to read and understand other people’s code is arguably as important as being able to write it especially when working in teams.&lt;/p&gt;

&lt;p&gt;Reading code written by others often requires patience, after all, you’re attempting to understand the thought process of how someone else or a group of people formulated a solution to a particular problem (or attempted to!).&lt;/p&gt;

&lt;p&gt;So while programmers write code, we also certainly spend lots of time staring at it, perhaps a bit too long at times…&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YVg1dly5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5v9qc76vvthvks1tpzk1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YVg1dly5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5v9qc76vvthvks1tpzk1.png" alt="testing" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Proper planning and execution of tests are critical in increasing confidence in the solutions robustness, reliability, security and overall functionality.&lt;/p&gt;

&lt;p&gt;Testing activities performed by programmers can involve: drawing up test cases, smoke tests, unit tests, integration tests and end-to-end tests.&lt;/p&gt;

&lt;p&gt;The concept of &lt;a href="https://www.guru99.com/test-driven-development.html"&gt;Test Driven Development (TDD)&lt;/a&gt; is becoming increasingly common where test planning and creation are prioritised and implemented early in the development stages. &lt;/p&gt;

&lt;p&gt;Part of the things software engineers do apart from coding &lt;em&gt;&lt;strong&gt;should&lt;/strong&gt;&lt;/em&gt; be testing, and &lt;em&gt;&lt;strong&gt;doing lots of it&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Attending Meetings
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0CwXkDLb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o2ujq7hff2102xdyhwhz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0CwXkDLb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o2ujq7hff2102xdyhwhz.png" alt="meetings" width="500" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sprint planning, daily stand-ups, brainstorming sessions, feature discussions, resource allocation. These are just a handful of the many different types of meetings developers may attend.&lt;/p&gt;

&lt;p&gt;It’s all about communication and meetings can be impactful in improving collaboration.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Software developers/engineers spend 14% of their time in meetings.&lt;br&gt;
Software development/engineering managers spend 30% of their time in meetings. – &lt;a href="https://thenewstack.io/how-much-time-do-developers-spend-actually-writing-code/"&gt;thenewstack analysis of the Tidelift developer survey&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Although &lt;a href="https://www.techrepublic.com/article/developers-explain-what-makes-them-most-productive-and-what-can-totally-ruin-their-day/"&gt;too many meetings can be detrimental to productivity&lt;/a&gt;, if done right it presents opportunities to collaborate with engineering teams and stakeholders and is therefore an essential part of the things software engineers do apart from coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Mentoring Others
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--luz5Zz0z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j1f8cq31obdn2x2asog.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--luz5Zz0z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j1f8cq31obdn2x2asog.png" alt="sharing-knowledge" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mentoring each other is vital in passing knowledge to the future generation of developers. Within teams, senior engineers are often expected to act as a mentor to those in junior positions.  &lt;/p&gt;

&lt;p&gt;Mentoring can involve but is not limited to: passing on learnings from your personal experiences, providing training, peer programming or providing coaching and career advice.&lt;/p&gt;

&lt;p&gt;A willingness to teach and patience is a requirement for people who want to be a mentor to others.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://inspirezone.tech/tips-for-mentoring-junior-developers/"&gt;Read more&lt;/a&gt; about tips on providing encouragement and support to junior software engineers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Never discourage anyone…who continually makes progress, no matter how slow.” – Plato&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  10. Upskilling and Learning
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KNaYKFw2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gfl2hrht10wbqg3keuuo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KNaYKFw2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gfl2hrht10wbqg3keuuo.png" alt="code-books" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Investing in your knowledge is critical due to the rapid changing nature of the software industry. A technology that may be popular today may not be quite so popular a few years later.&lt;/p&gt;

&lt;p&gt;Being intentional about diversifying your abilities will increase your flexibility in taking on different roles and will in turn make you more employable.&lt;/p&gt;

&lt;p&gt;Building up knowledge will also improve your confidence as you’ll feel more prepared to adapt to new roles and industries if you ever need to (or are forced to) take a shift in career direction.  &lt;/p&gt;

&lt;p&gt;Consider picking up a new programming language if you feel yourself becoming stale or bored of using the same language for every project. If switching to a new language is not practical for the type of work you do, consider picking up a side project or get involved in &lt;a href="https://inspirezone.tech/what-is-open-source-infographic/"&gt;open source projects&lt;/a&gt; using different languages and tools to what you’re used to.&lt;/p&gt;

&lt;p&gt;Other ways to expand your knowledge portfolio and interests are through books, training courses, bootcamps, webinars, conferences or just googling!&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We explored 10 essential things software engineers do apart from coding that highlight the diverse nature of the role. While writing code is one side, there are other activities you must also be prepared to perform to become a well-rounded software engineer.&lt;/p&gt;

&lt;p&gt;It’s also important to note the time spent on non-coding activities will also depend on specific roles the individual plays in the software project. For example, someone with the title of an engineering manager is likely not spending as much time coding as a full-stack developer.&lt;/p&gt;

&lt;p&gt;Do any of these non-coding activities surprise you? If you work as a developer, what activities apart from coding do you spend most of your time on?&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;a href="https://inspirezone.tech/"&gt;Inspirezone.tech&lt;/a&gt; is a developer community focused on encouraging active coding practice and reaching your goals through accountability with other devs in a close-knit community. If this sounds interesting to you consider &lt;a href="https://community.inspirezone.tech/"&gt;joining us!&lt;/a&gt; 💻 ✨&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>beginners</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>8 Practical tips to stay alert and focused while coding</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Wed, 29 Sep 2021 07:14:04 +0000</pubDate>
      <link>https://dev.to/inspirezone/8-practical-tips-to-stay-alert-and-focused-while-coding-pmj</link>
      <guid>https://dev.to/inspirezone/8-practical-tips-to-stay-alert-and-focused-while-coding-pmj</guid>
      <description>&lt;p&gt;Coding is the core of what most developers do and as an activity requires sufficient levels of concentration to be performed effectively.&lt;/p&gt;

&lt;p&gt;As we live in a world full of distractions, it can be at times difficult to stay alert and focused while coding. Combat this by being aware of the different forms of distractions and taking actions to resist them.&lt;/p&gt;

&lt;p&gt;Your well-being, routines, motivations and how effectively you plan, all play a role in your ability to remain focused while coding. Several time management tools and productivity techniques also exist that can aid and boost concentration.&lt;/p&gt;

&lt;p&gt;Here are 8 simple factors that can be applied to greatly improve your effectiveness at staying alert and focused while coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Know your optimum time to code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1CVIlS49--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n6rf7va7xmcy7553kpq7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1CVIlS49--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n6rf7va7xmcy7553kpq7.png" alt="code-at-optimum-time"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is first on the list for a reason.&lt;/p&gt;

&lt;p&gt;If you choose the wrong time to start coding, such as a time when you’re tired, sleepy, unmotivated and so on, the remaining tips in this article will be 10x less effective!&lt;/p&gt;

&lt;p&gt;Enter coding sessions ideally at a time of the day when you’re likely to feel the most refreshed and alert. If you don’t know what this time is, experiment until you’ve found an optimum time you can reserve as your coding time.&lt;/p&gt;

&lt;p&gt;Some of us are more alert first thing in the morning or some prefer coding later in the day. &lt;/p&gt;

&lt;p&gt;How much sleep you get and your daily schedule will also influence the time you have to code as we may try to squeeze coding in between other tasks. &lt;/p&gt;

&lt;p&gt;Your ability to stay alert and focused while coding will be massively impacted by how you feel when you start your sessions. It’s therefore crucial you figure out a routine and find an optimum time you can be productive and code effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Ditch the distractions
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TItnEanS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tm12egq1blozq580rr36.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TItnEanS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tm12egq1blozq580rr36.png" alt="ditch-distractions"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’re at your computer and ready to start coding then.. your phone rings.&lt;/p&gt;

&lt;p&gt;What you planned to be a minute of checking the notification now turns into an hour of scrolling and getting lost in the world of the internet and social media.&lt;/p&gt;

&lt;p&gt;Most of us are guilty of this and we think we have enough discipline to get rid of distractions at will, but it’s just not always the case!&lt;/p&gt;

&lt;p&gt;Instead of relying on will power that we know is likely to fail us, start being intentional about keeping away from predictable distractions like our phones and other gadgets that are dangerous at taking away our ability to remain focused while coding.&lt;/p&gt;

&lt;p&gt;Some simple changes can be to put your phone on silent mode or in an entirely different room during your coding sessions. Also consider using apps that block internet activity or social media websites on your phone during certain times.&lt;/p&gt;

&lt;p&gt;When you become aware of the common distractions around you, the next step is to be disciplined enough to put in effort to find barriers you can place between these distractions and your determination to remain focused while coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Decide your to-do before the session begins
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fVcuataq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/toom6uv319xjccwf29uz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fVcuataq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/toom6uv319xjccwf29uz.png" alt="know-your-todo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Plan ahead before any coding session and decide what your targets are for that session. &lt;/p&gt;

&lt;p&gt;This is advantageous because not only does it avoid wasting time at the beginning of your session, but decision making in itself can take effort and may leave you feeling exhausted afterwards. This in turn affects your ability to focus for the rest of the coding session. &lt;/p&gt;

&lt;p&gt;Lack of clarity about what you want to achieve during a session requiring focus can also lead to you jumping between tasks and trying to multitask. &lt;/p&gt;

&lt;p&gt;Avoid this by planning each coding session well before it begins and ideally do this the day before you’ll be working on the tasks. &lt;/p&gt;

&lt;p&gt;To help you decide on your goals for that coding session ask yourself questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What project will I be working on?&lt;/li&gt;
&lt;li&gt;What type of activity will I be doing – New feature? Refactoring? Bug fix? Documentation?&lt;/li&gt;
&lt;li&gt;What are the high priority and critical tasks I need to get done?&lt;/li&gt;
&lt;li&gt;What is one major task I want to accomplish by the end of the session?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Having a plan is critical even though things may not necessarily go according to that plan. A clear set of tasks and goals will help improve your ability to remain focused while coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Use a project management tool
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y6DzzQJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uoqy0za6cpku6092s7z6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y6DzzQJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uoqy0za6cpku6092s7z6.png" alt="trello_workflow_board"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An effective project management tool will allow you to plan, view and organise your work in an intuitive and easily accessible manner. There are some tools out there particularly useful for developers and can help to keep you organised and focused while working on development projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.trello.com/engineering-teams-sample-trello-boards"&gt;Trello&lt;/a&gt; is an example of such a project management tool and is used by all sorts of engineering teams. Trello allows you to organise, visualise and plan all aspects of your work in a digitised sticky note style system.&lt;/p&gt;

&lt;p&gt;For developers, Trello can be used for brainstorming, gathering requirements, listing new features, bug tracking, setting deadlines, workflows and collaborating with others.&lt;/p&gt;

&lt;p&gt;I’m a personal fan of Trello and use it daily to organise my projects. As someone who was once a physical sticky note user, I now use Trello to plan projects and ensure tasks don’t get lost in a sea of sticky notes!  &lt;/p&gt;

&lt;p&gt;Other platforms like &lt;a href="https://www.notion.so/"&gt;Notion&lt;/a&gt; and &lt;a href="https://asana.com/"&gt;Asana&lt;/a&gt; are also well known project management tools for developers. Try out different platforms and stick to the one that works for you. Once you’re over the initial learning curve of getting used to the platform it will surely benefit you in the long term.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Work on achievable bite-sized tasks
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q3C9a_mA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6lnfhd1pm2h5gkq6i86x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q3C9a_mA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6lnfhd1pm2h5gkq6i86x.png" alt="checklist"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This involves analysing major tasks and breaking them down into bite-sized chunks to make it easier to tackle each task one at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;“How do you eat an elephant? One bite at a time!” – Unknown author&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It will be overwhelming to approach a single enormous task that occupies just one line on a to-do list. That same task will appear less overwhelming when it’s broken down into several subtasks. &lt;/p&gt;

&lt;p&gt;This overwhelming factor can scale when working on a major projects requiring several weeks, months or years of development time. Breaking down tasks into subtasks and marking each as complete will act as a better indicator of progress.&lt;/p&gt;

&lt;p&gt;This also has some psychological benefits. &lt;/p&gt;

&lt;p&gt;A famous study by &lt;a href="https://dl.acm.org/doi/10.1145/317456.317459"&gt;Brad A. Myers in the paper "&lt;em&gt;the importance of percent-done progress indicators for computer-human interfaces&lt;/em&gt;"&lt;/a&gt;, emphasises how a display of progress can improve our effectiveness in completing tasks.&lt;/p&gt;

&lt;p&gt;Using this same principle; breaking down your task into smaller chunks will allow you to notice progress you make and create a positive impact by boosting motivation.&lt;/p&gt;

&lt;p&gt;This all plays into greatly assisting your focus while coding as motivation will improve when working on tasks that appear more approachable.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Play music to help with concentration
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1yL3rP6c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uk2ezaz10iwdlb73jrtc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1yL3rP6c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uk2ezaz10iwdlb73jrtc.png" alt="music-for-concentration"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Music is not only entertaining and soothing, but in addition, playing certain kinds of music can also help us to stay motivated and focused while coding.&lt;/p&gt;

&lt;p&gt;For those that enjoy listening to music, while we all have different tastes, ideally play music that doesn’t have lyrics which can be more distracting than instrumental and background music.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://www.entrepreneur.com/article/325492"&gt;entrepreneur.com there are 6 types of music&lt;/a&gt; that are shown to dramatically improve productivity. All except one type on this list are without lyrics which again suggests this is the ideal type of music to play when trying to focus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Six types of music for improved productivity: Classical, Nature, Cinematic, Video game, Beats, Your favourite music – &lt;a href="https://www.entrepreneur.com/article/325492"&gt;entrepreneur.com&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Also play music suitable for the level of concentration you need. The playlist doesn’t matter as much if you’re doing a lighter task that you know doesn’t require high levels of concentration and you can carry out with ease. &lt;/p&gt;

&lt;p&gt;However, if you’re doing a high intensity task that requires a lot of focus like debugging, then background music or sound effects will likely be more suitable.&lt;/p&gt;

&lt;p&gt;Not only will the right music help you stay focused while coding, it also provides a means to have a little enjoyment!&lt;/p&gt;

&lt;p&gt;It’s also important to note this point may not apply to everyone as some may find it a lot easier to focus under complete silence. Do what works for you!&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Take enough breaks
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n1DciOwj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w5k1qtpmijdcwo94blhf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n1DciOwj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w5k1qtpmijdcwo94blhf.png" alt="take-breaks-pomodoro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Taking sufficient breaks during tasks is important to allow recovery and improve our ability to concentrate for long periods of time. &lt;/p&gt;

&lt;p&gt;Don’t assume you don’t need breaks and plan them into your session. Try different techniques and develop a routine that involves taking enough breaks to keep you going for the duration of time you’re coding.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Pomodoro_Technique"&gt;The Pomodoro technique&lt;/a&gt; is an example of a famous time management technique that emphasises the importance of taking breaks.&lt;/p&gt;

&lt;p&gt;It works like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;25 mins of concentrated work&lt;/li&gt;
&lt;li&gt;5 mins break &lt;/li&gt;
&lt;li&gt;Repeat this 2-3 times&lt;/li&gt;
&lt;li&gt;Take a much longer break e.g. 30 mins&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Following this technique is effective for most people as we are more likely to stay focused during the shorter work sessions knowing we get a ‘reward’ with short breaks in between.&lt;/p&gt;

&lt;p&gt;The Pomodoro technique is also flexible and you can choose how long you want to spend working, how long for your breaks and how many cycles you want to perform. &lt;/p&gt;

&lt;p&gt;Try experimenting with different productivity and time management techniques such as Pomodoro to find out which works for you to help stay focused while coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Remember your motivations
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3SVbTjRI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/io2r4fa0um8ftl9fsldn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3SVbTjRI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/io2r4fa0um8ftl9fsldn.png" alt="remember-motivations"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What’s the purpose of you right now sitting down (or standing) at your desk and writing code? What is motivating you? The idea is to have a good enough WHY to keep you going.&lt;/p&gt;

&lt;p&gt;Think about your ultimate goal…&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are you a newbie learning to code with the aim of landing a job as a developer?&lt;/li&gt;
&lt;li&gt;Are you growing your skills so you can expand into new areas of software development?&lt;/li&gt;
&lt;li&gt;Are you working on a project for a business idea or startup?&lt;/li&gt;
&lt;li&gt;Is this an important task to complete to get your team through the next milestone?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whatever your reason is, remember it and use it as a motivation.&lt;/p&gt;

&lt;p&gt;Having an ultimate end goal could be the difference between seeing your project come to completion or not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Coding is an activity requiring concentration and several techniques can be applied to keep focused  while coding.&lt;/p&gt;

&lt;p&gt;Factors like your well-being, ability to plan and discipline to stay away from distractions play a major role in our ability to concentrate. Approaching each coding session with the right attitude and with a plan will also go a long way in helping to keep your alertness.&lt;/p&gt;

&lt;p&gt;Project management tools, time management techniques and even music can also assist in improving your productivity and keep you focused while coding.&lt;/p&gt;

&lt;p&gt;Do you struggle to stay focused or motivated while coding or performing development activities? Let's hear your thoughts.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="https://community.inspirezone.tech/"&gt;Inspirezone.tech&lt;/a&gt; is a developer community focused on encouraging active coding practice and reaching your goals through accountability with other devs in a close-knit community. If this sounds interesting to you consider &lt;a href="https://community.inspirezone.tech/"&gt;joining us!&lt;/a&gt; 💻 ✨&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>motivation</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Do you follow any coding conventions/standards?</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Fri, 04 Jun 2021 06:37:27 +0000</pubDate>
      <link>https://dev.to/inspirezone/do-you-follow-any-coding-conventions-standards-mp5</link>
      <guid>https://dev.to/inspirezone/do-you-follow-any-coding-conventions-standards-mp5</guid>
      <description>&lt;p&gt;Coding conventions provide guidelines on how code should be written for a particular programming language to allow best practices and consistency in programming style.  &lt;/p&gt;

&lt;p&gt;I’m forming a list of coding conventions by programming language and wanted to find out if devs here use coding conventions at all and if you do, which ones? Also, Are there any industry specific standards you follow?&lt;/p&gt;

&lt;p&gt;I work with embedded C and my industry doesn’t have any coding standards that must be strictly followed as such. However, if I wanted some guidelines I tend to use a standard called &lt;a href="https://www.perforce.com/resources/qac/misra-c-cpp"&gt;MISRA C&lt;/a&gt; (Motor Industry Software Reliability Association) as a reference because it’s widely recognised in the embedded space. &lt;br&gt;
Although, admittedly most of the time I’m simply using my own idea of best practices from past experience!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>performance</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Have you taken part in a coding challenge or hackathon before? How did it help you grow?</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Fri, 14 May 2021 23:09:19 +0000</pubDate>
      <link>https://dev.to/inspirezone/have-you-taken-part-in-a-coding-challenge-or-hackathon-before-how-did-it-help-you-grow-1kdn</link>
      <guid>https://dev.to/inspirezone/have-you-taken-part-in-a-coding-challenge-or-hackathon-before-how-did-it-help-you-grow-1kdn</guid>
      <description>&lt;p&gt;Let us know what challenges or hackathons you’ve participated in before. What did you like about them and what did you learn?&lt;/p&gt;

&lt;p&gt;I’m building a developer community called &lt;a href="https://community.inspirezone.tech/" rel="noopener noreferrer"&gt;inspirezone&lt;/a&gt; all about encouraging devs to keep a regular coding habit through various coding challenges and events. We are also focused on using accountability to push each other to reach our goals.&lt;/p&gt;

&lt;p&gt;Read the post below for more details on our community and challenges!&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/inspirezone" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F4053%2F22cf99e7-188e-4b89-970e-fd0124835026.png" alt="Inspirezone Developer Community"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F451342%2F369f4c02-4f58-47fe-b818-540afef54704.jpg" alt=""&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/inspirezone/a-developer-community-encouraging-active-coding-practice-4koh" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;A Developer Community Encouraging Active Coding Practice 🏁&lt;/h2&gt;
      &lt;h3&gt;Fum for Inspirezone Developer Community ・ Apr 24 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#github&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>watercooler</category>
      <category>discuss</category>
      <category>programming</category>
      <category>motivation</category>
    </item>
    <item>
      <title>If you had a time machine what is ONE thing you would tell yourself when you started coding?</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Thu, 13 May 2021 18:55:55 +0000</pubDate>
      <link>https://dev.to/inspirezone/if-you-had-a-time-machine-what-is-one-thing-you-would-tell-yourself-when-you-started-coding-2jn2</link>
      <guid>https://dev.to/inspirezone/if-you-had-a-time-machine-what-is-one-thing-you-would-tell-yourself-when-you-started-coding-2jn2</guid>
      <description>&lt;p&gt;I would probably tell myself to look up what imposter syndrome is so I can be relieved from all my doubts... Only discovered it was a real thing years into my career.&lt;/p&gt;

&lt;p&gt;What about you? I’m very curious to know!&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>career</category>
      <category>beginners</category>
      <category>reflect</category>
    </item>
    <item>
      <title>What is the next stage of your dev journey?</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Wed, 12 May 2021 06:38:16 +0000</pubDate>
      <link>https://dev.to/inspirezone/what-is-the-next-stage-of-your-dev-journey-3n2f</link>
      <guid>https://dev.to/inspirezone/what-is-the-next-stage-of-your-dev-journey-3n2f</guid>
      <description>&lt;p&gt;How would you describe your current situation in terms of your set of skills and career, is it where you want it to be?&lt;/p&gt;

&lt;p&gt;Maybe you’re just getting started learning to code, if so where do you hope to be in say a year's time?&lt;/p&gt;

&lt;p&gt;If you work as a developer, do you have any particular career aspirations?&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
      <category>career</category>
      <category>motivation</category>
    </item>
    <item>
      <title>What’s your go-to method of learning a new development skill?</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Tue, 11 May 2021 18:10:35 +0000</pubDate>
      <link>https://dev.to/inspirezone/what-s-your-go-to-method-of-learning-a-new-development-skill-1eca</link>
      <guid>https://dev.to/inspirezone/what-s-your-go-to-method-of-learning-a-new-development-skill-1eca</guid>
      <description>&lt;p&gt;The journey of learning never ends for a developer! &lt;/p&gt;

&lt;p&gt;When you need to pick up a new programming language, library, framework or any dev related skill, how do you approach it?&lt;/p&gt;

&lt;p&gt;I personally prefer to just pick a project related to what I'm learning and build up knowledge that way. I find I can’t spend too long on tutorials and I don’t truly start to understand unless I’m working on a project (even if it’s a made up project just to use what I’m learning).&lt;/p&gt;

&lt;p&gt;So what's your preferred learning method?&lt;/p&gt;

&lt;p&gt;A post I wrote a while back explains some various ways developers can use for practice.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/funbeedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cvYu82lO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--vw9VQ0nI--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/451342/369f4c02-4f58-47fe-b818-540afef54704.jpg" alt="funbeedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/funbeedev/5-ways-to-help-you-practice-coding-lab" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;5 ways to help you practice coding&lt;/h2&gt;
      &lt;h3&gt;Fum ・ Nov 10 '20 ・ 5 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#codenewbie&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>discuss</category>
      <category>watercooler</category>
      <category>programming</category>
      <category>learning</category>
    </item>
    <item>
      <title>5 Persuasive reasons to join developer communities</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Wed, 05 May 2021 06:59:32 +0000</pubDate>
      <link>https://dev.to/inspirezone/5-persuasive-reasons-to-join-developer-communities-4jah</link>
      <guid>https://dev.to/inspirezone/5-persuasive-reasons-to-join-developer-communities-4jah</guid>
      <description>&lt;p&gt;If you’re a developer looking to grow your skills, being an active member of a community is one of the best ways to go about it. Join a developer community, connect with others and share your knowledge and experiences with developers on a similar journey path as you!&lt;/p&gt;

&lt;p&gt;Developer communities provide several advantages that will help you become a better programmer. In this article we’ll cover 5 reasons why being part of a community matters.&lt;/p&gt;

&lt;p&gt;If you're reading this post as a guest, hopefully you'll be convinced as to why you should consider joining the DEV.to community! If you're already a member of DEV.to, this will highlight the benefits of actively participating and also why you should consider joining other communities 😁  &lt;/p&gt;

&lt;h1&gt;
  
  
  1. For support and motivation
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sJlBpgn4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lp8699o0ewgs9p0eyif0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sJlBpgn4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lp8699o0ewgs9p0eyif0.png" alt="support-and-motivation" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most developer communities act as a place for you to connect with others you can relate to. Through the environment provided by such communities you can connect with developers going through similar challenges as you.&lt;/p&gt;

&lt;p&gt;As a result, you’re more likely to stay motivated and stay on track with your current development goals.&lt;/p&gt;

&lt;p&gt;The journey of a developer can be tough, especially if you’re on the journey solo. Whether as a newbie, switching to a different field or by growing your existing skills, having a support network goes a long way in making you feel that you’re not on the journey alone.&lt;/p&gt;

&lt;p&gt;For the newbies out there, a message that you should not shy away from developer communities!&lt;/p&gt;

&lt;p&gt;The journey of learning to code is likely to be overwhelming at some stage. This is a key reason why you should find a supportive network from the beginning so you don’t feel isolated in your struggles.&lt;/p&gt;

&lt;p&gt;Join a developer community that provides support for newbies and share your struggles. It’s likely we’ve all gone through similar challenges and hearing from others can act as encouragement.&lt;/p&gt;

&lt;p&gt;Share new things you’ve learned, programming memes or whatever! It’s all about finding people you can share things with that you know are going through similar experiences as you.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Knowledge sharing
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g53hX1Jj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/97h31c37nzbishhoaqsh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g53hX1Jj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/97h31c37nzbishhoaqsh.png" alt="share-knowledge" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Developer communities encourage sharing of what you know with others. Through this knowledge exchange, we can all learn from each other and grow our skills. &lt;/p&gt;

&lt;p&gt;Communities are a great way to share developer tips, tools, resources, coding snippets, tutorials or to have in-depth discussions on programming languages and all things dev related.&lt;/p&gt;

&lt;p&gt;Being part of a developer community is like having an extended network of colleagues where you can help each other out. Use these communities to learn from people who are more experienced than you in your field.&lt;/p&gt;

&lt;p&gt;This is another reason why I believe it’s essential for newbies to join a developer community.&lt;/p&gt;

&lt;p&gt;You’ll gain a lot by simply participating and learning from others in the field of software development you’re interested in.&lt;/p&gt;

&lt;p&gt;You can also open discussions with others to gain more insight into where their experiences have led them and learn from these experiences.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Networking opportunities
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eNpfES8H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8jvvn38otg1ur254bfiw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eNpfES8H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8jvvn38otg1ur254bfiw.png" alt="networking" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Being part of a developer community also opens up opportunities to form closer connections with developers in your field.&lt;/p&gt;

&lt;p&gt;Job opportunities may also arise and especially applies if you join a developer community that meets up locally in your area. In this case, as you meet with the same people at each meetup you'll eventually get to know them and their backgrounds. &lt;/p&gt;

&lt;p&gt;This also opens up chances to find mentors in your field or potentially meet developers with similar interests willing to collaborate with you on projects.&lt;/p&gt;

&lt;p&gt;As companies also tend to be involved in supporting developer communities, there's also the opportunity to network with them. This can in turn increase your chances of being considered for positions as companies can see you are active in a developer community.&lt;/p&gt;

&lt;p&gt;The networking possibilities that can arise simply by being active in communities and conversing with others on a similar journey path is another powerful reason why you should join a developer community.&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Expand your areas of expertise
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q_PYjTfG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cvmhyac5ss70momqmu23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q_PYjTfG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cvmhyac5ss70momqmu23.png" alt="expand-interests" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you join a developer community you come across people with different backgrounds and expertise. As a result, you’re constantly being exposed to topics and discussions that may not be directly related to your field of interest.&lt;/p&gt;

&lt;p&gt;Just by being active in such communities you can pick up technical terms and knowledge relating to software development outside your direct area of expertise.&lt;/p&gt;

&lt;p&gt;This is advantageous in allowing you to become more aware of what’s going on in other areas and potentially increase your interest in those areas as you learn more about them.&lt;/p&gt;

&lt;p&gt;I personally found this the case when I joined the DEV.to, as I’ve come across all kinds of posts relating to fields I had no previous experience with.&lt;/p&gt;

&lt;p&gt;By reading posts on areas of software development I’m not familiar with I’ve become more aware of technologies, frameworks and even programming languages that I’m now exploring to help with some side projects.&lt;/p&gt;

&lt;p&gt;The more involved you get with a diverse range of developer communities, the more you’ll realise just how vast software development is and how much there is to learn!&lt;/p&gt;

&lt;p&gt;By choosing the right communities to be active on, you can expand your interest and knowledge in ways that can help you in the future, sometimes unexpectedly.&lt;/p&gt;

&lt;h1&gt;
  
  
  5. It will challenge you
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AOur0B8W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lb9z1w1236boy9pvnr3u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AOur0B8W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lb9z1w1236boy9pvnr3u.png" alt="challenge-yourself" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This point depends on the type of community you join. The opportunity for challenges relates to certain developer communities that are focused on having you take part in a challenge or project.&lt;/p&gt;

&lt;p&gt;For example, &lt;a href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt; is great for newbies as you can learn the fundamentals of several programming languages by completing coding challenges. &lt;/p&gt;

&lt;p&gt;You can also join communities that focus on running hackathons and challenges to be completed within a time frame.&lt;/p&gt;

&lt;p&gt;An example of deadline-based developer challenges are &lt;a href="https://en.wikipedia.org/wiki/Game_jam"&gt;Game jams&lt;/a&gt;. In Game jams, developers work on a video game for submission to a competition either solo or part of a team.&lt;/p&gt;

&lt;p&gt;Usually, the Game jam sets a theme and rules the game should follow. The games are then submitted and sometimes ranked by other competitors. The winners may receive badges, prizes or simply bragging rights!&lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://itch.io/jams"&gt;itch.io&lt;/a&gt; which is a Game jam community hosting challenges all year round.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Developer communities provide a supportive environment that encourages exchange of knowledge and experiences.&lt;/p&gt;

&lt;p&gt;Being part of a community is a great way to keep motivated in your goals and have discussions with others passionate about software development. &lt;/p&gt;

&lt;p&gt;Join a developer community and you may be surprised at just how much it will help you grow!&lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://www.freecodecamp.org/news/best-developer-communities-to-be-part-of-in-2020/"&gt;this list&lt;/a&gt; from freeCodeCamp to view other kinds of developer communities you can be a part of. &lt;/p&gt;

&lt;p&gt;I would like to know in the comments what developer communities you're a member of? (Apart from DEV!)&lt;/p&gt;




&lt;p&gt;I'm creating a developer community that is focused on encouraging active coding practice and reaching your goals through accountability with other devs in a close-knit community. If this sounds interesting to you read more about the inspirezone community 😃&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/inspirezone" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jHcS74xg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--f5zYXnh1--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/organization/profile_image/4053/22cf99e7-188e-4b89-970e-fd0124835026.png" alt="Inspirezone Developer Community" width="150" height="150"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cvYu82lO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--vw9VQ0nI--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/451342/369f4c02-4f58-47fe-b818-540afef54704.jpg" alt="" width="150" height="150"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/inspirezone/a-developer-community-encouraging-active-coding-practice-4koh" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;A Developer Community Encouraging Active Coding Practice 🏁&lt;/h2&gt;
      &lt;h3&gt;Fum for Inspirezone Developer Community ・ Apr 24 '21 ・ 3 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#github&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>motivation</category>
      <category>career</category>
      <category>productivity</category>
      <category>community</category>
    </item>
    <item>
      <title>Is the first programming language you learned the one you enjoy using the most?</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Fri, 30 Apr 2021 22:30:03 +0000</pubDate>
      <link>https://dev.to/inspirezone/is-the-first-programming-language-you-learned-the-one-you-enjoy-using-the-most-1pga</link>
      <guid>https://dev.to/inspirezone/is-the-first-programming-language-you-learned-the-one-you-enjoy-using-the-most-1pga</guid>
      <description>&lt;p&gt;I’m interested in finding out how many devs tend to stick to their first language and if there is a correlation between your first language and the one you enjoy using the most.&lt;/p&gt;

&lt;p&gt;So what was your first language and do you still use it today? Would you consider it your favourite language to use?&lt;/p&gt;

&lt;p&gt;The first language I learned was C. While I still enjoy writing applications in C I find myself now choosing to use Python where it’s possible!&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
      <category>programming</category>
    </item>
    <item>
      <title>Are you actively seeking to grow your dev skills and how are you doing so?</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Thu, 29 Apr 2021 18:00:19 +0000</pubDate>
      <link>https://dev.to/inspirezone/are-you-actively-seeking-to-grow-your-dev-skills-and-how-are-you-doing-so-5d0e</link>
      <guid>https://dev.to/inspirezone/are-you-actively-seeking-to-grow-your-dev-skills-and-how-are-you-doing-so-5d0e</guid>
      <description>&lt;p&gt;Hi Devs,&lt;/p&gt;

&lt;p&gt;I’m curious to know if you are actively working on methods to grow your skills and if so, what is your preferred learning method?&lt;br&gt;
Are you learning through tutorials? courses? YouTube videos? or through working on a project?&lt;/p&gt;

&lt;p&gt;And what do you find compelling about the method you use?&lt;/p&gt;

&lt;p&gt;Let us know in the comments!&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Are you guilty of abandoning your side projects?</title>
      <dc:creator>Fum</dc:creator>
      <pubDate>Wed, 28 Apr 2021 05:45:04 +0000</pubDate>
      <link>https://dev.to/inspirezone/are-you-guilty-of-abandoning-your-side-projects-170f</link>
      <guid>https://dev.to/inspirezone/are-you-guilty-of-abandoning-your-side-projects-170f</guid>
      <description>&lt;p&gt;If you’re someone who enjoys working on development projects on the side you’ve likely not seen all to completion!&lt;/p&gt;

&lt;p&gt;But is abandoning your projects something you tend to do often, like this guy?&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OLtBeGrm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/82b503f75b42x96z9ojr.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OLtBeGrm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/82b503f75b42x96z9ojr.jpeg" alt="Strip-Side-project-650-finalenglish" width="650" height="995"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://www.commitstrip.com/en/2014/11/25/west-side-project-story/"&gt;Comic Source&lt;/a&gt;



&lt;p&gt;I also talk about why some devs may fail to complete side projects in this post.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/funbeedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cvYu82lO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--vw9VQ0nI--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/451342/369f4c02-4f58-47fe-b818-540afef54704.jpg" alt="funbeedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/funbeedev/5-typical-reasons-why-developers-fail-to-complete-side-projects-57g8" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;5 Typical reasons why developers fail to complete side projects&lt;/h2&gt;
      &lt;h3&gt;Fum ・ Jan 31 '21 ・ 8 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#motivation&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#sideprojects&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>discuss</category>
      <category>watercooler</category>
      <category>productivity</category>
      <category>motivation</category>
    </item>
  </channel>
</rss>
