Software Development Linkopedia September 2022

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 technical changes, product vision, specification by example, making decisions, black box testing, Agile risk management, spike testing, object-oriented programming, open source project management and deliberate software architecture.

Software Development Linkopedia September 2022

Text: How Big Technical Changes Happen at Slack Like all technology companies, Slack wants to make sure we catch revolutions at the right time, while limiting the energy we spend chasing fads. What strategy can we follow to ensure this? This post outlines our approach to this problem, which we continue to refine and apply through our practice at Slack.
Text: Product Vision, Agile, and Going to the Moon Unfortunately, agile is often confused with “starting to do stuff without a plan.” That is a fallacy that causes huge problems. The manifesto and the principles do not say that you should start writing code without having any idea where the product is going. In fact, beginning with a clear vision is a fundamental of “Agile Project Management 101,” but it is also an often forgotten first step.
Text: Specification by Example, 10 years later In the book Specification by Example, Gojko Adzic documented how teams back then used examples to guide analysis, development and testing. During the last two months, he has been conducting a survey to discover what’s changed since the book came out. Some findings were encouraging, confirming that the most important problems from ten years ago have been solved. Some findings were quite surprising, pointing at trends that prevent many teams from getting most out of the process
Text: How to make effective decisions by comparing alternatives “React.js is so much better than Angular”. “Java sucks, no one uses it anymore… we should use Golang”. “Pineapple is the worst pizza topping”. You’ve probably heard one of these very straight opinions. One option is the best, the other is the worst, X is better than Y and so on. But Java is still one of the most popular languages in the world. Angular gives a decent fight to React.js. Pizza with pineapple… well, that’s Ewwww. Does that mean that more than half of the people are clueless? Or don’t know how to tell which technology is better or make the right choices? Maybe we should stop using terms like “better”, “worse”, “best” and shallow comparisons when evaluating alternatives. Instead, we should focus on the benefits of each solution, the disadvantages, and which one is a better fit for our specific problem.
Text: Challenges for Black Box Testing and how to solve them Black Box Testing is always more complicated than if you have full control over the application to test. But for all these challenges, there are solutions available. Some of them are easy, some of them a little bit more complicated.
Text: How to Approach Risk Management in Scrum Framework With its iterative approach, the Scrum framework enables teams to minimize risk and manage risks confidently. Risk can creep into various elements when managing a project and prevent you from delivering a valuable project. But it takes much more than risk awareness to head off these risks, even if you are using an Agile project management approach.
Text: Spike Testing vs Performance and Load Testing If you ask two software testers, you will get three different definitions for each software testing term. This article discusses spike testing and how this type of testing relates to performance and load testing.

Video: Deliberate Software Architecture Step back from your system and take a look at its software architecture. Are the major structures and technology choices the result of conscious decisions, or have they emerged as the system has evolved?
Video: The Agile Project Stakeholder Engagement Canvas Stakeholder engagement is critical in agile projects. Agile project managers, business analysts, product owners, Scrum masters as well as agile teams must plan their approach to collaborate well with stakeholders and build productive working relationships.
Video: Object Oriented Programming (OOP) Revisited There are many programming paradigms. One of them is the object-oriented programming. But… Do you really take advantage of it? Are you brave enough to say that you have real ‘objects’ in your project? Having classes and creating something from them is not enough… Have you heard about SOLID (single responsibility, open-closed, Liskov substitution, interface segregation and dependency inversion) or GRASP (General Responsibility Assignment Software Patterns) principles? This presentation investigates those and some other rules to make your code really object-oriented.
Video: How Can Java Applications Be Modernized or Developed as a Cloud-Native Solution To define where you want to go, first, you need to see where you are. The next step would be to define a plan. Let’s discuss a strategy that supports corporations using Java in the adoption of cloud technologies. With several options of cloud services and the different architectures such as multi-cloud and hybrid-cloud, how can Java applications be modernized or developed as a cloud-native solution?
Video: Limiting Work-in-Progress (WIP) for Software Developers The idea of limited work-in-progress (WIP) is coming from Lean methodologies. At its core, it means that software developers should start new tasks only when the current piece of work is done and delivered. Finding the right work-in-progress limit can increase overall system (organization) throughput. This idea can be applied on many levels, including writing code.
Video: Mocking Framworks Considered Harmful? Software development without test automation can no longer be considered professional. However, you might have existing code bases or want to rely on external libraries that may make writing effective and fast unit tests hard or even near to impossible. A typical work-around for these situations is to introduce test stubs for such external dependencies to make your code testable.
Video: A Simple Agile Approach to Managing Complexity We often find ourselves in complex situations without recognizing what makes them complex. Fortunately, understanding the context can help us to benefit from the situation by reducing or even increasing the complexity.

Tools: EvoMaster is an open-source AI-driven tool that automatically generates system-level test cases for web/enterprise applications. This is related to Fuzzing. Not only EvoMaster can generate inputs that find program crashes, but also it generates small effective test suites that can be used for regression testing.
Tools: Joindesk is an open source project management tool that can be an alternative to JIRA, Confluence and many other similar tools. This tool is built using Spring Boot, Angular and Postgres.
Tools: Focalboard Open Source Project Management Tool Focalboard is an open source project management tool that can be used as a desktop. It provides a simple board approach to project management that is similar to tools like Trello, Asana, Clickup or Notion. It is also available 15 different languages and can integrated into the Mattermost platform, a company that support the development of this open source tool.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.