Sometimes it is quite hard to understand the product/tech team for a non-technical person. There is a lot of technical terms, concepts, and acronyms, and not understanding each other can drive to an inefficient collaboration. Even if, the technical team must vulgarize as much as possible, sometimes it is necessary to explain why a task takes so long, why there are performance issues, why there is a bug, what happens during a major outage, ...etc. In this case, there is no other way than to talk about some technical concepts.
For this reason, let's try to share a bit some basic knowledge and vocabulary about the product and some technical terms. If you want to better understand your product team, you are at the right place.
The product/tech point of view is partly covered by the DDD approach. If you are a tech or a product person, you can find interesting reading about it on Martin Fowler blog.
It is barely impossible to summarize all the different concepts used in a product team. This post may forget some parts, simplify a lot some concepts and roles. This post is a continuous work in progress.
Let's start easy, the product team often uses the term Agile to describe the way it works. Agile drives some principles:
- Ship small software changes frequently
- Have a self-organized team working autonomously when it is possible
- Continuous improvement on how the team and process work
To put in place the agile principles, it exists frameworks. Here is the main frameworks used:
Now, let's talk about some services used to applied Agile frameworks method for a product development. Here you should be able to follow what the product team is working on:
- Issue: An item representing a feature to make, a bug, a task. Sometimes, it can be assigned to a person or a team responsible for doing it.
- Backlog: A list of tickets to be done.
- Sprint: A period of time where a team works on issues.
- Epic: A large issue that can be split into smaller issues. Example: The redesign of the website can be split into small issues per page or per component.
Developer host their code to be able to share it and collaborate on it. In addition to be able to share code, the way we host code allows also to make versioning on it and create workflow around this hosting.
It is very important to have code versioning for a development. The different versions have at least the following benefits:
- Know what the code changes has been done when, who done it, why, and how.
- If a bug has been introduced, it is possible to revert the changes to a previous version without the bug.
- Many developers can work on different code versions
The main software used is Git but you can also head about SVN sometimes. Because Git is the most popular version control system, we will focus on this one.
Git is only a software providing code versioning and way to share it. There is also hosting providers bringing a more developer friendly collaborative workspace with Git.
The main services are the following ones:
The software the product team works need to be deployed for being accessible for users. This deployment is now mostly done on Cloud Hosting Providers. There is three main types of cloud computing as-a-service:
- Infrastructure as a Service (IaaS): Provide basic computing resources and services (servers, storage, networking). Basically, for this type, you do not need to install the server hardware but you need to deploy yourself the database, the environment to run your software, and the software itself.
- Platform as a Service (PaaS): Provide a platform ready to run your software. Basically, you need to deploy your software and configure the environment only. The computing resources, runtime environment, and all the scaling are fully managed by the platform.
- Software as a Service (SaaS): All the software is provided by the platform. For example, it can be the CRM you use, the Analytics Platform, ... etc.
Depending on where you are, you may use also local hosting provider.
- SLA: Service Level Agreement
- SLO: Service Level Objective
- SSO: Single Sign On
- PR/MR: Pull Request / Merge Request
- Repository (aka "Repo"): Git repository
- DX: Developer Experience. A term used to describe concepts for developer experience improvements. Sometimes it is about developer productivity.
- CDN: A Content Delivery Network is a solution providing geographic points of presence (PoP) to distribute the content geographically relative to the end users, enforcing high availability and performance.
If you're seeking solutions to a problem or need expert advice, I'm here to help! Don't hesitate to book a call with me for a consulting session. Let's discuss your situation and find the best solution together.
Publish on Cloudflare Pages with unsupported language versions
It may happen that a version of Node is not supported yet by Cloudflare and will remain not supported for some weeks. That can happen even if it is a Long Term Support (LTS) version. Here how to build even if cloudflare does not support the version.
Publish multiple projects on a Monorepo on Cloudflare Pages
All the tooling provided by service providers is great and makes the developer's life much easier. Usually, those providers connect one git repository to an application. It works fine but it is not so easy when you work on a monorepo or if you want to make multiple deployments for more than one locale from only one source code.
Git case sensitive
Today, I was wondering to know why on the CI pipeline, tests were failing due to missing files but those files are on the file system locally and push on the GIT repository. This issue came from files renamed updating from lowercase to uppercase.
Introducing new blog on OAuth, OpenID Connect, and IAM Solutions
I'm excited to announce the launch of a new blog named CerberAuth, where I'll be exploring the world of OAuth, OpenID Connect, and IAM solutions for modern security.
MySQL Docker Image for Mac ARM M1
MySQL official Docker image is not available for Apple ARM-based M1 and M2 CPUs. But there is some options to use mysql image on Mac and more globally on ARMv8 microarchitecture.
How to deal with Docker Hub rate limit on AWS
Since 2020, DockerHub has been limited to only 200 container image pull requests per six hours. This article will help you to deal with this limitation on AWS.