diff --git a/additional-info/development.md b/additional-info/development.md
new file mode 100644
index 0000000000000000000000000000000000000000..1387fcc8ff592e310e74332d929a502380594bf9
--- /dev/null
+++ b/additional-info/development.md
@@ -0,0 +1,71 @@
+# L2S-M Application Development Guide
+
+Welcome to the L2S-M development guide. This README provides detailed instructions for setting up and developing L2S-M, which consists of four main components: `l2sm-controller`, `l2sm-operator`, `l2sm-switch`, and `l2sm-ned`. Follow the steps below to set up your development environment and deploy each component.
+
+## Table of Contents
+
+- [Repository Structure](#repository-structure)
+- [Prerequisites](#prerequisites)
+- [Component Development and Deployment](#component-development-and-deployment)
+  - [L2SM-Controller](#l2sm-controller)
+  - [L2SM-Operator](#l2sm-operator)
+  - [L2SM-Switch](#l2sm-switch)
+
+## Repository Structure
+
+Below is a brief overview of the repository's structure and the purpose of major directories:
+
+```bash
+L2S-M
+├── .vscode
+│   └── launch.json
+├── LICENSE
+├── README.md
+├── deployment
+|   └── custom-installation
+├── build
+... [shortened for brevity] ...
+└── src
+    ├── controller
+    ├── operator
+    └── switch
+```
+In the L2S-M/src directory you will find the source code of each component, which is used to build the images in L2S-M/build. 
+
+## Prerequisites
+
+Before you begin, ensure you have met the following requirements:
+
+- A kubernetes cluster you have complete access to.
+- Multus installed in the cluster. 
+- For each component you're gonna develop, you may need specific tools and software.
+- L2S-M custom installation. Install L2S-M up to the component you want to modify/debug/develop, and come back here to check how to proceed with the installation.
+
+## Component Development and Deployment
+
+### L2SM-Controller
+
+1. **Custom installation**: The source code for `l2sm-controller` is hosted in a separate repository. Refer to it to see how this component works and how to change it and deploy it manually.
+
+2. **Configuration**: Specify the IP address the `l2sm-controller` is working on in the `deployOperator.yaml` and `deploySwitch.yaml` files, in the L2S-M/deployment/custom-installation/ directory.
+
+3. **Custom Installation**: Follow the custom installation instructions exactly as described in the `custom-installation` directory.
+
+### L2SM-Operator
+
+Note: you need python3 and the requirements specified in the L2S-M/src/operator/requirements.txt to run it.
+
+1. **Custom Installation**: Follow the custom installation steps up to the controller part.
+
+2. **Database Setup**: Run the MySQL development database using `mysql-development.yaml`.
+
+3. **Configuration**: Update `launch.json` with the `l2sm-controller` service IP and the database IP.  This file has been made to help launching the application locally.
+
+4. **Debugging**: In Visual Studio Code, run the debug Kopf application. It will launch the app in a terminal, but it doesn't allow actual debugging tools such as custom breakpoints, as it's not a feature in kopf applications.
+
+### L2SM-Switch
+
+1. **Deployment**: Deploy `l2sm-switch` normally, ensuring to comment out `initContainers` in the YAML file. Remove the initial configuration script by using as input args: ["sleep infinity"]
+
+2. **Debugging**: For debugging, remove the initial configuration script by and use `exec -it` on the pods to achieve the desired configuration. Since it doesn’t run any background process, no specific image is needed, the current one implements custom commands that enable the current configuration.
+