# การทำซอต์แวร์โปรเจคยุคปัจจุบัน

## การทำซอต์แวร์โปรเจคยุคปัจจุบัน

ตั้งแต่พระเจ้าแมวน้ำที่ 18 เรื่องธุรกิจ **"เวลา"** คือสิ่งที่สำคัญที่สุดเสมอมา ดังนั้นการทำซอฟต์แวร์โปรเจค **"ความเร็ว"** คือหนึ่งในสิ่งที่ขาดไม่ได้ในวงการนี้ แต่จะเร็วอย่างเดียวก็ไม่ได้ ต้องมี **"ความปลอดภัย"** ควบคู่ไปด้วย เพราะไม่อย่างนั้นเราจะทิ้งเศษซากแห่ง **"หายนะ"** ที่จะเป็นปัญหาในอนาคตของเรา&#x20;

ดังนั้นวงจรการทำซอฟต์แวร์ของเรานั้น จะต้องเปลี่ยนทุกอย่างที่เคยทำด้วยมือ (**Manual**) ให้กลายเป็นของที่ทำได้เองอัตโนมัติ (**Automation** ) ให้มากที่สุดเท่าที่จะทำได้ เพื่อให้เราสามารถทดสอบมันซ้ำๆได้โดยไม่ต้องรอทีมเทส หรือแม้กระทั้งการทำ **Build pipeline** เพื่อให้ได้ **Continuous Integration (CI) และ Continuous Deployment (CD)** มานั่นเอง เพราะทุกวันนี้ตัวงานจริงๆมันจะต้องมี **Environments** เต็มไปหมดเลย เช่น สภาพแวดล้อมที่เอาไว้ให้ developer ทดสอบ **(Development Environment)** สภาพแวดล้อมสำหรับทีมทดสอบ **(Test Environment)** สภาพแวดล้อมก่อนเอาขึ้นใช้งานจริง **(Staging Environment)** และ สภาพแวดล้อมของงานจริงๆ (Production Environment) เห็นไหมแค่ไล่ environments ออกมาก็ปวดกบาลนะ

ลองคิดเล่นๆดูนะว่า ถ้าเราจะต้องมานั่งเอา product ไปไล่ deploy ลงในแต่ละ environment ด้วยมือแต่ละตัวแล้วล่ะก็ มันจะวุ่นวายขนาดไหน? แล้วถ้าเกิดเอางานขึ้นผิดตัวล่ะ? เช่น เอางานที่พึ่งเขียนสดๆที่ยังไม่ผ่านการเทสไปขึ้น production ไรงี้ (มันก็น่าจะสนุกดีนะ 😂)  ดังนั้นเราจงค่อยๆเปลี่ยนสิ่งต่างๆที่เราเคยทำแบบ Manual ให้มันค่อยๆกลายมาเป็น Automation ให้ได้มากที่สุดนั่นเองครัช

{% hint style="info" %}
**แนะนำให้ลอง**\
หากใครที่กำลังหาเครื่องมือทำ Build pipeline หรือ ตัววางแผนงานต่างๆอยู่ ผมอยากให้ลองใช้ Azure DevOps ดูนะ เพราะมันมีทุกอย่างที่เราอยากได้อยู่ในนั้นเลย ้เช่น Git Repository, CI/CD, Kanban board, รองรับการทำงานแบบ Agile และ Agile Scrum ด้วย หรือเราอยากจะ custom ให้เหมาะกับทีมตัวเองก็ได้นะ และแจ่มฝุดๆเพราะมันรองรับทุกภาษาสมัยใหม่น่าจะครอบคลุมทุกตัวหมดเบย ส่วนถ้าอยากลองให้กดดูได้จากลิงค์ด้านล่างนี้เบย\
[Microsoft Azure DevOps Services](https://azure.microsoft.com/en-us/services/devops/)
{% endhint %}

![](/files/-LsFjLFMOHErtMUPwNSn)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.saladpuk.com/tips/8.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
