Software Development Magazine - Project Management, Programming, Software Testing |
Scrum Expert - Articles, tools, videos, news and other resources on Agile, Scrum and Kanban |
Methods & Tools - November 2021
Sharing global software development expertise since 1993
=== Sponsor ===
5 Ways to Time Travel Test [Whitepaper]
Temporal testing is critical for date sensitive business rules such as insurance rates, billing, and enrollment. Efficient time travel testing can increase your test coverage, accelerate development, and improve software quality.
Read our whitepaper to learn the 5 ways to time travel software!
*** Updates ***
Last Articles Published on Methods & Tools Website
WebPageTest - Online Website Performance and Analytics Tool WebPageTest is an open source web performance tool providing diagnostic information about how a web page performs under a variety of conditions. It offers an online version where each test can be run from different locations around the world, on real browsers, over any number of customized network conditions. Read more...
*** From The Archives ***
Articles from Methods & Tools' Archives
The Art of Mocking in Software Testing One of the challenges developers face when writing unit tests is how to handle external dependencies. In order to run a test, you may need a connection to a fully populated database, or some remote server; or perhaps there is a need to instantiate a complex class created by someone else. All these dependencies hinder the ability to write unit tests. When such dependencies need a complex setup for the automated test to run, the end result is fragile tests that break, even if the code under test works perfectly. This article covers the subject of mocks (also known as test doubles, stubs and fakes, amongst other names) and creating manual mocks vs. using a full-fledged mocking framework. Read more...
=== Sponsor ===
Advertise with Methods & Tools
Reach an audience of more than 60'000 professional software developers, software testers and project managers publishing with Methods & Tools for as low a $60 / month. Do you want to promote a software development tool? Are you interested in buying a link to your website from a good reference?
Contact Methods & Tools today to advertise with us!
*** Quote of the Month ***
At the beginning of a Tetris game, you start with an empty game. It's like the very beginning of a coding project when there is nothing yet.
Then blocks start to fall down. The way you position each block has an impact on the rest of the game. If you place blocks around without much reflexion, letting holes slip in, you're making life harder for the rest of the game. And if you manage to build a clean, compact structure, then it will be more manageable later in the game.
The analogy with technical debt is that each new fix or development is like a new block coming in, which you need to integrate with the existing code. If you hack it in a quick and dirty way, it's like leaving holes in the Tetris structure: you're making life more difficult down the line.
And if you take the time to design a clean solution to integrate the fix or development, it's like making sure you leave few holes in the Tetris game. This is less easy to achieve but it pays off in the long run.
The goal of a Tetris game is not to always have a flat structure though. It's ok if it builds up a bit, as long as you have a plan to reduce it later. Like leaving the space for a vertical bar to slide in and clear out four rows at a time, with such a pleasant feeling:
Even if you leave a few holes in, it's ok if you manage to have compact rows above them that will clear out and allow to fill the holes later. This is similar to technical debt, that is ok to build up if it's under control and you have a plan to pay it back later.
What makes the Tetris analogy interesting is that anyone can relate to it, even people that are not developers or that don't realize the state of the code.
Source: Technical Debt Is like a Tetris Game, Jonathan Boccara, https://www.fluentcpp.com/2020/01/17/technical-debt-is-like-a-tetris-game/
*** Software Development Linkopedia ***
Resource: Resources on GitLab’s all-remote approach. GitLab curated list of resources for remote professionals, teams, and organizations.
Text: From Software Engineer to Engineering Manager. A year ago, all engineers at ShopBack reported directly to the CTO. We had no Engineering Managers (EM), no team leads, and in other words — no structure. Recognising this as a rising issue for a start-up with a 250% year-on-year growth rate, we hired a VP Engineering to put a proper structure in place. Introducing engineering managers was a paradigm shift he proposed which had an outsized impact on the engineering team.
Text: 7+ Ways to Track User Stories. Why do we want to track user stories? There are several reasons, some better than others.
Text: A Node.js Guide to Actually Doing Integration Tests. Your software isn't fully tested until you write integration tests for it. While unit tests help ensure that functions are properly written, integration tests help ensure that the system is working properly as a whole. In this article, Toptal Software Engineer Luka Blažecki uses Node.js to explain why integration testing is important for every development platform and how to write clean, composable integration tests.
Text: Let me finish: how to stop interrupting… and change the world. We are all guilty of interrupting – but if we all just stopped and listened, argues Nancy Kline, we could radically change the way we live…
Text: Why Senior Engineers Hate Coding Interviews (And what you should use instead). Senior engineers are the lifeblood of any software organization. They are the most desired, most expensive, and most difficult to attract. And especially in an historically tight labour market, your hiring process needs to be tailored to their specific needs, as you need them much more than they need you. Senior engineers hate coding interviews, and if you're looking to attract the best, you should hate them too.
Text: The Dark Side of Agile. After many years of working with Agile and being a witness to its results, we found the main mistakes (the dark side) that usually come up when implementing this methodology. Take a look at some reasons why Scrum fails within the software development projects.
Text: Is It Easy to Test Software? Software testing seems like an easy job to many people thinking that some little theoretical knowledge will be enough to be good software testers. This article explains that you need more than this to test software efficiently.
Video: Continuous Software Architecture in Practice. These two videos are based on an interview by Simon Brown of Eoin Woodsm Co-Author of the book "Continuous Architecture in Practice". This book is a modern and practical guide to software architecture in the age of Agile and DevOps.
Video: Resilience & Agility through Evolutionary Change & Kanban Maturity Model. Agility is the ability to adapt to changing situations. Resilience is the ability to withstand adversity. As organizations have discovered, agility alone is not sufficient; resilience is needed as well. Both are fundamental to the Kanban Method.
Video: 4 Maps of DevOps. Are you struggling to work out where to start or where to go next with their adoption of DevOps? Although DevOps practices deliver incredible benefits to organizations looking to improve their software delivery practices, the larger positive impact of DevOps to delivering value is often harder to realize. This video presents a set of practices that could help organizations and is called the 4 Maps of DevOps.
Video: Spring Cloud Gateway: Resilience and Security. Do you want to use a microservices software architecture? Are you looking for a solution to manage access to single services from clients? How can you ensure resilience and security for your entire system? Spring Cloud Gateway is a project based on Reactor, Spring WebFlux, and Spring Boot which provides an effective way to route traffic to your APIs and address cross-cutting concerns.
Video: The Hidden Costs of Poor Database Access. Software developers love to try new programming languages, use different frameworks or experiment with new software architectures. But when it comes to databases, they pretty much have been using the same database access approach for the past 30 years.
Video: Reducing Appium Tests Execution Time. This talk shares the mistakes made in the initial software testing phase while creating automated tests for mobile apps using Appium, the reasons behind those mistakes, and the solutions which helped to reduce Appium tests execution time by 50%.
The Product Owner Demystified. There is often a vacuum between the company vision and the final outcome of software development projects, causing late validation and low value. This vacuum is present in pretty much all companies, caused by a wrong and ill-conceived product delivery approach.
Tools: Lerna is an open source tool for managing JavaScript projects with multiple packages. It optimizes the workflow around managing multi-package repositories with git and npm. Lerna can also reduce the time and space requirements for numerous copies of packages in development and build environments – normally a downside of dividing a project into many separate NPM packages.
Tools: Automate REST API Tests with Cerberus Testing Framework. Welcome to this Cerberus Testing step-by-step tutorial for testing REST APIs. This guide will help you understand the test automation workflow and good practices supported by the Cerberus Testing open source framework.
*** Software Development Training ***
Software Development Lifecycle Specialization: This course is designed for people who are new to software engineering. It is also for those who have already developed software, but wish to gain a deeper understanding of the underlying context and theory of software development practices.
Contact us if you want to your training courses listed in this newsletter and reach 35'000 software development profesionnals worldwide.
Methods & Tools Testmatick.com Software Testing Magazine The Scrum Expert |