Software Architect là một vị trí rất nóng bỏng và được nhiều công ty phát triển phần mềm hàng đầu săn đón. Nhiều Senior Software Engineer cũng quan tâm và muốn dịch chuyển sang vị trí này. Nhưng điều gì tạo nên một Software Architect chuyên nghiệp?
Một kiến trúc sư phần mềm (Software Architect) ở công ty công nghệ hàng đầu trên thế giới thường là những người có một tư duy xuất sắc và luôn nhìn “Big picture”. Họ hiểu những gì cần thiết để giải quyết một vấn đề với nhiều kích thước khác nhau. Họ xác định các hệ thống thành phần bên trong một hệ thống tổng thể, làm sao các hệ thống thành phần giao tiếp hài hoà với nhau, và làm sao để tạo ra một hệ thống đáng tin cậy và đạt được hiệu suất theo yêu cầu. Kiến trúc sư phần mềm là những chuyên gia trong lĩnh vực, đã từng thiết kế, triển khai nhiều sản phẩm phần mềm khác nhau.
Đâu là yếu tố tạo ta một Software Architect chuyên nghiệp:
1) Là một chuyên gia trong lĩnh vực – domain expert: Họ có một sự hiểu biết đủ rộng về lĩnh vực phần mềm để biết những thành phần, công cụ nào cần thiết để thực hiện công việc. Họ hiểu được sự đánh đổi giữa các thuộc tính chất lượng – quality attributes như: reliability, flexibility, performance,… và dễ dàng triển khai và mở rộng trong tương lai. Họ luôn đưa ra những tiêu chí để có sự chọn lựa thiết kế phù hợp với yêu cầu và có thể đưa ra các hướng dẫn cho người khác chọn lựa thiết kế phù hợp với yêu cầu của chuyên viên phân tích nghiệp vụ.
2) Là một cố vấn: Thông thường mục đích của hệ thống là lu mờ. Các đề xuất cho các hành vi và các thành phần không được suy nghĩ thông suốt. Một kiến trúc sư phần mềm có để đưa ra hướng thiết kế để giải quyết các vấn đề và hướng dẫn các kỹ sư làm sao để thực hiện thiết kế chi tiết trong tương lai. Họ hiểu tường tận về hệ thống và giải thích các thuộc tính của hệ thống và các hành vi trong phương pháp tiếp cận để xây dựng hệ thống. Họ đề xuất các phương pháp phát triển phù hợp và chứng minh cách tích hợp thệ thống theo từng phương pháp cụ thể. Một kiến trúc sư phần mềm chuyên nghiệp điều hướng sự đồng thuận để làm thế nào hệ thống, các thành phần của hệ thống cần được thiết kế và xây dựng để đáp ứng yêu cầu, kể các các tài liệu hướng dẫn thiết kế như Coding Convention,…
3) Là một lãnh đạo kỹ thuật hiệu quả: Một kiến trúc sư phần mềm là người xuất sắc trong giao tiếp với các cấp khác nhau liên quan trong sản phẩm từ CEO đến các cấp Software Engineer. Họ biện minh cho mục tiêu của hệ thống, kiến trúc hệ thống bằng lời nói hoặc tài liệu, và họ là người rất giỏi trong việc viết các tài liệu của hệ thống, Bên cạnh đó họ đưa ra các giải pháp để tái sử dụng phần mềm hiệu quả để giảm chí phí sản xuất và giảm rủi ro quá trình phát triển. Họ thống nhất các đội trong dự án của họ, đưa ra tầm nhìn về hệ thống và giúp các đội dự án tập trung vào tầm nhìn, lôi kéo mọi người làm việc cùng nhau để sản xuất những thứ được tích hợp chặt chẽ lẫn nhau.
4) Là một người phân rã vấn đề xuất sắc: Phân rã vấn đề là một kỹ năng cần thiết để nhìn vấn đề ở các cấp độ khác nhau và chia ra nhiều bước và các phần khác nhau để triển khai và đưa ra hướng giải quyết tích hợp hệ thống từ các đội dự án khác nhau theo thời gian. Một kiến trúc sư phần mềm chuyên nghiệp luôn đề xuất phương thức phát triển sản phẩm và các công cụ, cơ sở hạ tầng cần thiết để tích hợp dự án một cách hiệu quả, ít rủi ro.
5) Là một người lạc quan: Một kiến trúc sự phần mềm chuyên nghiệp có tư duy tích cực và lạc quan cho những gì họ đảm nhận. Nếu hệ thống gặp vấn đề thì họ sẽ giải thích và tư vấn làm thế nào hệ thống được sửa chữa với các giải pháp thay thế khác nhau. Họ giải thích làm sao để đạt được mục tiêu một cách hiệu quả, và tạo ra cho mọi người trong dự án một niềm tin để vượt qua những thách thức trong quá trình phát triển sản phẩm. Một kiến trúc sư phần mềm thật sự cần khi dự án gặp vấn đề về thiết kế mà đội dự án không thể cứu vãn và họ xuất hiện để đưa ra các giải pháp thay thế.
Để trở thành một kiến trúc sư phần mềm chuyên nghiệp đòi hỏi bạn học không ngừng nghỉ, hiểu rõ về kỹ thuật phân tích & thiết kế kiến trúc phần mềm, cập nhật xu thế công nghệ, tham gia thực hiện thiết kế các hệ thống lớn nhỏ và học những kỹ năng mềm khác như giao tiếp, lãnh đạo và truyền cảm hứng,… nhưng nghề kiến trúc sư phần mềm luôn được săn đón.
Tuỳ Phong – APEX Global Corporation