10
Những điều cần thiết để trở thành một Software Architect
Software Architect là gì?
Trước khi đi vào cụ thể SA là gì thì chúng ta cùng xem định nghĩa về SA:Có thể hiểu là Software Architect (SA) là một professor X, người chịu trách nhiệm thiết kế bộ khung cho hệ thống, cách phân chia và tương tác giữa các component, viết các tài liệu kiến trúc tổng quan, coding convention, và hướng dẫn các developer phát triển bản thiết kế chi tiết cho từng chức năng. Vì vậy nếu làm việc với 1 SA tốt, khi thêm các tính năng mới, độ phức tạp của phần mềm sẽ không bị tăng nhiều.
Công việc của Software Architect là gì?
Để những kỹ năng cần thiết của một SA, trước hết chúng ta phải hiểu được công việc của họ là gì? Nó bao gồm những công việc sau:
Những kỹ năng cần thiết của Software Architect là gì?
1. Design
Lý thuyết là vậy, còn thực tiễn thì sao?
2. Decide
Một SA cần phải có khả năng đưa ra quyết định và lead project hoặc team đi đúng hướng(1) Conceptional Integrity: Nếu bạn quyết định làm việc gì theo 1 cách nào đó, hãy tập trung làm theo cách đó mặc dù có thể sẽ tốt hơn nếu làm việc đó theo cách khác. Thường thì điều đó dẫn đến một concept đơn giản, dễ hiểu và dễ bảo trì.(2) Uniformity (tính thống nhất): Nếu bạn định nghĩa và áp dụng một naming conventions, không đơn thuần chỉ là việc chữ hoa chữ thường, nhưng hãy áp dụng cùng cách đó ở bất kỳ đâu.
3. Simplify
Hãy luôn nhớ những nguyên lý giải quyết vấn đề Occam’s Razor (đề cao sự đơn giản). Có thể giải thích nguyên lý này như sau: Nếu bạn có quá nhiều giả định về một vấn đề cần giải quyết, để giải quyết vấn đề bạn có thể nghĩ sai hoặc dẫn tới những cách giải quyết phức tạp khác. Những giả định đó nên được tối giản nhất (nghĩ đơn giản) để có thể đưa ra cách giải quyết tốt.
4. Code
Là một SA nên ít nhất bạn cũng cần phải biết dev của mình đang làm gì, có làm đúng không,… Nếu bạn không biết thì có thể dẫn đến 2 tình huống sau:
5. Document
Architectural documentation thì đôi khi rất quan trọng ví dụ trong trường hợp như code guidelineds. Những tài liệu ban đầu thường sẽ là bắt buộc trước khi bắt đầu code và cần được điều chỉnh thường xuyên, liên tục. Một vài tài liệu khác được tự động tạo bằng code ví dụ như: UML class diagrams, API doc,…
6. Communicate
Từ sự quan sát của tôi thì đây là một trong số những kỹ năng được đánh giá thấp nhất. Nếu bạn khá là giỏi/xuất sắc trong việc design nhưng lại không thể diễn đạt được ý tưởng đó của bạn, suy nghĩ của bạn dường như sẽ có ít ảnh hưởng hơn hoặc thậm chí có thể fail.
7. Estimate and Evaluate
(1) Design practices: hệ thống architecture này theo pattern nào? Chúng có thường được sử dụng và sử dụng đúng cách không? Design có follow theo 1 red line hoặc có sự phát triển nào không kiểm soát được không ? cấu trúc có rõ ràng và tách biệt không ?(2) Development practices: Việc tuân theo Code guidelines như thế nào? Quản lý các version code như thế nào? Deployment practices?
Conclusion
Nếu bạn có ý định trở thành Software Architect, con đường nghề nghiệp của bạn thường sẽ như thế này: Junior Developer -> Developer -> Senior Developer -> Team Leader -> Software Architect. Để trở thành một SA giỏi bạn cần phải trau dồi rất nhiều thứ như mình liệt kê ở trên. Hy vọng bài viết có thể giúp ích được cho mọi người có cái nhìn về vị trí SA (không phải nhàn hạ, đơn giản là vẽ đường cho hươu chạy như mọi người thường nghĩ đâu)Nguồn: Sưu tầm từ internet via Viblo
Bạn đã thích câu chuyện này ?
Hãy chia sẻ bằng cách nhấn vào nút bên trên
Truy cập trang web của chúng tôi và xem tất cả các bài viết khác!