PENTATECH BLOG
Software Quality in Cloud-Based Applications
Strategies such as DevOps, implementing microservices architectures, using containerization and orchestration and prioritizing security by design.
Mastering API Dependency Management
Effective API dependency management is a challenging but beneficial journey to transit. Embrace versioning and dependency management from the beginning.
Principles of Good Software Design
Modularity, cohesion, low coupling, abstraction/information hiding, and good separation of concerns collectively form the bedrock good software design.
Types of API testing
There are several types of API testing that should be executed depending the objectives. API is critical for ensuring quality, resilience and performance.
Understanding Container-based Architectures
Container-based architectures present a paradigm shift in software development and deployment. They bring large technical and business benefits.
Immutability: Building Robust Systems with Immutable Data
Immutability offers big benefits such as predictability, scalability, and concurrency for small cost. A valuable technique in the Software Engineer toolbox.
Backend for Frontends (BFF) Pros and Cons
Backend for frontends pattern is a good strategy when looking at increasing team autonomy, speed of delivery and improved security and performance.
Synchronous vs Asynchronous for Temporal Decoupling
Temporal decoupling is one of the dimensions to think about when decoupling systems. Choosing the right approach involves understanding the properties we need.
Harnessing GenAI to Improve the Software Development Life Cycle
The number of GenAI driven tools is increasing rapidly. How is it playing a role in the SDLC and what are the best tools around.
2023’s Developer Challenges: What is Slowing Us Down and How to Overcome Them
Developer challenges can be opportunities if played well. This article covers strategies to keep up with rapid tech advancements.
Lessons from “The Mythical Man-Month” for Software Engineers
Arguably one of the best books in Software Engineering. The first lesson, the Myth of Man-Month about adding people in the middle of projects, is still relevant as ever.
Differences between software engineering and programming
Software engineering and programming are two distinct roles, each with its own set of responsibilities and skills. This article compares both disciplines.
Choosing Between Building and Buying Software: A Quality View
The buy vs build decision includes cost, however it is not the only aspect. Reliability, performance, security, customization, and maintenance also play a role.
What is the difference between Availability, Recoverability, and Disaster Recovery
Understanding the differences between availability, recoverability, and disaster recovery is essential for building resilient and reliable software systems.
How to Fix Unreliable Tests: A Guide for Software Engineers
Unreliable tests make the team lose confidence in the automated pipelines. Understanding causes of flakiness and how to fix them will bring confidence back.
The Significance of Idempotency in Software Engineering
Idempotency ensures data consistency, fault tolerance, safe retrying, caching and optimization; regardless of how many times it is performed.
From productivity to Software Engineering effectiveness
I suggest to focus on software engineering effectiveness rather than productivity. Key dimensions are code quality, automated testing, and collaboration.
Should I Care About Software Quality on Low-Code Platforms?
The rise of low-code platforms has brought immense benefits to speed up development. However, software quality on low-code solutions should not be overlooked.
The Economics of Software Engineering
The economics of software engineering trade offs between cost of producing, releasing and maintaining software and benefits depending on the outcome.
How to Measure Software Quality
To measure software quality, consider quantitative metrics and qualitative assessments, based on reliability, performance, security, maintainability, usability.
Effective Software Testing: A Comprehensive Review
Effective software testing ensures that the software meets its intended functionality. Different test types are used depending on the case judiciously.
Techniques to Enhance Software Quality
There are certain software engineering techniques that improve software quality and ensure long-term fitness of software systems.
Enabling Quality Software through CI/CD: A Pathway to Continuous Improvement
Continuous Integration and Continuous Deployment (CI/CD) have emerged as game-changing practices. Going faster and releasing often is key for quality software.
When to use a Micro Frontend Architecture?
Micro Frontends is an architectural style for building web apps by decomposing the UI into smaller, self-contained, and independently deployable modules.
Software estimation in software engineering
Predicting the future is as challenging as necessary. This is also true in Software Engineering when estimating development effort, cost and schedules.
Fault tolerance actionable failure metrics
The capacity to withstand a fault without failure is fault tolerance. Monitoring and measuring failure metrics is key to understand what is going on.
The subtle art of decoupling systems
Systems coupling has several dimensions. Hence, decoupling each aspect can take you in a different direction with conflicting trade-offs.
Is high quality software worth the effort?
A classic debate in Software Engineering is about whether investing effort into building high quality software is worth it or not.
Comprehensive Software qualities for scalability
Scalability is the property of a software system to be able to handle a growing amount of work. This article provides comprehensive Software qualities for scalability.
Software quality in software engineering
In Software engineering, quality is defined as building software correctly and meeting specifications; basically, what the customer has requested.