Kiến thức tên miền so với kiến ​​thức kỹ thuật quan trọng như thế nào?


33

Tôi đang làm việc trên một ứng dụng Quản lý rủi ro và giao dịch và mặc dù từ nền tảng C #, tôi đã được yêu cầu làm việc trên các gói SSIS. Bây giờ tôi có thể sống với điều đó. Điểm đau là có quá nhiều sự nhấn mạnh vào sự hiểu biết kinh doanh. Giao dịch (Chính xác là Giao dịch năng lượng) là một lĩnh vực HẤP DẪN và hiểu từng chút một của nó là quá sức. Nhưng trong hai tháng qua, tôi đã cố gắng tìm hiểu các thuật ngữ kinh doanh - Đánh dấu thị trường, Số liệu rủi ro, Vị trí, PnL, Hy Lạp, Dụng cụ, Cấu trúc sách ... từng chi tiết nhỏ (bạn hiểu rõ). Bây giờ IMHO, đây là công việc của một BA. Chắc chắn nó rất quan trọng đối với các nhà phát triển để hiểu doanh nghiệp nhưng bạn vẽ đường này ở đâu?

Khi tôi nói chuyện với người quản lý của mình về điều này, anh ấy gần như chế giễu tôi bằng cách nói rằng bất cứ ai cũng có thể học một công nghệ trong một tuần. Đó là công việc khó khăn hơn. Khát vọng lâu dài của tôi là vẫn ở khía cạnh kỹ thuật, có thể trở thành một kiến ​​trúc sư (nếu có thể). Nếu tôi muốn tập trung nhiều vào kinh doanh, tôi đã theo đuổi bằng MBA!

Tôi muốn biết nếu tôi sai hoặc quá ngây thơ trong việc hiểu tầm quan trọng của doanh nghiệp hay sự thất vọng của tôi là hợp lý?


12
Vui lòng cho người quản lý của bạn biết rằng Công nghệ / Lập trình không giới hạn ở EXCEL || Văn phòng MS | | Kết nối cùng thời gian, mà bất cứ ai cũng có thể học trong một tuần.
Kiểm lâm

Tôi không thể tin vào một số câu trả lời, tôi hy vọng mọi người bỏ phiếu trả lời với sự báo thù.
Gaurav

@Gaurav, tôi hy vọng là không. Tôi không nghĩ những cảm xúc nóng bỏng sẽ làm tốt bất kỳ điều gì trên diễn đàn này (hoặc bất kỳ diễn đàn nào nói chung). Tôi sẽ quan tâm để biết phản đối cụ thể của bạn, vì vậy hãy bình luận về câu trả lời bạn có vấn đề.
Péter Török

@Ranger LOL! Bạn nói rằng một công việc quản lý sẽ dễ dàng?
Gopi

5
Yêu cầu anh ta học những gì bạn làm trong một tuần. Đó là một thái độ rất kiêu ngạo. Tôi thậm chí đã đặt cược với anh ta rằng anh ta không thể làm những gì bạn có thể, đặt cược gấp đôi lương của bạn. Có thể mất một tuần để một người mới học được cú pháp của bộ nhớ, toán hạng và điều kiện của một ngôn ngữ cụ thể ... và có thể là một tháng hoặc hơn để làm chủ chúng. Đó là một quá trình lâu dài để có được vị trí của chúng tôi, nhưng nói chung đó là niềm đam mê của chúng tôi vì vậy chúng tôi đã trải qua những khó khăn trong suốt cuộc đời.
Ẩn danh

Câu trả lời:


33

Công việc của lập trình viên là dịch các yêu cầu ngôn ngữ tự nhiên sang triển khai ngôn ngữ máy. Bạn không thể làm điều đó một cách hiệu quả nếu bạn chỉ thông thạo ở bên này hay bên kia. Trừ khi bạn viết trình biên dịch hoặc phần mềm kiểm soát phiên bản, hầu như mọi công việc lập trình sẽ yêu cầu một lượng kiến ​​thức không lập trình đáng kể.


1
Khi một lập trình viên không nhận thức được khách hàng nói gì khó mã hóa
Gopi

+1 @Sri Kumar đúng, nhưng tôi nghĩ là một lập trình viên, bạn vẫn có thể tìm ra họ cần gì và bạn sẽ sử dụng công nghệ như thế nào để đưa ra giải pháp. Tôi đồng ý, viết các giải pháp kinh doanh có nghĩa là đi qua tất cả các loại hình kinh doanh.
gideon

3
Câu trả lời của tôi sẽ là điều tương tự được diễn đạt khác nhau. Nếu bạn không hiểu ngữ cảnh của những gì bạn đang tạo, bạn sẽ tạo nó trong bối cảnh BẠN hiểu, không phải là bối cảnh MỞ RỘNG. Trừ khi bạn ở trong một nhóm lớn và bạn đang viết các thông số và đối tượng XML dựa trên các sơ đồ UML, điều đó rất quan trọng.
Ẩn danh

Ngay cả trình biên dịch và vcs cũng có một miền, chúng ta có thể thoải mái hơn với nó.
Josh Johnson

24

Carlool và người quản lý của bạn là đúng, nhưng hãy để tôi giải thích:

tìm hiểu lĩnh vực kinh doanh là cách bạn thêm giá trị cho quy trìnhtăng giá trị của bạn cho doanh nghiệp

đây là sự khác biệt giữa lập trình viên khỉ và nhà phát triển


7
+1 Tôi không sử dụng cho lập trình viên. Tôi cần các nhà phát triển, còn gọi là người giải quyết vấn đề. :)
jmort253

18

Có một câu nói xuất phát từ Khoa Khoa học Máy tính của Đại học tôi:

Nếu bạn muốn xây dựng phần mềm cho Nhà địa chất, trước tiên bạn phải hiểu Địa chất. Nếu bạn muốn xây dựng phần mềm cho các nhà vật lý, trước tiên bạn phải học về Vật lý. Nếu bạn muốn hiểu về kinh doanh, thì trước tiên bạn phải học cách nói chuyện kinh doanh.

Tôi nghe mọi người ở đây lúc nào cũng nói rằng Phát triển phần mềm là một lĩnh vực sáng tạo. Tôi tin rằng điều này đúng ở một mức độ nhất định. Nó liên quan đến sự sáng tạo trong đó người ta phải có khả năng nhìn ra bên ngoài chiếc hộp để giải quyết một loạt vấn đề.

Điều đó không có nghĩa là bạn có thể ngồi xuống và ồ lên một cách sáng tạo bất cứ thứ gì bạn muốn. Đây không phải là lớp Nghệ thuật, đó là Kỹ thuật, và khách hàng và các bên liên quan của bạn sẽ mong đợi bạn tạo ra thứ gì đó giải quyết vấn đề của họ , chứ không phải thứ gì đó "tuyệt vời".

Để giải quyết vấn đề, trước tiên bạn phải hiểu vấn đề. Bạn cần đi vào đầu người dùng và hiểu họ nghĩ như thế nào.

Cho dù bạn đang xây dựng phần mềm cho tài chính, tiếp thị, bán hàng, địa chất, vật lý hoặc bất kỳ lĩnh vực nào mà phần mềm hỗ trợ, bạn phải trở thành một phần của lĩnh vực đó.

Chính vì lý do này, ngoài bằng Khoa học Máy tính, tôi còn kiếm được bằng Kinh doanh; nó đã ảnh hưởng rất lớn đến khả năng của tôi trong việc truyền đạt các giải pháp tiềm năng và cung cấp các sản phẩm thành công.

Nếu bạn muốn tìm hiểu thêm về những gì tôi sẽ tìm kiếm khi thuê một kỹ sư phần mềm kinh doanh, hãy xem Mẫu quảng cáo công việc kỹ sư kinh doanh này mà tôi đã viết như một câu trả lời cho một câu hỏi khác.


2
+1 - Khách hàng và các bên liên quan của bạn sẽ mong đợi bạn tạo ra thứ gì đó giải quyết vấn đề của họ, chứ không phải thứ gì đó chỉ "tuyệt".
Karthik Sreenivasan

"Nếu bạn muốn xây dựng phần mềm cho các nhà địa chất ..." thích câu nói đó. Trường đại học nào? muốn có thể trích dẫn nó!
Raj Rao

1
@RajRao Thật không may, tôi đã diễn giải, và tôi không nhớ chính xác mình đã học được điều đó từ ai. Đó là Tiến sĩ Ruben Gamboa ( uwyo.edu/cosc/cosc-directory/ruben/index.html ) hoặc Tiến sĩ William Spears ( uwyo.academia.edu/WilliamSpears ) của Đại học Bang Utah , Laramie, bang Utah , Hoa Kỳ.
jmort253

14

Bạn có thể tồn tại mà không cần nhiều kiến ​​thức về miền hoặc liên hệ với khách hàng với tư cách là một lập trình viên cấp thấp, nhưng kiến ​​trúc sư phần mềm là người rất quen thuộc với miền và chủ động liên lạc với tất cả các bên liên quan.


2
+1 - Thật ngây thơ khi nghĩ rằng một người có thể là một kiến ​​trúc sư thành công mà không hiểu tên miền. Nếu tôi có thể, tôi sẽ +1 bạn một lần nữa để đề cập đến giao tiếp. Quá nhiều người bỏ bê sự phát triển giao tiếp trong sự nghiệp của họ.
jmort253

11

Theo tôi, bạn đã sai và quá ngây thơ.

Như người quản lý của bạn đã nói (hơi thất thường), bất kỳ ai cũng có thể học một công nghệ trong một tuần. Điều duy nhất sẽ đánh dấu bạn và làm cho bạn hữu ích cho công ty của bạn là kiến ​​thức kinh doanh của bạn. Và càng khó, bạn sẽ càng có giá trị.

Rõ ràng, nếu bạn thấy rằng công việc kinh doanh đặc biệt này thật buồn tẻ, bạn có thể tìm kiếm thứ gì đó khác biệt. Nhưng nếu ý tưởng về thiên đường của bạn đang hack các trang web php nhỏ, hãy cẩn thận: sẽ có hàng ngàn kiddies kịch bản cũng đang làm điều đó.

Nghiêm túc mà nói, "Tôi chỉ là một lập trình viên, đừng nhầm lẫn với sự thật" tôi sẽ không cắt nó.


1
Tôi đồng ý với điều này. Nếu bạn muốn viết mã trong chân không, hãy quay lại học viện hoặc nhận một công việc với một nhánh nghiên cứu tại một số công ty lớn như IBM, MS hoặc Google. Đối với hầu hết chúng ta, thực tế là chúng ta phải hiểu về doanh nghiệp, đặc biệt nếu mục tiêu là trở thành một kiến ​​trúc sư về cơ bản là sự kết hợp giữa nhà phát triển mạnh mẽ và BA mạnh mẽ.
Curtis Batt

1
@Mayank, imho, thực sự rất khó để hiểu chi tiết về toàn bộ doanh nghiệp, và đó là điều mà bạn thực sự chỉ nên làm một cách tự nhiên theo thời gian. Mỗi yếu tố của (các) hệ thống mà bạn làm việc nên tự nhiên liên quan đến việc tìm hiểu thêm về doanh nghiệp. Đó là cách mọi thứ đã hoạt động khi tôi làm việc trong các ngành công nghiệp có kiến ​​thức về miền nặng.
Carson63000

2
@Mayank, Không, không sai khi nói điều đó rất khó. Khi tôi đến với công việc hiện tại, các đồng nghiệp mới của tôi nói với tôi rằng sẽ mất 6 tháng chỉ để tôi làm tròn . Bây giờ tôi đã gần 4 năm và vẫn đang học hỏi những điều mới về công việc kinh doanh ...
Stewol

1
+1000 nếu tôi có thể. IMHO, công nghệ là phần dễ dàng / vui vẻ.
ozz

1
Không, anh ấy không phải là Naive. Hơn nữa quản lý của mình là một bleeping thằng ngốc, và cần được chèo thuyền một cách thường xuyên.
Gaurav

8

Tôi cũng làm việc trong ngành Thương mại năng lượng. Kiến thức kinh doanh là 90% công việc. Bạn không thể giải quyết vấn đề đó - đó là một công việc phức tạp.

Nếu bạn ít nhất không hiểu những điều cơ bản về giao dịch và thị trường bạn đang làm việc, bạn sẽ phải vật lộn cho dù bạn là một lập trình viên giỏi đến mức nào.

Tôi làm việc với một số BA, những người không thể đạt được yêu cầu. Tôi cần dựa vào kỹ năng phân tích của chính mình và hiểu biết về kiến ​​thức kinh doanh để hoàn thành công việc.

Tôi nghĩ rằng nếu bạn đang làm việc cho một cửa hàng bán phần mềm Giao dịch năng lượng, kinh nghiệm của bạn có thể khác - nhưng trong giao dịch năng lượng CNTT doanh nghiệp, trọng tâm là tìm hiểu thị trường và cách phần mềm có thể cung cấp giải pháp cho các vấn đề của doanh nghiệp trước tiên.

Các công nghệ thực tế được sử dụng và thực hiện đến một thứ hai xa.

Người ở trên đã đưa ra nhận xét Excel không biết nhận xét của anh ta như thế nào. Các thương nhân thường xây dựng các ứng dụng giao dịch nhỏ của riêng họ trong Excel / VBA (đó là tất cả những gì họ biết) và sau đó CNTT kết thúc việc thừa hưởng những mớ hỗn độn của các chương trình này.

Tôi muốn xây dựng lại một số ứng dụng này bằng ngôn ngữ "phù hợp", nhưng đó không phải lúc nào cũng là ưu tiên.


1
+1 Đối với "doanh nghiệp phức tạp" :) Tôi đã làm việc trong lĩnh vực ngân hàng trước đây và thấy nó thú vị và dễ dàng hơn nhiều. Ngoài ra, như bạn đã chỉ ra mọi thứ được thực hiện trong Excel!
Mayank

6

Nếu bạn đang phát triển cho một doanh nghiệp, cuối cùng bạn sẽ có một ý tưởng rõ ràng và chi tiết hơn về các quy tắc kinh doanh hơn bất kỳ ai khác trong công ty. Điều này không nhất thiết bởi vì bạn thông minh hơn mọi người, nó đến bởi vì đó là cách duy nhất bạn có thể thực hiện công việc.

Phản ứng của bạn có thể là "Nhưng các nhà phân tích kinh doanh làm gì?"

Các nhà phân tích kinh doanh ngồi trong các cuộc họp dài với các khách hàng đang cố gắng đưa ra các yêu cầu từ họ đủ rõ ràng để một nhà phát triển làm việc cùng. Tôi nhìn vào cách họ phải đối phó với khách hàng và cảm thấy biết ơn vì tôi không phải làm điều đó.


2
Chờ đã, các nhà phân tích kinh doanh có được yêu cầu rõ ràng? Nó là cái tốt. Cá nhân tôi muốn giao dịch trực tiếp với người dùng cuối.
Christopher Mahan

@Christopher - Tôi đã nói "cố gắng" để đạt được yêu cầu :-)
Andrew Shepherd

Quả thực bạn đã làm.
Christopher Mahan

1
+1 - Các nhà phân tích kinh doanh ngồi trong các cuộc họp dài với khách hàng đang cố gắng đưa ra các yêu cầu từ họ đủ rõ ràng để nhà phát triển làm việc cùng.
Karthik Sreenivasan

6

Tôi thích vẽ tương tự giữa phát triển phần mềm và kiến ​​trúc. Cả hai đều là nghệ thuật ứng dụng. Cả hai đòi hỏi mô hình phức tạp trong tâm trí của một người. Khía cạnh áp dụng cho câu hỏi này là viết phần mềm mà không có kiến ​​thức kinh doanh cũng giống như thiết kế một tòa nhà mà không hiểu được lối sống và nhu cầu của người dân. Tôi nghĩ rằng nhiều người trong chúng ta đã nhìn thấy (hoặc thậm chí sống / làm việc trong) các tòa nhà có thể trông đẹp và hiện đại và không có gì từ bên ngoài, chỉ là không thể sử dụng được từ bên trong. (Trong trường hợp xấu nhất, chúng thậm chí không đẹp: - ((())

Cập nhật

Nhận xét của Gaurav:

Điều tôi tò mò là nhà phát triển nên nỗ lực tìm hiểu lĩnh vực kinh doanh ở mức độ nào. Anh ta nên đi tất cả các cách, hoặc có một số dòng được rút ra.

Tôi không nghĩ rằng bạn có thể vẽ một đường bất cứ nơi nào nói chung. Trừ khi có những phần của ứng dụng / tên miền bạn không cần phải chạm (do đó hiểu) bao giờ. IMHO rất hiếm trong đời thực, về lâu dài. Bất kỳ phần nào của ứng dụng đang hoạt động sẽ nhận được báo cáo lỗi và yêu cầu tính năng. Tên miền cũng thay đổi, như luật pháp tương ứng, quy tắc thuế, chính sách, thói quen - nói tóm lại, thế giới thực - thay đổi. Điều này phải được theo sau trong phần mềm.

Nhưng ngay cả khi không có yêu cầu bên ngoài để thay đổi, kiểm tra đơn vị và tái cấu trúc mã kế thừa cũng yêu cầu hiểu các lĩnh vực miền có liên quan. Nếu không, bạn chỉ "đóng băng" hành vi hiện tại của ứng dụng mà không biết liệu nó có thực sự đúng hay không.

Cập nhật2

Điều gì xảy ra nếu [...] nhà phát triển thường xuyên thay đổi miền doanh nghiệp mà anh ta đang làm việc?

Điều đó tất nhiên có nghĩa là một phần lớn của khoản đầu tư (thời gian của bạn và tiền của chủ nhân) để có được kiến ​​thức kinh doanh của bạn bị mất :-( Nếu bạn biết điều đó sẽ xảy ra, tất nhiên có thể không đáng để đào sâu vào Tuy nhiên, lưu ý rằng các tên miền không hoàn toàn khác nhau, có những nguyên tắc cơ bản có thể được sử dụng lại giữa các tên miền khác nhau. Và quan trọng nhất là phương pháp thiết kế theo hướng tên miền mà bạn có được có thể sử dụng lại.


1
@Peter Cảm ơn bạn đã cập nhật câu trả lời. Tôi có một câu hỏi thêm. Tôi giả định rằng câu trả lời này, cũng như các câu trả lời khác, cho rằng nhà phát triển sẽ gắn bó với một lĩnh vực kinh doanh, nếu đó không phải là trường hợp khi nhà phát triển thường xuyên thay đổi lĩnh vực kinh doanh mà anh ta đang làm việc. Tôi không chắc chắn về phần còn lại của thế giới, nhưng điều này rất phổ biến ở Ấn Độ. Ví dụ. chỉ năm ngoái tôi đã chuyển từ tên miền CAX sang tên miền Tiếp thị và cũng có thể chuyển sang tên miền khác.
Gaurav

2
@Gaurav, điều đó tất nhiên có nghĩa là một phần lớn của khoản đầu tư (thời gian của bạn và tiền của chủ nhân) để có được kiến ​​thức kinh doanh của bạn bị mất :-( Nếu bạn biết điều đó sẽ xảy ra, tất nhiên nó có thể không đáng để đào Tuy nhiên, lưu ý rằng các tên miền không khác nhau hoàn toàn , có những nguyên tắc cơ bản có thể được sử dụng lại giữa các tên miền khác nhau. Và quan trọng nhất là cách tiếp cận thiết kế theo miền mà bạn đạt được có thể tái sử dụng.
Péter Török

@Peter Cảm ơn một lần nữa. Tôi sẽ bỏ phiếu cho câu trả lời của bạn, nhưng rõ ràng bạn chỉ có thể bình chọn một lần (quy tắc ngu ngốc). Một điều nữa nếu nó không quá bận tâm, bạn có thể kết hợp nhận xét của bạn trong câu trả lời của bạn.
Bò tót

@Gaurav, xong rồi, rất vui vì tôi có thể giúp :-)
Péter Török

Và lý do cho downvote là ...?
Péter Török

2

Tôi đã làm việc trong lĩnh vực ngân hàng hơn mười năm để phát triển các ứng dụng giao dịch và đồng ý rằng điều quan trọng đối với các nhà phát triển là hiểu rõ về doanh nghiệp. Nhưng hết lần này đến lần khác, trong quá trình phỏng vấn, nếu người đó không có kiến ​​thức tốt về kinh doanh, họ sẽ không vượt qua được.

Điều này đã dẫn đến một số lượng đáng kể các ứng dụng và hệ thống quan trọng đang được phát triển bởi những người có kiến ​​thức kinh doanh mạnh mẽ nhưng kỹ năng kỹ thuật từ trung bình đến yếu. Các hệ thống này luôn luôn được thiết kế tồi tệ, liên tục gặp sự cố, bị lỗi, không mở rộng quy mô, gần như không thể sửa chữa mà không phá vỡ thứ gì đó và nếu dự án không kết thúc bị hủy do không đủ kỹ năng kỹ thuật để thực sự có được nó trong sản xuất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.