Software Development Linkopedia February 2023

Here is our monthly selection of knowledge on programming, software testing and project management. This month you will find some interesting information and opinions about developer happiness, suffering-oriented programming, technical debt, code models, TestOps infrastructure, soft skills for QA engineers and best practices.

Software Development Linkopedia February 2023

Text: 21 Ways to Maintain Developer Happiness in Your Team I never heard of Developer Happiness until a few years ago. It never existed in my vocabulary, even though I was once a software engineering manager. I did lots of stupid things in the past that I sorely regret. One of them is never knowing the importance of developer happiness. While it is true we cannot make everyone happy, there are a few items we as leaders need to consciously work on to upkeep developer happiness.
Text: Suffering-oriented programming I follow a style of development that greatly reduces the risk of big projects like Storm. I call this style “suffering-oriented programming.” Suffering-oriented programming can be summarized like so: don’t build technology unless you feel the pain of not having it. It applies to the big, architectural decisions as well as the smaller everyday programming decisions. Suffering-oriented programming greatly reduces risk by ensuring that you’re always working on something important, and it ensures that you are well-versed in a problem space before attempting a large investment.
Text: Tech Debt Walls Every codebase carries some amount of technical debt. Every team would like to get better at managing that tech debt. The first step in managing something is making it visible. A tech debt wall is a simple, effective way to make tech debt visible.
Text: Effective Mental Models for Code and Systems A mental model is an explanation of someone’s thought process about how something works in the real world. It is a representation of the surrounding world, the relationships between its various parts and a person’s intuitive perception about his or her own acts and their consequences.
Text: TestOps Infrastructure from Beginning to End: Theoretical and Technical Aspects The creation of a TestOps infrastructure is a demanding task. TestOps (or test operations) refers to the discipline of managing the operational aspects of testing within the software delivery lifecycle. In this article, we focus on theoretical and technical aspects, and discuss some case studies to consider.
Text: 6 Soft Skills To Focus On When Hiring QA Engineers for a Scrum Team No matter what project you are running, it is essential to ensure your quality assurance (QA) specialists are the perfect fit. However, when it comes to Agile projects using Scrum, there is a need to recruit top-level QA engineers with the right skills to engage effectively during a sprint before anything has been built. It is essential to focus on the must-have soft skills for quality assurance specialists that can help them perform agile testing. This article will provide valuable insights to make the hiring process easier and more cost-effective.
Text: Rethinking Best Practices Best practices aren’t universal and the use of the term without deeper consideration can be problematic. They’re straightforward, simplistic answers to difficult questions. Quick answers can at times work in our favor, a way to avoid cognitive overhead and set a clear path to a solution. In fact, we regularly need shortcuts in our day-to-day work to be able to function, the trade-off of efficiency for thoroughness. This is unfortunately too often co-opted and overused, rendering it specious as a mantra of “don’t think, just do” or as hand waving promotion of a product over guidance on a course of action. What should be a starting point to a conversation, to give way to deeper consideration and approaches, is instead left to be short-circuited in favor of an unassailable talking point. The concepts behind best practices may be sound, but as they are not ubiquitous, they should be up for debate. Our tendency to skip deeper investigation, to assume an answer is correct based on a label, makes use of the term “best practice” dangerous.
Text: QA Interview from the Position of Potential Candidate Just imagine that you are tired of your current job in software quality assurance (QA) and want to find something new. If you are a good software tester, this does not mean that you know how to find a job or behave during an interview.

Video: How Team Culture Can Make or Break a Scrum Team Based on a true story of the lessons learned while coaching two Scrum teams on one product. Why is it that the same coaching techniques, in the same environment, can lead to drastically different outcomes? Learn how to identify the culture cycle and break bad habits to unlock the power of Agile team self-management.
Video: Best Practices to Design & Build Event-Driven Applications Event-driven architectures can help reduce coupling and increase agility for developers building distributed applications. But success here requires a new mindset to help you implement documentation, tracing, and effective scaling. In this session, you will learn the best practices to adopting and promoting this new mindset in a development team.
Video: Hybrid and Remote Project Teams Collaboration Discover the model of work habits that boost a software development project team’s performance and well-being with 10 areas of the team’s way of working: Work patterns, Teamwork, Collaboration, Cross/team routines, Meetings time & quality, Emails / chats time & quality, Focus time, Collaborative learning, Leader’s guidance, Work-life harmony.
Video: Building Modern Apps with Serverless & Feature Flags What are the technologies that one should leverage to build modern, scalable, and flexible applications? Julian Wood, developer advocate at AWS Serverless, talks with Jessica Cregg, previously a developer advocate at LaunchDarkly, now an information technology operations engineer at CybSafe about the mindset and tools required to build scalable software without over-engineering a solution.
Video: Animations in React Native: Tips and Tricks Animations seem dreadful before you dive into this topic. With this talk I hope to get you feeling ready to pick them up and start improving your app right away. I will cover the current ecosystem of doing animations in React Native, ways to get quick wins in your app, tips on how to achieve smooth animations and potential pitfalls you may run into.

Tools: Instancio is a library for instantiating and populating objects with random data, making your tests more dynamic. Each test run is against a new set of inputs. The goal is to reduce the time and lines of code spent on manual data setup in unit tests, and potentially to uncover bugs that may have gone unnoticed with static test data. Instancio uses reflection to populate objects, including nested objects and collections. A single method call provides you with a fully populated instance of a class, ready to be used as an input to your test case.
Tools: Agile, Scrum & Kanban Redmine Plugins Redmine is a popular open source project management web application written using the Ruby on Rails framework. This software is more oriented towards a traditional approach for project management with Gantt charts and calendar than Agile, Scrum or Kanban. However, the Redmine architecture allows however creating plugins to add additional features. The development of a number of Agile, Scrum, Kanban and Lean plugins has therefore been started in these past years.
Tools: Open Source Database Testing Tools Database testing is one of the areas that might have the smaller number of open source tools. The programming languages have many xUnit tools and mocking frameworks, but this is not the case for databases. This article provides a list of open source tools that can be used to perform unit, load and security testing on several relational (MySQL, Oracle, SQLServer, etc.) and NoSQL databases.