Software Development Linkopedia October 2021

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 great developers, team management, software architecture documentation, the Agile Manifesto, Kanban after Scrum, microservices, sociocracy, software testing and software quality, Redmine Agile plugins and open source data generators.

Software Development Linkopedia October 2021

Text: Great developers are raised, not hired The best developers I hired were far from ideal candidates. They lacked technical skills, didn’t know how to test software and work in an agile team. They didn’t believe in themselves and their ability. They didn’t think they can be good leaders. They didn’t sound convincing during the job interview. Some of them were suffering from impostor syndrome, doubting their actual ability.
Text: Why is my team not doing what I expect from them?
Leaders who find themselves wondering why their teams aren’t making important decisions on their own tend to be leaders who are constantly pulled into many different discussions. Their calendars are filled to the brim, leaving little time for longer-term work. This can seem like you’re contributing as a manager, like you’re doing important work and keeping yourself busy. It also means that you’ll have less time to focus on strategic work. Which becomes more important as you move into more senior roles.
Text: Documenting Architecture Decisions Architecture for agile projects has to be described and defined differently. Not all decisions will be made at once, nor will all of them be done when the project begins. Agile methods are not opposed to documentation, only to valueless documentation. Documents that assist the team itself can have value, but only if they are kept up to date. Large documents are never kept up to date. Small, modular documents have at least a chance at being updated.
Text: How The Agile Manifesto Came To Be The use of Agile and Scrum continues to grow but more can be done. I firmly believe that eventually, all organizations will be Agile. Everybody needs to be Agile, but those who are the most Agile, they’re going to be the most successful. The faster, more innovative organizations that embrace the four values and 12 principles laid out in the Agile Manifesto will endure and thrive. 
Text: Don’t Feel Like an Expert? Share Anyway Too many of the most interesting voices in tech and design talk themselves out of writing or speaking about their work because they don’t think they have enough experience. But you don’t have to wait for “enough” (whatever that means). Here’s how to find what’s special about your perspective right now — wherever you are in your career.
Text: If You Are Done Scrumming, Try Some Kanban! Even if Scrum is the most popular Agile framework used in software development, it is not the only approach you can use. In this article, Mark Haynes discusses why you might consider Lean Kanban as a better approach for your organization.

Video: Transactions in Microservices Architecture Transactions are an easy technique for software developers to achieve data consistency. Changes are all committed or rollback, so your data is always aligned and other sessions see no incomplete information. But in distributed microservices environments, this cannot be achieved because data can be spread over several data sources and types of data sources, or we cannot scale distributed transactions very well.
Video: Could Sociocracy Help Teamwork? Flat organization structures, agile methodologies, teamwork, etc. have become dominant in today’s IT departments and companies. These concepts clearly solve some issues with the earlier organizational paradigm. But they also come with challenges of their own.
Video: Migrating 30 Microservices to a Monorepository This is the story of 30 microservices that resided in their own code repositories and that caused issues with code quality and developer productivity. It explains how to perform the Great Migration to the Monorepository and the ways in which it changed the software developer’s life for the better. Microservices whose code is kept in a monorepository remain independent. Separate releases can be managed via homemade or existing tools, like lerna for JavaScript projects.
Video: Jakarta EE Is Not Just For Servers This presentation talks about Function as a service (FaaS) and Serverless based applications, and about some recent advances in deploying serverless applications on a standard Kubernetes basis using Knative Serving. Knative Serving makes it possible to take any microservice and deploy it in as a “serverless” application which scales on request and down to zero on idle. This in turn makes it possible to build Function-as-a-Service capabilities by creating “functions” that use standard framework APIs, build those into a microservice, and deploy them as serverless applications. The talk shows how to do this, building functions using JAX-RS APIs and deploying them as serverless applications on Kubernetes.
Video: Agility is Inefficient This presentation explain the difference between the two terms effectiveness and efficiency and show how focusing on the latter in Agile can lead to multiple bad consequences that you will probably recognize from organizations in your field.
Video: How Is Software Testing Related To Quality? How does your team or organization measure quality? People often equate software testing to good quality. If you have good testing practices, does that mean you have a good quality software product? Many teams measure process quality and don’t realize they forget about the product quality – which is what the customer cares about.

Tools: Insider is focused on covering the OWASP Top 10, to make source code analysis to find vulnerabilities right in the source code, focused on an agile and easy to implement software inside your DevOps pipeline. It currently supports the following technologies: Java (Maven and Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, and Javascript (Node.js).
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: 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.