<?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: Yerzhan Torgayev</title>
    <description>The latest articles on DEV Community by Yerzhan Torgayev (@erjan_tj).</description>
    <link>https://dev.to/erjan_tj</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%2F1012856%2Fc6ecbd7b-f8e2-47d6-8d69-e5e0d26e7653.JPG</url>
      <title>DEV Community: Yerzhan Torgayev</title>
      <link>https://dev.to/erjan_tj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/erjan_tj"/>
    <language>en</language>
    <item>
      <title>Strategies for improving code quality in large codebases</title>
      <dc:creator>Yerzhan Torgayev</dc:creator>
      <pubDate>Mon, 08 May 2023 19:15:39 +0000</pubDate>
      <link>https://dev.to/erjan_tj/strategies-for-improving-code-quality-in-large-codebases-30c9</link>
      <guid>https://dev.to/erjan_tj/strategies-for-improving-code-quality-in-large-codebases-30c9</guid>
      <description>&lt;p&gt;Code quality is crucial for any software project, but it becomes even more critical as codebases grow in size and complexity. When working with large codebases, it can be challenging to maintain consistent code quality, avoid bugs, and ensure that new changes don't introduce regressions.&lt;/p&gt;

&lt;p&gt;Poor code quality will slow down your development process over time. Instead of being able to focus on delivering new features, you'll likely find yourself spending a significant amount of time dealing with technical debt.&lt;/p&gt;

&lt;p&gt;In this post, we'll explore strategies that can help improve code quality in large codebases. Whether you're part of a large development team or working solo on a substantial codebase, these strategies can help you ensure that your code is maintainable, efficient, and reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code reviews
&lt;/h2&gt;

&lt;p&gt;Code review involves having one or more developers review changes made by another developer before they are merged into the main codebase. Code review can help catch bugs, improve code readability, and ensure that coding standards are being followed. By catching and addressing issues early on in the development process, code review can help prevent technical debt from accumulating and improve the overall quality and stability of the codebase.&lt;/p&gt;

&lt;p&gt;Code review is a collaborative process, where reviewers and developers can discuss and work through any issues that arise. By fostering a culture of constructive feedback and collaboration, code review helps engineers build better relationships and work together more effectively.&lt;/p&gt;

&lt;p&gt;To make the most of code review, follow the best practices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep your changes small&lt;/strong&gt; to make them more manageable for reviewers. Code review should ideally take no more than a couple of minutes per each change. If your changes are too big, consider breaking them down into smaller pieces for easier review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Have a test plan in place to verify that your solution works&lt;/strong&gt;. This can include automated tests, screenshots, or even a video demo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provide constructive feedback&lt;/strong&gt;. The goal of the reviewer should be to improve the solution, not criticize it. Use a positive tone and consider asking questions instead of making statements. Additionally, don't forget to celebrate good code when you see it. This will help foster a positive culture and make the code review process more pleasant for everyone involved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ensure that everyone on the team participates in code review&lt;/strong&gt;, regardless of their level of experience. This not only ensures that code quality is maintained across the entire codebase but also encourages engineers to write better quality code knowing that their work will be reviewed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make the review process as fast as possible&lt;/strong&gt; to avoid frustration and delays. Ideally, code reviews should be completed within a day, not several days or more. If necessary, consider talking to the change owner in person to speed up the review process.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, stay positive and foster a positive culture around code review. By creating a supportive and collaborative environment, you'll help your team appreciate, rather than viewing it as a chore or a source of stress.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tests
&lt;/h2&gt;

&lt;p&gt;Engineers won’t be able to find every error that might occur due to the changes by manual testing. Over time it becomes almost impossible to catch regressions or bugs as the codebase grows and changes over quickly.&lt;/p&gt;

&lt;p&gt;To make the development process more efficient you can leverage automated tests. Tests can catch bugs and regressions in the early stage in the development process before they become more difficult and expensive to fix. Make sure that tests are running automatically after each change, ensuring that the system continues to work as expected.&lt;/p&gt;

&lt;p&gt;Writing automated tests can be time-consuming, but it can save time in the long run by reducing the amount of manual testing that's required. By automating your tests, you can quickly and efficiently test your code as it changes and evolves, freeing up time to focus development work.&lt;/p&gt;

&lt;p&gt;While it's important to have tests for your codebase, it's also important not to go overboard. Some teams try to cover 100% of the codebase with tests, or use TDD to write tests for every function before implementing a feature. Try to find a balance and ensure that writing and maintaining tests doesn't become overwhelming for the team.&lt;/p&gt;

&lt;p&gt;Rather than trying to test every possible scenario, focus on critical flows or those that have historically caused problems or confusion. This will help ensure that your tests are targeted and effective, rather than becoming a burden for the team.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code style and standards
&lt;/h2&gt;

&lt;p&gt;Having a consistent style not only makes it easier for developers to read and understand the code, but it also helps maintain code maintainability and reduces the likelihood of bugs.&lt;/p&gt;

&lt;p&gt;One way to ensure consistent code style is to adopt a style guide or standard. A style guide is a set of guidelines that define how code should be written, including formatting, naming conventions, and other best practices. There are many style guides available for different programming languages and frameworks, such as Google's JavaScript style guide or the PEP 8 style guide for Python. Adhering to a style guide can help ensure that all code is written in a consistent style, regardless of who wrote it.&lt;/p&gt;

&lt;p&gt;In addition to adopting a style guide, it's important to enforce the standards and guidelines in your codebase. This can be done through the use of linters or other automated tools that check code for adherence to the style guide. Many code editors also have built-in tools that can help enforce coding standards, such as auto-formatting code to match the style guide or highlighting violations of the style guide.&lt;/p&gt;

&lt;p&gt;It's also important to ensure that all developers in the team are aware of the coding standards and understand why they're important. This might involve conducting training sessions or including the style guide as part of the onboarding process for new developers. It's important that all developers understand the rationale behind the coding standards and how they contribute to maintaining code quality in large codebases.&lt;/p&gt;

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

&lt;p&gt;Documentations are often overlooked or neglected in favor of writing code. However, well-written documentation can be a valuable resource for developers to understand how the code works, what it does, and how to use it. It can also save time and reduce confusion in the future.&lt;/p&gt;

&lt;p&gt;You can start by writing clear and concise comments in the code. Comments are a quick way to provide context and explain the purpose of a particular code block. However, comments that are too generic or irrelevant can be just as distracting as no comments at all. Make sure your comments are clear, concise, and relevant to the code.&lt;/p&gt;

&lt;p&gt;As your codebase gets more complex, consider creating a separate document that describes the architecture, design decisions, and workflows of the project. This can serve as a useful reference for developers who are new to the codebase or who need a refresher on how things work.&lt;/p&gt;

&lt;p&gt;Keep documentation up to date. Documentation should be treated as a living document that evolves with the code. Make sure to update documentation when changes are made to the code, and encourage team members to contribute to and improve the documentation as needed.&lt;/p&gt;

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

&lt;p&gt;In conclusion, improving code quality is a continuous process that requires discipline, collaboration, and the use of appropriate strategies. We have discussed several key strategies for improving code quality in large codebases, including code review, automated testing, using a code linter, and enforcing code style and standards. We have also emphasized the importance of documentation in maintaining and improving code quality over time.&lt;/p&gt;

&lt;p&gt;By implementing these strategies, teams can reduce technical debt, improve development speed, and maintain the integrity of the codebase. However, it's essential to keep in mind that these strategies are not one-size-fits-all, and teams should adapt them to their specific needs and constraints.&lt;/p&gt;

&lt;p&gt;Improving code quality is not only about producing better code but also about fostering a culture of collaboration and continuous improvement. By investing in code quality, teams can improve developer satisfaction, reduce bugs and errors, and ultimately provide more value to their customers.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>6 Tips for leading effective technical meetings as a Software Engineer</title>
      <dc:creator>Yerzhan Torgayev</dc:creator>
      <pubDate>Sun, 30 Apr 2023 13:17:55 +0000</pubDate>
      <link>https://dev.to/erjan_tj/6-tips-for-leading-effective-technical-meetings-as-a-software-engineer-319l</link>
      <guid>https://dev.to/erjan_tj/6-tips-for-leading-effective-technical-meetings-as-a-software-engineer-319l</guid>
      <description>&lt;p&gt;Meetings have earned a reputation for being counterproductive and toxic in the tech world. Engineering teams often resent them as they take away valuable time that could be spent on hands-on work. Commonly heard phrases like "This could be an email" or "This could be a chat message" reflect the general sentiment towards meetings. It's no surprise why this is the case - meetings often lack clear agendas, discussions remain superficial, and they interrupt the flow of your day, making it harder to use your time effectively.&lt;/p&gt;

&lt;p&gt;However, meetings don't have to be unproductive and frustrating. With the right approach, technical meetings can be productive, efficient, and even enjoyable. In this post, we will share 6 tips for leading effective technical meetings that will help you get the most out of them without feeling like they're a waste of time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Less is better
&lt;/h2&gt;

&lt;p&gt;Keeping your meetings short and concise is key to ensuring that attendees remain engaged and productive. Limit your meetings to no more than 30 minutes and respect the agreed-upon time frame. Once time runs out, the meeting is over - avoid taking people's time beyond that. If further discussion is required, continue asynchronously via chat or schedule another meeting accordingly.&lt;/p&gt;

&lt;p&gt;When inviting attendees, be mindful of who is truly necessary for the meeting. Resist the urge to invite everyone and only include key decision-makers. The more people you invite, the more difficult it will be to land on a specific decision. &lt;/p&gt;

&lt;p&gt;Remember, every hour spent in a meeting represents a significant chunk of your team's time. Inviting ten people to a one-hour meeting, for example, amounts to ten hours of your team's time that could be spent elsewhere. &lt;/p&gt;

&lt;h2&gt;
  
  
  Prepare an agenda
&lt;/h2&gt;

&lt;p&gt;Avoid scheduling meetings without a clear agenda. Without a well-organized agenda, it can be difficult to keep discussions on track, ensure that all necessary points are addressed, and stay focused. Therefore, it's essential to identify any critical issues that need to be resolved during the meeting and prioritize them accordingly.&lt;/p&gt;

&lt;p&gt;To ensure that everyone is on the same page and adequately prepared, it's recommended to share the agenda with attendees beforehand. By doing so, attendees can review the agenda and any necessary materials, such as relevant documents or reports, to contribute meaningfully to the discussion. Additionally, providing the agenda in advance allows attendees to identify any potential issues or questions they may have ahead of time, which can help streamline the discussion during the meeting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Know your audience
&lt;/h2&gt;

&lt;p&gt;Understanding who will be attending the meeting can help you tailor the discussion, language, and tone to ensure that everyone is engaged and can contribute meaningfully. &lt;/p&gt;

&lt;p&gt;To start, consider the background and expertise of the attendees. Are they software engineers, project managers, or executives? Knowing this information can help you adjust the technical level of the discussion and avoid using jargon that may not be familiar to everyone.&lt;/p&gt;

&lt;p&gt;Also understanding the attendees' priorities and goals can help you frame the discussion and provide context for the meeting's objectives. For example, if the attendees are primarily focused on product development, framing the discussion in terms of the impact on the product's development timeline can help make the discussion more relevant and engaging.&lt;/p&gt;

&lt;h2&gt;
  
  
  Read the room
&lt;/h2&gt;

&lt;p&gt;Attendees generally have the intention to work together to identify and agree on a solution to the problem at hand. However, it's important to be aware that disagreements can arise, either through explicit feedback or implicit nonverbal cues such as silence or negative body language.&lt;/p&gt;

&lt;p&gt;As the leader of the meeting, it's crucial to read the room and pick up on any concerns or disagreements that may be present. If you notice that attendees are expressing concerns, try to listen actively and avoid dismissing their feedback. Instead, ask questions to better understand their perspective and work to address their concerns collaboratively.&lt;/p&gt;

&lt;p&gt;If attendees are particularly far apart in their views, consider breaking into smaller groups to explore the issue in more depth. This can help to foster more productive and focused discussion, and may lead to a more effective resolution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Take notes
&lt;/h2&gt;

&lt;p&gt;Notes can serve as a valuable tool for keeping everyone on track and ensuring that key points are captured and documented. This can help to ensure that the meeting remains focused and that important information is not lost.&lt;/p&gt;

&lt;p&gt;In addition to being useful during the meeting itself, meeting notes can also provide a helpful record of decisions and discussions that have taken place. This can be especially helpful for individuals who were not able to attend the meeting, as well as for team members who may need to refer back to the notes at a later date.&lt;/p&gt;

&lt;p&gt;When it comes to taking notes, there are a variety of tools and approaches that you can use. Some people prefer to use simple tools like Google Docs or internal organizational tools to capture meeting notes. You can take notes yourself or ask someone to take notes during the meeting.&lt;/p&gt;

&lt;p&gt;Make sure to share your meeting notes with attendees after the meeting. This can help to ensure that everyone is on the same page and can provide a useful reference for follow-up discussions and tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclude with action items
&lt;/h2&gt;

&lt;p&gt;Concluding a technical meeting with clear action items is essential for ensuring that the meeting is productive and that everyone leaves with a clear understanding of what needs to be done next. You can capture action items as a part of meeting notes.&lt;/p&gt;

&lt;p&gt;To effectively conclude your technical meeting, start by summarizing the key takeaways and decisions that were made during the meeting. Be sure to highlight any critical action items that were identified, and assign ownership and deadlines for each item.&lt;/p&gt;

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

&lt;p&gt;As a general rule, it's important to schedule meetings only when they are absolutely necessary. Every minute spent in a meeting is a minute that could have been used to accomplish real work.&lt;/p&gt;

&lt;p&gt;If you do decide to run a meeting, make sure to follow the tips outlined above to make it as efficient and productive as possible. This way, attendees can get the most out of it, and the meeting won't feel like a waste of time.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>workplace</category>
    </item>
  </channel>
</rss>
