Software Project Estimation: stop playing casino, just follow best practices

Software Project Estimation: stop playing casino, just follow best practices

Software projects can often go over budget and past deadlines if not estimated properly. Accurate estimation is crucial for successful project planning and execution. This blog post will cover best practices for estimating software projects effectively. Software Project Estimation Best Practices Estimating software projects accurately requires a systematic approach and following proven methodologies. We’ll explore techniques like breaking down requirements, utilizing historical data, considering risk factors, and leveraging estimation tools and models. The goal is to provide practical tips and insights to help teams deliver projects on time and within budget. ...

November 16, 2024 · 29 min · Vadzim Belski
AWS Multi-Tenant Cloud Architectures: How to Choose the Right One for

AWS Multi-Tenant Cloud Architectures: How to Choose the Right One for

Introduction Building a multi-tenant architecture on AWS is a complex undertaking that requires careful planning and implementation. Multi-tenancy allows you to serve multiple customers or clients from a single instance of your application, maximizing resource utilization and reducing costs. However, it also introduces challenges around data isolation, security, and performance. In this blog post, we’ll explore best practices for designing and deploying a robust, scalable, and secure multi-tenant architecture on AWS. ...

November 16, 2024 · 37 min · Vadzim Belski
Software Design principles

Software Design principles

Intro Any architectect and software developer should be aware of and follow best practeces established by many generations of software developers. This article is a recap of the best practices and the most important ones for software developers. Whenever you came to interview with me - you should definitely read this article and know by heart many of the principles. Design principles A brief overview over common design principles SOLID Single Responsibility Principle (SRP): A class should only have a single responsibility, that is, only changes to one part of the software’s specification should be able to affect the specification of the class. Open/Closed Principle (OCP): “Software entities … should be open for extension, but closed for modification.” Liskov Substitution Principle (LSP): “Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.” Interface Segregation Principle (ISP): “Many client-specific interfaces are better than one general-purpose interface.” Dependency Inversion Principle (DIP): One should “depend upon abstractions, [not] concretions.” DRY (Don’t Repeat Yourself) “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system” ...

July 29, 2022 · 3 min · Vadzim Belski