2008-10-17 32 views
5

Các dự án vừa hoặc lớn có bao giờ không yêu cầu một kiến ​​trúc sư? Tôi đã làm việc trên một số dự án mà công ty phát triển tham gia đã chọn không chỉ định một kiến ​​trúc sư ứng dụng. Hoặc là phần mềm được xây dựng hữu cơ và ít quan tâm đến thiết kế hoặc trách nhiệm thiết kế rơi vào các nhà phát triển cao cấp.Khi nào một dự án không yêu cầu một kiến ​​trúc sư ứng dụng?

Động cơ không có phạm vi kiến ​​trúc từ cân nhắc chi phí để tin rằng phương pháp phát triển làm cho vai trò kiến ​​trúc không cần thiết (lập luận này có thể được thực hiện để phát triển nhanh). Một số dự án nguồn mở hoạt động theo nguyên tắc đóng góp tập thể hơn là phát triển với lãnh đạo kiến ​​trúc.

Trả lời

2

Tôi sẽ phải sử dụng sự tương tự ở đây sử dụng nhà ở. Cách đây không lâu (tương đối) mọi người có thể xây nhà mà không có kiến ​​trúc sư hay kế hoạch kiến ​​trúc. Họ cắt giảm một số loại gỗ, sử dụng các kỹ năng đã học để cắt và các bảng máy bay và xây dựng nhà của họ. Cathedrals, lâu đài, vv .... họ đã có kiến ​​trúc sư và kỹ sư, chắc chắn. Nhưng phần lớn thời gian đó là những người sử dụng các kỹ năng được truyền xuống để xây dựng một ngôi nhà.

Những ngôi nhà này đã thực hiện công việc nhưng không kéo dài lâu. Chúng có thể hơi bị rò rỉ, chúng có thể khó cải thiện, vv Nhưng dễ sử dụng nước để làm nền móng của bạn và sau đó thêm gỗ.

Nhà hiện đại có cơ sở hạ tầng để cắm vào, mã phải được đáp ứng, v.v. Chúng tôi cần thiết kế nhà ở được tạo hoặc phê duyệt bởi kiến ​​trúc sư trước khi chúng có thể được xây dựng. Kiến trúc sư đảm bảo tất cả mọi thứ đều ngất đi và ngôi nhà sẽ đứng vững và có thể ở được.


Ứng dụng không khác nhau. Chúng ta không sống trong một thế giới mà các cấu trúc phức tạp có thể lấy đi mà không bị kiến ​​trúc. Chắc chắn tôi có thể viết một cơ sở dữ liệu cho thư viện của tôi như là một bài tập tầm thường; Tôi cũng có thể xây dựng giá sách cho thư viện của mình mà không cần phải có kiến ​​trúc sư tham gia. Nhưng một khi bạn vượt qua các cấu trúc đơn giản, bạn hoàn toàn chắc chắn ai đó chú ý đến bức tranh lớn hơn - cho dù cấu trúc của bạn (nhà hoặc ứng dụng) sẽ làm những gì cần thiết, cho dù nó có đẹp với người khác hay không nó đáp ứng các quy tắc được thiết lập khi xây dựng.

+0

Kỹ sư. Kỹ sư là những người quản lý các yêu cầu về mã xây dựng của các bản thiết kế. Kiến trúc sư không làm điều đó. –

4

Nếu bạn đã có mẫu kiến ​​trúc/hệ thống cho phép bạn xây dựng dự án của mình, bạn sẽ không cần kiến ​​trúc sư chút nào.

Tôi dạy Kiến trúc phần mềm ở trường đại học và kỹ năng trung tâm mà chúng tôi tin rằng kiến ​​trúc sư mang đến bảng là một quá trình thiết kế toàn diện, có hệ thống, đáp ứng nhu cầu của tất cả các bên liên quan. Có một loạt các kiến ​​thức kỹ thuật mà các kiến ​​trúc sư phải có, nhưng nó không phải là không phổ biến cho các nhà phát triển để có cùng một kiến ​​thức (và thậm chí nhiều hơn).

Điều quan trọng là nắm bắt các tình huống chất lượng và biết cách áp dụng các kỹ thuật/mẫu thiết kế đáp ứng những phẩm chất này. Hoặc phát minh ra thứ gì đó nếu bạn phải làm.

Tái sử dụng kiến ​​trúc trong ngành là cao, thường đến mức kiến ​​trúc sư không cần thiết.

Kể từ khi tôi nói chuyện rất nhiều về công cụ này, tôi thực sự có thể tiếp tục và cứ tiếp tục ...

UPDATE: tôi đã nghĩ rằng tôi muốn đối chiếu một số những suy nghĩ thể hiện trong câu trả lời khác.

  • Kiến trúc sư là điểm liên lạc trung tâm.
  • Kiến trúc sư truyền đạt thiết kế - những người giỏi làm điều đó một cách hiệu quả.
  • Kiến trúc sư mang lại trải nghiệm thiết yếu cho sản phẩm/dự án.
  • Cấu trúc lớn hơn cần thiết kế lớn hơn, lập kế hoạch nhiều hơn, tạo mẫu, v.v ... và cần ai đó để đảm bảo "hệ thống phù hợp được xây dựng đúng". Ngược lại với các nhà phát triển, các kiến ​​trúc sư coi nhà phát triển là các bên liên quan và thực hiện các chiến thuật để xử lý các phẩm chất phi thời gian mong muốn của họ (khả năng mở rộng, khả năng bảo trì, khả năng kiểm tra, khả năng sử dụng lại, cấu hình (MeTRiCS)).
+0

Bạn có khuyến khích kiến ​​trúc sư phần mềm làm lập trình viên không? Câu trả lời của bạn cho thấy rằng kiến ​​trúc và mã hóa, mặc dù có liên quan, không nhất thiết trùng lặp. –

+0

Chắc chắn. Tạo mẫu sớm thường là cần thiết để có được một cảm giác cho các kịch bản quan trọng. Mặc dù, tôi đã thấy thiết kế cấp cao được thực hiện mà không cần lập trình cho các dự án lớn hơn. Tôi muốn nói nó phụ thuộc vào kích thước và độ phức tạp. – CVertex

1

Xác định "Yêu cầu".

Bạn chắc chắn có thể xây dựng một sản phẩm lớn không có tầm nhìn trung tâm hoặc lãnh đạo. Nó sẽ chỉ mất nhiều thời gian hơn, có nhiều lỗi hơn, khó duy trì hơn và cần thêm giờ để hoàn thành.

Ưu điểm của việc có một Kiến trúc sư ứng dụng, theo kinh nghiệm của tôi lớn hơn rất nhiều và vượt quá những bất lợi và dự án càng lớn thì hiệu ứng càng lớn. Bây giờ có những điều bạn có thể làm để giảm thiểu hiệu ứng, chẳng hạn như có tài liệu mạnh mẽ và đầy đủ về thiết kế dự định của ứng dụng, được các nhà phát triển theo dõi trung thực - nhưng đó chỉ là có một tài liệu thay thế cho Kiến trúc sư ứng dụng, nó không thực sự là một cách tiếp cận khác.

Phát triển Agile có thể thành công, nhưng thành công là có một máy được chăm sóc tốt của nhóm phát triển, mỗi người đồng ý về các khái niệm cơ bản về thiết kế chương trình và đủ thoải mái để chỉ ra cho nhau khi họ có đưa ra quyết định nghèo nàn và sửa sai lầm lẫn nhau.

Một lần nữa, bạn không thực sự thay thế vai trò của kiến ​​trúc sư ứng dụng, bạn chỉ cần truyền bá trách nhiệm cho một nhóm người.

Thực tế đơn giản là, vai trò đó [i] là [/ i] thứ mà bạn sẽ muốn ngồi. Làm thế nào bạn ngồi nó là vào bạn, nhưng phương pháp hiệu quả nhất đã được chứng minh là có một người làm điều đó.

+0

Yêu cầu trong ngữ cảnh này có nghĩa là dự án sẽ tồi tệ hơn nếu không có kiến ​​trúc sư. Ví dụ, có thể lập luận rằng các dự án nhỏ không yêu cầu một kiến ​​trúc sư vì chúng có thể được thực hiện thành công mà không cần xem xét thiết kế. –

+0

Tôi nghĩ rằng bạn đã liệt kê các dự án trường hợp ngoại lệ đặc biệt duy nhất. –

0

Ở nơi tôi làm việc, chúng tôi có kiến ​​trúc sư cho một dự án lớn. Các kiến ​​trúc sư là nếu bạn thích 'tiếng nói của sự tỉnh táo' và thu hẹp khoảng cách giữa vai trò của nhà phân tích nghiệp vụ ('Đây là điều chúng tôi tin rằng ngành công nghiệp yêu cầu') và các nhà phát triển cao cấp ('đây là cách hoạt động'). Họ cung cấp một cái nhìn nhất quán về cách phần mềm nên phát triển - bức tranh lớn hơn, nếu bạn thích.

Các nhà phát triển di chuyển xung quanh - đặc biệt là những người tốt - và nhận được tính nhất quán trong một dự án là quan trọng, theo ý kiến ​​của tôi. Các kiến ​​trúc sư chuyên về một lĩnh vực của dự án (dự án lớn, nhớ) và không di chuyển xung quanh, vì vậy họ phát triển một sự hiểu biết tuyệt vời về những gì là để đạt được và làm thế nào chúng ta nên đến đó.

Chúng cũng cung cấp 'đường cong làm mịn' cho các tình huống flip-flop bạn nhận được với nhu cầu kinh doanh thay đổi và sức đề kháng tự nhiên của nhà phát triển để thay đổi quy trình đã được nướng.

Ngay cả các dự án mã nguồn mở có những gì tôi gọi là một kiến ​​trúc sư - những người trung tâm trong dự án thường có tầm nhìn về những gì đang được xây dựng và nó nên như thế nào. Các cộng tác viên đang cung cấp ý tưởng và đẩy ranh giới, nhưng có một người phản đối một sự thay đổi nếu nó không phù hợp.

0

Điều đó tùy thuộc vào ý nghĩa của "kiến trúc sư". Nếu bạn ngụ ý những gì CVertex có nghĩa là, thì quả thật vậy, đó là chính xác.Nếu bạn có nghĩa là "một người * béo không mã nhưng thích UML rất nhiều, và hôn quản lý đằng sau" thì rủi ro chính là dự án sẽ hoạt động và không được hỗ trợ bởi quản lý, thay vì theo cách khác.

* Theo kinh nghiệm của tôi, nhiều người trong số những người không có mã này có trọng lượng dư thừa nhiều hơn tôi. Mặc dù vậy, tôi thấy rất nhiều lập trình viên gầy.

0

Khi chỉ có duy trì bảo trì nhỏ mà không yêu cầu bất kỳ việc làm lại kiến ​​trúc hay phân tích nào.

0

Kinh nghiệm của tôi là đôi khi kiến ​​trúc sư không được gọi là điều đó. Thường có ai đó, hoặc một nhóm nào đó, người chịu trách nhiệm về thiết kế tổng thể của mã. Tôi đã có điều này là một người lãnh đạo kỹ thuật, một trưởng nhóm, hoặc một người dẫn đầu dự án. Nó cũng có xu hướng là một nhà phát triển có trách nhiệm bổ sung hướng dẫn thiết kế quy mô lớn. Có lẽ tôi đã từng làm việc trong các cửa hàng phát triển nhỏ hơn, nhưng tôi chưa bao giờ thấy một điểm để có một người chỉ làm công việc kiến ​​trúc, chỉ có không đủ để thực hiện trên bất kỳ dự án nào!

Các vấn đề liên quan