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 engineering strategy, product management, testing in production, CI/CD, team size, QA roles, software architecture, the Spotify model, low code/no code, Redmine hosting, model-based testing tools.
Text: Write five, then synthesize: good engineering strategy is boring Few companies understand their engineering strategy and vision. One consequence of this uncertainty is the industry belief that these documents are difficult to write. In some conversations, it can feel like you’re talking about something mystical, but these are just mundane documents. The reality is that good engineering strategy is boring, and that it’s easier to write an effective strategy than a bad one.
Text: Quality Assurance and Software Delivery Processes in Frontend Engineering This is the first in a series of blog posts in which we outline our Quality Assurance and software development processes for frontend engineering at Azimo.
Text: Product Thinking vs. Project Thinking One of the biggest challenges a product manager will face (or an organization for that matter) is trying to elevate thinking and culture from a project level to a product level.
Text: I test in prod Testing in production is a superpower. It’s our inability to acknowledge it that’s the trouble.
Text: Fulfilling the promise of CI/CD CI/CD (continuous integration and Continuous Delivery/Deployment) is part of the fabric of our lives. We go to conferences about CI/CD, we write articles and blog about CI/CD, we list CI/CD on our LinkedIn page. Nobody even debates about whether it’s the right thing to do or not. We are all on the same page. Right? Except … if you listen closely to what people are saying, they aren’t talking about CI/CD at all—they may say “CI/CD,” but they are only talking about continuous integration. Nobody is talking about (or practicing) continuous deployment. AT ALL. It’s like we have all forgotten it exists.
Text: Your engineering team is (probably) too big Of all the places you can spend money in a tech company, the engineering team is often by far the largest cost-center. Similar to digital ads, it’s also a place where, if you aren’t careful, you can waste a lot of money.
Text: Agile Anti-patterns or How to Mess up as a Scrum Master If we have always to remember that it is more important to be Agile than to do Agile, there are still many organizations practicing Scrum in a “cargo cult” mode. In this article, Mark Haynes describes, with a facetious bias, some of the common anti-patterns of Scrum Masters.
Text: Main Roles and Responsibilities Within the QA Team Performing the software testing activities requires different skills and in larger organizations, members of a software quality assurance (QA) teams will be specialists in certain domains. This article discusses the different roles of members of a software QA team.
Video: Scaling Agile: The Small-is-Beautiful of Hubs Scaling agile is all the rage these days, and especially popular with laggard adopters who want to broaden their management span of control. Most scaling frameworks are just classical military hierarchies suitable to command-and-control: in a suitably arranged organization of 625 people, the average number of communication hops between any two people is a very un-agile seven.
Video: How to Understand and Choose the Right Software Architecture 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.
Video: Will Low Code/No Code Kill Programming Jobs? Low code and no code are ideas that are gaining traction. Low-code development platforms are used to solve all sorts of software development problems. But what is no code development, is this a new idea that will take your programming job, or is this another attempt at an old idea and some kind of no-code bubble?
Video: Memory Efficient Java When Java developers and operations are asked what their biggest performance bottleneck is, it is rare that memory inefficiency comes up as an answer. Unfortunately, this runs counter to the observation that 60% of all applications are memory-inefficient.
Video: Structure and Interpretation of Test Cases Throw a line of code into many codebases and it is sure to hit one or more testing frameworks. There is no shortage of frameworks for testing, each with their particular spin and set of conventions, but that glut is not always matched by a clear vision of how to structure and use tests cases. A testing framework is a vehicle, but you still need to know how to drive.
Video: The Death Of The Spotify Model The Spotify model is a people-driven, autonomous approach for scaling agile that emphasizes the importance of culture and network. The Spotify model champions team autonomy, so that each team (or Squad) selects their framework (e.g. Scrum, Kanban, Scrumban, etc.). Squads are organized into Tribes and Guilds to help keep people aligned and cross-pollinate knowledge.
Video: Measuring in Production the Performance of React Native Apps Wait, you can measure the performance of any React Native apps in production? Indeed, Android phones run on linux, which means we have full power through the magic of adb shell! This presentation explores what we can do together in live coding, and see how we can build a performance profiler.
Video: The Best Software Testing Videos on YouTube – Part 1 Conferences Software testing conferences are organized all over the world and many capture their sessions on videos that they share on YouTube. This article presents a list of the best software testing video channels available on YouTube from software testing conferences.
Tools: Pyroscope is an open source continuous profiling tool. It allows finding and debugging your most painful performance issues across code, infrastructure and CI/CD pipelines
Tools: Redmine Hosting Providers Redmine is a free and open source, web-based project management tool written using the Ruby on Rails framework. It allows users to manage multiple projects and associated subprojects. Redmine features issue tracking, project wikis and forums, time tracking, and flexible, role-based access control. You need to have some technical capabilities ton install and maintain an open source tool like Redmine. This is why some organizations are providing Redmine hosted solutions. With this choice, they will take care for their customers of all the technical aspects related to the installation and evolution of this open source project management tool.
Tools: Open Source Model-Based Testing Tools Model-based testing is a software testing approach that is based on models of the system under test and its environment to define, manually or automatically, the test cases.