Không có kế hoạch cụ thể cho giai đoạn này, mục tiêu của tôi là bắt đầu và tiến tới thành công trong công việc này.
Bài viết dưới đây chỉ ra những kỹ năng cần thiết để trở thành một Kiến Trúc Sư Phần Mềm (KTS) cho bản thân, dù có thể không luôn đúng, nhưng tôi muốn ghi lại và chia sẻ quá trình này. Dù sau này tôi có thay đổi vị trí, nhưng việc ghi lại này vẫn có ý nghĩa.
1. Điều quan trọng nhất là mỗi người có một phong cách làm việc riêng,
2. Học cách tìm kiếm, đánh giá và áp dụng các tiêu chuẩn thiết kế phần mềm chung
Đúng vậy, đây là một kỹ năng quan trọng với vị trí này. Bạn hãy suy nghĩ, công nghệ tốt là gì, mã nguồn xấu là gì, kiến trúc tốt là gì, làm thế nào để bản thiết kế của bạn dễ hiểu và triển khai...
Có nhiều tiêu chuẩn và quy chuẩn mẫu đối với việc thiết kế. Bạn cần nghiên cứu kỹ trước khi áp dụng vào bản vẽ thiết kế.
- Why? – Pin hết. (Lần đầu tiên) Why? – Alternator không hoạt động. (Lần thứ hai) Why? – Dây đai alternator đã gãy. (Lần thứ ba) Why? – Dây đai alternator đã quá tuổi và không được thay thế. (Lần thứ tư) Why? – Xe không được bảo dưỡng đúng lịch trình. (Lần thứ năm, nguyên nhân gốc)
Cần thời gian và kinh nghiệm để hiểu và áp dụng kỹ năng này.
Kỹ năng đọc không chỉ quan trọng đối với kiến trúc phần mềm mà còn đối với lập trình viên. Phải đọc, phân tích và đánh giá.
Tất cả thông tin đều là tham khảo, nhưng bạn chịu trách nhiệm cho thiết kế của mình.
Kỹ năng viết là một phần quan trọng trong quá trình này.
Việc biểu đạt ý tưởng trong thiết kế kiến trúc dự án là rất quan trọng. Tuân theo nguyên tắc chung giúp thể hiện ý đồ với đồng đội, nhưng không phải ai cũng hiểu đúng về công nghệ và thuật ngữ. Viết tài liệu cho đội phát triển và khách hàng đòi hỏi sự hiểu biết và tập trung. Khó khăn đó đòi hỏi tập luyện nhiều.
Ngoài việc diễn đạt bằng văn bản, việc sử dụng sơ đồ và hình ảnh trong thiết kế phần mềm giúp truyền đạt ý tưởng rõ ràng hơn. Cần tuân thủ các tiêu chuẩn như UML, ERD để hiểu rõ hơn về thiết kế.
Kỹ năng hướng dẫn là quan trọng. Buổi họp trước sprint giúp đồng đội hiểu rõ ý tưởng, tạo ra sự đồng thuận và cải thiện quá trình thiết kế.
Kỹ năng hướng dẫn là quan trọng. Buổi họp trước sprint giúp đồng đội hiểu rõ ý tưởng, tạo ra sự đồng thuận và cải thiện quá trình thiết kế.
Kỹ năng dọn rác không dễ dàng nhưng rất cần thiết. Việc sửa lại thiết kế cũ để phù hợp với ý tưởng mới đòi hỏi đánh giá kỹ lưỡng về ảnh hưởng, chi phí và lợi ích.
Bạn không đọc nhầm đâu, đây chính là kỹ năng mệt mỏi nhất mà không phải ai cũng muốn làm. Bạn vào một dự án mới hoàn toàn thiết kế mới thì chẳng vấn đề gì, nhưng nếu bạn vào một dự án đang bảo trì, hay thi công sa lệch rất nhiều đối với ý tưởng ban đầu của bạn. Việc bạn đảm nhận lúc này là refactoring (sửa lại, kiến trúc lại...) để lái dẫn thiết kế cũ sang hướng thiết kế mà bạn mong muốn mà không ảnh hưởng quá nhiều đến sản phẩm, dự án, tổ chức. Những thư viện thay thế, những liên kết các thành phần, những phần lõi của sản phẩm,... Tất cả đều phải được điều chỉnh và thay thế dần dần để giảm thiểu chi phí và rủi ro tức thời. Trước khi làm những việc này bạn cần làm nữa là đánh giá những ảnh hưởng (impact), chi phí xây dựng lại (cost + effort), những điểm lợi điểm hại sau khi thay thế những thành phần mới, thiết kế mới, công nghệ mới. Nợ kỹ thuật (technical debt) không phải là một cái nợ mà dễ dàng trả được, chưa kể nó lại không phải là một cái mà đích thân bạn thiết kế từ đầu mà là nhận từ một anh thanh niên đẹp trai nào trước đó. Không thể trách anh đẹp trai đó được vì anh ta chỉ thiết kế đáp ứng tại thời điểm của anh ta và cùng lắm chỉ đáp ứng được nhu cầu phát triển của vài năm sau đó mà thôi.
Những kỹ năng này là những gì mình đã học được khi làm việc trong ngành công nghệ phần mềm. Mình đang cố gắng hoàn thiện chúng mỗi ngày và hy vọng sẽ thành thạo chúng sớm.
Xin cảm ơn sự ủng hộ của các bạn độc giả.