Logo
    Search

    How to convince your CTO it's worth paying down tech debt

    enFebruary 27, 2024

    Podcast Summary

    • Measuring developer productivity and skillsTo effectively measure developer productivity and skills, consider both quantitative and qualitative factors, as code is a craft involving nuances and judgment.

      Measuring developer productivity and skills within a company goes beyond just quantitative data. While tools like Azure AI Code Gen can provide valuable insights, it's essential to remember that code is a craft, not an assembly line. CEMA's Matt Maven emphasizes the importance of understanding the nuances and judgment involved in coding. In his article for Stack Overflow, Maven proposed a matrix of skills to quantify the differences between junior, mid-level, and senior developers. However, since then, he's recognized that this perspective should be more craftsperson-focused. To effectively measure developer productivity and skills, engineering leaders and CTOs need to consider both quantitative and qualitative factors. By doing so, they can make a stronger case to their boards or senior leadership teams about the importance of investing in their engineering teams.

    • Career explorationExploring management and leadership roles can provide valuable insights and experiences for developers, while assessing personal interests and skills is crucial for identifying the best fit roles, companies, and teams, leading to greater success and satisfaction in one's career.

      Exploring management and leadership roles, even if just for a little while, can provide valuable insights and experiences for developers, regardless of whether they ultimately decide to continue as individual contributors or pursue management full-time. Additionally, taking the time to assess personal interests and skills is crucial for identifying the types of roles, companies, and teams that are the best fit, leading to greater success and satisfaction in one's career. Using the metaphor of athletes transitioning between sports, the importance of discovering one's passions and abilities early on can lead to a more fulfilling and successful career path in tech.

    • Tech Investments and OutcomesTo make persuasive cases for tech investments, focus on the relationship between inputs, activities, outputs, and outcomes, and frame the discussion in terms of how technology achieves organizational goals.

      It's essential to understand the connection between resources, activities, outputs, and outcomes when making a case for tech investments, especially for non-technical audiences. The NFL player's story illustrates the importance of making wise decisions about how to use skills and resources, whether in sports or tech. For tech professionals, the concept of logic models can help clarify the relationship between inputs, activities, outputs, and outcomes. Non-functional requirements, such as code quality and process consistency, are outputs that contribute to organizational outcomes. When making a case for tech investments, it's crucial to frame the discussion in terms of how technology achieves organizational outcomes. For instance, testing, such as unit testing, is an output that contributes to the outcome of delivering high-quality software that meets business objectives. By focusing on outcomes, we can make persuasive cases for tech investments that align with an organization's goals.

    • Unit testing investment, business reasonsUnit testing investment is crucial for organizations, impacting business reasons like undetected bugs, outages, lower NPS, and throughput. Propose investments framed to organization's needs, not just engineers. Achieving 100% coverage not always best. Evaluate code quality quantitatively and qualitatively.

      Unit testing is a crucial aspect of software development that can significantly impact an organization's business and technology reasons. During technical due diligence, evaluating a company's current level of testing and the necessity for more investment is essential. A business reason for investing more in unit testing could be due to undetected internal bugs, outages, lower net promoter score, or lower throughput. It's important to frame the proposal in terms of what the organization needs, rather than just improving the day-to-day for engineers. However, achieving 100% coverage is not always the best idea, as it may lead to writing unnecessary tests. When acquiring another software company, evaluating code quality quantitatively, such as through code scans, is essential but should not replace qualitative evaluations. Both quantitative and qualitative methods are necessary to effectively assess code quality. Automatically measuring code quality through tools like Linters, CVE scans, and security warnings is important but should be used in context. Ultimately, understanding the codebase and its quality requires a combination of both automated tools and human evaluation.

    • GenAI adoption risksGenAI adoption brings productivity gains and developer happiness but poses risks in security, licensing, and legal implications. Organizations must navigate these risks to ensure successful integration.

      While Generative AI (GenAI) holds immense potential in enhancing software development productivity and efficiency, it's crucial for developers to remain in the loop to ensure the code's correctness and maintainability. The integration of AI-generated code in the industry is on the rise, with estimates suggesting that up to 70% of code being written in companies includes some degree of AI-generated elements. This trend offers advantages such as increased productivity and developer happiness. However, it also brings challenges, particularly in the areas of security, licensing, and legal implications. Organizations must navigate these risks as they adopt GenAI, with the understanding that the greatest risk lies in not incorporating GenAI into their software development life cycle. Using the analogy of open source code, GenAI can help developers focus on unique problem-solving aspects while handling the generated code's risks. The key is to approach GenAI adoption with awareness and the necessary safeguards to mitigate potential issues.

    • Generative AI risksGenerative AI offers benefits but comes with risks such as less secure code, lack of copyright protection, and legal issues related to copyleft code. To mitigate these risks, use reliable tools, conduct thorough open source reviews, and understand legal implications.

      While generative AI can be a powerful tool for developers, it comes with significant risks that need to be managed carefully. First, code generated by AI has been shown to be less secure and may not receive copyright protection, increasing the need for robust security measures and open source reviews. Second, there is a legal risk related to the use of copyleft code, which can require organizations to share their code for free if they distribute it. It's important to note that this risk does not come from the creators of the training data, but rather from the potential lack of copyright protection for AI-generated code. To mitigate these risks, it's crucial to use reliable tools, conduct thorough open source reviews, and understand the legal implications of using generative AI in software development. In essence, while generative AI offers numerous benefits, it's essential to be aware of and address the associated risks to ensure the security and legal compliance of your software projects.

    • Gen AI code risksGen AI code comes with significant risks such as security, intellectual property, and maintainability issues, but editing and modification can help mitigate these risks and ensure better understanding of functionality.

      When it comes to working with Generative AI (Gen AI) code, it's important to understand that pure, unmodified code from these tools comes with significant risks, including security, intellectual property, and maintainability issues. Therefore, it's recommended to "lean into editing" and modifying the code to ensure a better understanding of its functionality and to mitigate potential risks. This is the opposite approach to open source code, where the goal is typically to avoid modification. As the capabilities of Gen AI continue to advance, it's crucial for organizations and developers to adopt a collaborative approach when implementing these tools, focusing on the benefits while being aware of the potential challenges. The future of Gen AI in code generation holds great promise for improving developer productivity and solving complex problems, but it's essential to approach its implementation thoughtfully and with the proper considerations in mind.

    • GenAI regulationsThe rapidly changing landscape of GenAI regulations necessitates a proactive approach from legal and compliance teams to stay informed and avoid potential legal issues.

      While generative AI can be a powerful tool for organizations, it comes with risks that need to be carefully considered. These risks include the general risk of inaccuracy, security concerns, and jurisdiction-specific regulations. Open source software has its own set of regulations, but the rapidly changing landscape of GenAI regulations in the US alone, with over 862 bills and laws in progress, necessitates a proactive approach from legal and compliance teams. Staying informed about these regulations is crucial to avoid potential legal issues. A stellar example of community engagement was demonstrated by Jim, who earned a Stellar Question Badge on Stack Overflow for helping solve a common problem with Docker not starting on Windows. As always, if you enjoyed the podcast, please leave a rating and review. Ben Popper is the director of content at Stack Overflow and can be reached at benpopper@xmail.com. Ryan Donovan edits the blog at Stack Overflow and can be reached at arthondonovan@xmail.com. Cassidy Williams, CTO of Contenda, is building BrainStory at brainstory.ai and can be found at cassidoo on most platforms. Matt Vandivley, founder and CEO of Sima, had a great time on the show and can be reached at matt.vandivley@simasoftware.com.

    Recent Episodes from The Stack Overflow Podcast

    How to build open source apps in a highly regulated industry

    How to build open source apps in a highly regulated industry

    Before Medplum, Reshma founded and exited two startups in the healthcare space – MedXT (managing medical images online acquired by Box) and Droplet (at-home diagnostics company acquired by Ro). Reshma has a B.S. in computer science and a Masters of Engineering from MIT.

    You can learn more about Medplum here and check out their Github, which has over 1,200 stars, here.

    You can learn more about Khilnani on her website, GitHub, and on LinkedIn.

    Congrats to Stack Overflow user Kvam for earning a Lifeboat Badge with an answer to the question: 

    What is the advantage of using a Bitarray when you can store your bool values in a bool[]?

    A very special 5-year-anniversary edition of the Stack Overflow podcast!

    A very special 5-year-anniversary edition of the Stack Overflow podcast!

    Cassidy reflect on her time as a CTO of a startup and how the shifting environment for funding has created new pressures and incentives for founders, developers, and venture capitalists.

    Ben tries to get a bead on a new Moore’s law for the GenAI era: when will we start to see diminishing returns and fewer step factor jumps? 

    Ben and Cassidy remember the time they made a viral joke of a keyboard!

    Ryan sees how things goes in cycles. A Stack Overflow job board is back! And what do we make of the trend of AI assisted job interviews where cover letters and even technical interviews have a bot in the background helping out.

    Congrats to Erwin Brandstetter for winning a lifeboat badge with an answer to this question:  How do I convert a simple select query like select * from customers into a stored procedure / function in pg?

    Say goodbye to "junior" engineering roles

    Say goodbye to "junior" engineering roles

    How would all this work in practice? Of course, any metric you set out can easily become a target that developers look to game. With Snapshot Reviews, the goal is to get a high level overview of a software team’s total activity and then use AI to measure the complexity of the tasks and output.

    If a pull request attached to a Jira ticket is evaluated as simple by the system, for example, and a programmer takes weeks to finish it, then their productivity would be scored poorly. If a coder pushes code changes only once or twice a week, but the system rates them as complex and useful, then a high score would be awarded. 

    You can learn more about Snapshot Reviews here.

    You can learn more about Flatiron Software here.

    Connect with Kirim on LinkedIn here.

    Congrats to Stack Overflow user Cherry who earned a great question badge for asking: Is it safe to use ALGORITHM=INPLACE for MySQL?

    Making ETL pipelines a thing of the past

    Making ETL pipelines a thing of the past

    RelationalAI’s first big partner is Snowflake, meaning customers can now start using their data with GenAI without worrying about the privacy, security, and governance hassle that would come with porting their data to a new cloud provider. The company promises it can also add metadata and a knowledge graph to existing data without pushing it through an ETL pipeline.

    You can learn more about the company’s services here.

    You can catch up with Cassie on LinkedIn.

    Congrats to Stack Overflow user antimirov for earning a lifeboat badge by providing a great answer to the question: 

    How do you efficiently compare two sets in Python?

    The world’s most popular web framework is going AI native

    The world’s most popular web framework is going AI native

    Palmer says that a huge percentage of today’s top websites, including apps like ChartGPT, Perplexity, and Claude, were built with Vercel’s Next.JS. 

    For the second goal, you can see what Vercel is up to with its v0 project, which lets developers use text prompts and images to generate code. 

    Third, the Vercel AI SDK, which aims to to help developers build conversational, streaming, and chat user interfaces in JavaScript and TypeScript. You can learn more here.

    If you want to catch Jared posting memes, check him out on Twitter. If you want to learn more abiout the AI SDK, check it out 

    here.

    A big thanks to Pierce Darragh for providing a great answer and earning a lifeboat badge by saving a question from the dustinbin of history. Pierce explained: How you can split documents into training set and test set

    Can software startups that need $$$ avoid venture captial?

    Can software startups that need $$$ avoid venture captial?

    You can find Shestakofsky on his website or check him out on X.

    Grab a copy of his new book: Behind the Startup: How Venture Capital Shapes Work, Innovation, and Inequality. 

    As he writes on his website, the book:

    Draws on 19 months of participant-observation research to examine how investors’ demand for rapid growth created organizational problems that managers solved by combining high-tech systems with low-wage human labor. The book shows how the burdens imposed on startups by venture capital—as well as the benefits and costs of “moving fast and breaking things”—are unevenly distributed across a company’s workforce and customers. With its focus on the financialization of innovation, Behind the Startup explains how the gains generated by tech startups are funneled into the pockets of a small cadre of elite investors and entrepreneurs. To promote innovation that benefits the many rather than the few, Shestakofsky argues that we should focus less on fixing the technology and more on changing the financial infrastructure that supports it.

    A big thanks to our user of the week, Parusnik, who was awarded a Great Question badge for asking: How to run a .NET Core console application on Linux?

    An open-source development paradigm

    An open-source development paradigm

    Temporal is an open-source implementation of durable execution, a development paradigm that preserves complete application state so that upon host or software failure it can seamlessly migrate execution to another machine. Learn how it works or dive into the docs. 

    Temporal’s SaaS offering is Temporal Cloud.

    Replay is a three-day conference focused on durable execution. Replay 2024 is September 18-20 in Seattle, Washington, USA. Get your early bird tickets or submit a talk proposal!

    Connect with Maxim on LinkedIn.

    User Honda hoda earned a Famous Question badge for SQLSTATE[01000]: Warning: 1265 Data truncated for column.