Software Development Linkopedia December 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 immature software developers, naming variables, test coverage, software architecture decisions, product increment, behavior-driven-development (BDD), great software architects, modern leadership, Java technical interview, Scrum retrospectives tools and test data generators.

Software Development Linkopedia December 2022

Text: 5 Signs of an Immature Software Developer It is important to stay grounded when developing software. In your career, your reputation is the most important asset you possess. Avoid communicating to others a lack of mindfulness and immature work habits. To simplify standing out and delivering more value for the business, I’ve compiled a list of common mistakes software engineers make that are a sign of immaturity.
Text: Best Practices for Naming Variables: What the Research Shows Naming things is sometimes said to be the hardest problem in computer science. Now, someone is trying to make that task easier. Felienne Hermans, who leads the Programming Education Research Lab at Leiden University’s Institute of Advanced Computer Science has developed a set of research-based guidelines that will, in her words, “help you to get better at naming things,” at least in the realm of software development.
Text: Why test coverage targets backfire Most organizations adopt a “Percent-Test-Coverage” metric as part of their Definition of Done. Very often, it’s set by managers, and becomes a target which developers have to meet. This approach is often harmful. And here’s why.
Text: How to make software architecture trade-off decisions How do you come up with the best software solution for a problem and pitch that choice to both your technical and non-technical peers in your organization? And what are some common pitfalls in comparing your options. A simple framework that has worked well for me for all kinds of technical decisions is prioritizing a set of criteria and mapping the possible solutions to them in tiers.
Text: What is a Product Increment? The 2020 Scrum Guide defines an increment as ”a concrete stepping stone toward the product goal. Each Increment is additive to all prior Increments and thoroughly verified, ensuring that all Increments work together. To provide value, the Increment must be usable. The entire scrum team is accountable for creating a valuable, useful Increment for every Sprint”. Many teams do not understand this concept and still approach product development in the traditional way of build, build, build, then integrate, test, and deploy. Teams build in sprints 1, 2, and 3, and so on and in a later “special” sprint, they integrate everything, test, package, and deliver.
Text: What is BDD? How to use SpecFlow in Visual Studio 2022 This time we would like to talk about BDD and SpecFlow. We have featured many types of test automation in this blog, from UI Tests for regression to Performance Testing with JMeter. We have also highlighted some models to organize your tests such as POM (Page Object Model). In this post, we will first review from a concept standpoint, what is the BDD model and how to use it. Then we will review what Cucumber is just like a leg up into a tutorial/intro of SpecFlow for .NET.
Text: Top 5 Redmine Benefits for Agile Software Development Teams Nowadays, everyone seems to be familiar with the concept of project management as an indispensable instrument for any successful business; only cavemen, probably, remain in the dark. Many IT companies have already implemented such technologies into their workflows and been truly satisfied with the results. Since the market, pretty obviously, is oversupplied with offers, how to choose the right platform? This post is going to shed some light on the axiom why Redmine is the best solution for Agile software development teams.

Video: How to Become a Great Software Architect Learn about social skills to become a great software architect and even some concrete techniques to make better decisions.
Video: Advanced API and Integration Problems & Patterns At this point, most developers know how to avoid the common mistakes when building APIs and integration code. Unfortunately, even as those developers make use of Retries, Idempotence, and Asynchronous Messaging, they often fall into a whole other set of problems that hurt their systems’ consistency, correctness, and maintainability. This presentation is a run through of these pernicious problems and the patterns which address them. It will also touch on some code developers can use to implement these patterns in their systems today.
Video: Five Reflections for Modern Leadership Why are we as leaders drawn to the simple and quick solutions? Answers over questions? This presentation is a little journey of reflection and discovery for modern leaders.
Video: Code Analysis Tools for C++ This presentation explores the current capabilities of existing C++ static analyzers and discusses some of the enforcement listed in the C++ Core Guidelines from a toolability aspect. It also looks into the recent “Simplify C++” trend in the language’s evolution. Finally, it explores how technology-specific analysis (like MISRA and AUTOSAR) is being adopted.
Video: Boost Velocity and Quality with Flow Engineering This video is an introduction to four valuable mapping techniques and models that build clarity, alignment, and confidence in teams using a combination of collaboration, visibility and measurement.
Video: Decoding The Java Technical Interview Process Have you ever gone through a Java technical interview only to realize how horribly broken the process is? Do we really need to know the Big-O runtime of our code on a day-to-day basis, or is there a more practical way we can test this knowledge? This talk discusses the technical interview process and takes a look at some tips you can bring back to your company to improve your technical interview process.
Video: Functional Programming Fundamentals in JavaScript Functional programming is becoming more and more popular for JavaScript developers, but do you actually know what it is? This presentation offers a walk-through of the core concepts of functional programming. You will learn how to apply the principles of functional programming in JavaScript and why you should consider using the functional approach in your next project.

Tools: Open Source Retrospectives Tools for Remote Scrum Teams Distributed Scrum teams that have the technical skills to install and manage open source web tools can benefit from this list of open source retrospective tools.
Tools: Free Online Test Data Generators Most of your software testing activities will require to use data. It could be just a small amount, however if you must test a feature to deliver an order confirmation on more than one page, then you begin to require something other than a few items.
Tools: Free Retrospective Tools for Distributed Scrum Teams Even if Agile approaches favor collocated teams, distributed Scrum teams with remote work are more common that what you might think. Many Agile software development teams are based on a virtual organization.

Leave a Reply

Your email address will not be published.

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