Tag: SDLC
July 3, 2023
Non-functional Requirements
Non-functional requirements There are two categories of requirements - functional and non-functional. Let’s say we are building an e-commerce web application - the application parts that users interact with - the products page, the shopping cart, and the payment section are functional requirements. In contrast, non-tangible aspects such as how fast the application responds to users’ requests or how secure the application is are non-functional requirements.
As the functional requirements are part of the business requirements, they are tracked and developed as features from the earlier stage of the project.
May 24, 2023
SDLC Approaches
SDLC approaches To successfully build a software project, development teams must choose a software development methodology that works best for the project on-hand. This article overviews some of the popular SDLC approaches.
Waterfall development method The Waterfall development methodology is one of the traditional software development methods. This method works well for smaller well-defined projects. The SDLC stages - requirements gathering, analysis and design, development, testing, deployment, and maintenance are performed sequentially in the waterfall development method, meaning the prior stage has to finish before the project moves on to the next step in the development life cycle.
May 7, 2023
SDLC Stages
Stages of SDLC Software Development Life Cycle (SDLC) is a set of activities that typically are performed during the development of software.
This article highlights some of the critical activities and the best practices in each stage of the SDLC. The below diagram depicts the various stages of SDLC.
Stages of SDLC Feasibility Analysis The feasibility stage identifies whether the planned software development idea is financially worthwhile and technically feasible.
Tag: Architecture
March 25, 2023
Architecture Decision Records
What are Architecture Decision Records (ADRs)? Architecture Decision Records (ADRs) are the documents used to record the reasoning behind certain design decisions in projects for future reference. ADRs help understand the current state of the application’s architecture and infrastructure choices, facilitating future design decisions.
ADRs are typically created in the markdown format and maintained in the version control like the rest of the application codebase. ADRs can be hosted in the application’s wiki section, making it accessible to business stakeholders.
Tag: Python
February 27, 2023
Unit Tests in Python
What are unit tests? A unit is a small piece of code - a method or a function in a Python class or module that needs to be tested. A unit test is an automated test written to verify the functionality of a small piece of code. Unit tests try to verify the functionality of the code by supplying different inputs and checking to see whether the execution of the code results in expected outputs.
February 19, 2023
Python Tool - Poetry
What is Poetry? Poetry is a Python dependency management and packaging tool. Poetry offers a lock file for dependency management which helps pin the exact version of libraries the project needs so the correct library stack is used wherever the project is installed. Poetry has a system requirement of Python 3.7+.
How is it different from the PIP tool? Poetry is built on top of another popular Python dependency management tool - PIP and extends PIP’s feature set.
Tag: Dev
February 5, 2023
Low-code Platforms
What are low-code platforms? Low-code is a software development approach where application developers use drag-and-drop easy-to-use interfaces to develop applications. These platforms come with an IDE containing code validation. This enables citizen developers (developers without any programming background) to create custom business applications to suit their needs.
Why use low-code platforms? Here are some of the benefits of low-code platforms:
Low-code platforms enable rapid application development with a web-based visual interface.
Tag: DevOps
January 18, 2023
Continuous Delivery Vs. Continuous Deployment
What is the difference between continuous delivery and deployment? This write-up clarifies the subtle difference between continuous delivery and continuous deployment. Let’s first review the meaning of continuous integration.
Continuous integration Continuous integration is a DevOps development practice where developers merge their code into a central version control branch for integration so that the automated pipeline process can compile and validate committed code by performing various scans and tests to create a build artifact.
Tag: Cloud-native
January 17, 2023
Cloud-native Development Principles
What are cloud-native development principles? The engineers working at the Heroku platform have compiled a set of ideal practices for web application development to raise awareness of some of the systemic problems and propose solutions to these problems. These principles are commonly known as The Twelve-Factor App.
Later, Kevin Hoffman’s Beyond the Twelve-Factor Application book refreshed the original principles and came up with a revised order along with a few newer priniciples to suit modern cloud-native application needs.
January 16, 2023
Introduction to Cloud-native
What is cloud-native? Cloud-native applications are highly distributed systems that are scalable, resilient, loosely coupled, manageable, and are deployed in the cloud. Cloud-native applications are typically segregated into several services for ease of deployment and maintainability. They leverage the advantages of cloud computing models.
Here is a definition of cloud-native from Cloud Native Computing Foundation’s (CNCF):
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds.
Tag: Principles
January 17, 2023
Cloud-native Development Principles
What are cloud-native development principles? The engineers working at the Heroku platform have compiled a set of ideal practices for web application development to raise awareness of some of the systemic problems and propose solutions to these problems. These principles are commonly known as The Twelve-Factor App.
Later, Kevin Hoffman’s Beyond the Twelve-Factor Application book refreshed the original principles and came up with a revised order along with a few newer priniciples to suit modern cloud-native application needs.