Software Development Linkopedia August 2022

Here is our monthly selection of knowledge on programming, software testing and project management. This month you will find some interesting information, resources and opinions about learning a codebase, testability, lean UX documentation, scaling software architecture, software developer productivity, feature branching, test data generation, open source kanban or cross-browser testing.

Software Development Linkopedia August 2020

Text: How to Join a Team and Learn a Codebase. I have switched teams more often than I have had to implement an AVL tree, and you can guess which one of those two was taught in school. I wish someone had taught me how to join a new team! While learning a new codebase can be daunting, I’ve found a few things that work for me.
Text: Testability Is An Architectural Choice. Ask 10 people what a software architect is and you’ll get 10 different answers. For me, I see the software architect position as a role that requires as much management as it does technical expertise. Engaging with stakeholders, and technical specialists, to determine what is actually demanded of the platform, and identifying the best way to meet these needs.
Text: Lean UX Documentation for Tracking and Communicating in Agile. Succinctly documenting the right details in key places helps Agile teams avoid information overload. When UX documentation is skipped or disorganized, teams waste time trying to find or remember information instead of improving the product.
Text: Can You Really Measure Individual Developer Productivity? There is a question that comes up at some point in every engineer’s and engineering manager’s career, where their manager, or the one above will pop the question. Can you measure engineering productivity? And if so, how can we measure it right now?
Text: Making Testing a Value-Added Activity. We all say that testing is important—after all, for any requirement, we can only say that it’s “done” when all the relevant tests have been passed. But “important” isn’t the same as “valuable.” That’s not only an important distinction, it’s also one that QA people don’t get to make.
Text: Scaling the Practice of Architecture, Conversationally. Architecture need not be a monologue; delivered top-down from the minds and mouths of a centralised few. This article describes another way to do architecture; as a series of conversations, driven by a decentralised and empowering decision-making technique, and supported by four learning and alignment mechanisms: Decision Records, Advisory Forum, Team-sourced Principles, and a Technology Radar
Text: An Agile Focus on Process. Has improving your Scrum team been like taking a walk to Mordor? “Not with ten thousand men could you do this. It is folly.” Tolkien, Lord of the Rings. The path seems wrought with peril. Why not just implement the ceremonies first, then focus on the intent later. Stopping there incurs the risk of slipping back into bad habits.
Text: Why Do You Need Test Orchestration in Your Test Automation Process? Test automation is a must for most large and medium-sized software businesses. However, just automation, even implemented in a project according to all the rules, may not be enough. The company will face several new challenges that slow down the team’s work and negatively affect the release speed. It doesn’t sound very optimistic, does it?
Text: Node.JS VS React.JS: Which to Choose for Your Project You need to use particular programming platforms and libraries like React JS and Node JS to create modern website. Although both are based on JavaScript, they have considerable differences that need to be known before deciding which to choose for your projects. As the decision-making process is not so easy, this article will walk you through the important aspects of both NodeJS and ReactJS for your clarification.

Video: Shaping the Work: Assigning Whole Projects, not Tasks. As software development teams start to grow, some common struggles appear: team members feel like projects go on and on, with no end in sight, and product managers cannot find time to think strategically about the product. In this talk, Ryan Singer explains how the Basecamp team operates.
Video: What Software Architecture Should Look Like. What is Software Architecture? It’s a surprisingly difficult question to answer. We can describe software architecture patterns and argue about what is the best software architecture, but in reality, most definitions are vague enough to be unhelpful or so over the top to be more like a list of everything that you need to think about when building software. Popular descriptions of what software architects do often focus on checklists of architectural qualities, which can help us remember things we may otherwise forget, but don’t really tell us what the job is for and how to do it well.
Video: Feature Branching Considered Evil in Software Development. With Distributed Version Control Systems (DVCSs), branch creation became very easy in software development, but it comes at a certain cost. Long living branches break the flow of the software delivery process, impacting stability and throughput.
Video: A Java Refactoring Story. ‘Entropy is the price of a Structure’. But sometimes, the price turns too high to pay. Is your Java codebase turning untestable, unreadable, and unmaintainable? Does your costs to add new features aren’t meeting the ROI?
Video: MERN Stack (MongoDB, Express, React, Node.js) Full Tutorial. This tutorial teaches how to create a full-stack web application using the MERN stack. The MERN stack combines the following technologies MongoDB, Express, React, and Node.js. This tutorial also explains how to use MongoDB Realm to convert the backend to serverless.
Video: Project Team Self-organization: The Good, the Bad & the Ugly. For years the presenter was telling you how awesome self-organization and autonomy are in the context of organizational design and software development project management. Well, he lied.
Video: Mission Impossible: The Scrum Product Owner. Does Scrum ask too much of product owners? Is the role set up to fail? In this presentation, Allan Kelly looks at some of the problems Product Owners face… and tries to make some useful suggestions.
Video: MERN Stack (MongoDB, Express, React, Node.js) Full Tutorial This tutorial teaches how to create a full-stack web application using the MERN stack. The MERN stack combines the following technologies MongoDB, Express, React, and Node.js. This tutorial also explains how to use MongoDB Realm to convert the backend to serverless and host the entire thing for free in the cloud. You will even learn how to host the React frontend for free.
Video: Building Better Software Faster with Continuous Delivery Pipelines. A delivery pipeline is a set of automated processes that allow developers and DevOps professionals to efficiently compile, build, test and deploy their code to their production platforms. It most common components of a pipeline are build automation/continuous integration, test automation and deploy automation.

Tools: Testsigma is an open-source, extensible test automation platform that works out of the box. Rapidly(5X faster) automate web, mobile app, and API tests in plain English.
Tools: Open Source Test Data Generators. In most of your software testing activities, you need data. Sometimes you can rely on a small sample, but if you want to perform some load testing or if you want to test a feature that needs to produce a multipage invoice, then you start to need more than just two or three occurrences. Test data generators are tools that can help you in this task with the automatic generation of hundreds or thousands of customers, products or accounts items with different attributes for their id, email, name, etc.
Tools: Open Source Kanban Tools. There are still many open source kanban tools available, contrary to open source projects for Scrum tools that have mostly ended being transformed in a limited offer that supports a main commercial product. The simplicity of the Kanban approach has allowed open source software developers to create and maintain Kanban tools based on various platforms.
Tools: Tools to Automate Pairwise Testing. Pairwise testing is a black box testing techniques that aims to achieve a nice test coverage of an application with a good benefit-cost ratio. This article provides a list of some of the best tools that are available to automate the pairwise testing approach.
Tools: Cross-Browser Testing Tools (Free, Open Source, Paid) When today’s applications run on various browsers (Chrome, Firefox, Safari, Edge, etc.) on different mobile or desktop devices with specific screen settings. This is why you need to perform cross-browser testing for your automated tests. This article lists the main cross-browser testing tools available today.