Ký sự BrSE

Những nẻo đường kỹ sư cầu nối

[IT読解]Bài 2 : Thiết kế phần mềm có cần kinh nghiệm lập trình không

Như thường lệ, giữa tuần mình up bài hay lên cho mọi người đọc. Cuối tuần sẽ có bản dịch.
Chủ đề lần này như title, thiết kế phần mềm có cần phải có kinh nghiệm lập trình không. Bài viết cực kỳ giá trị này do mình lấy từ blog của CEO Sonic Garden. Các bạn đọc và đánh giá xem thử quan điểm ông ấy đúng hay sai, bản thân có ý kiến phản biện không. Riêng mình mới chỉ làm design có 3 năm, còn rất nhiều khiếm khuyết. Sau khi đọc bài thấy sáng tỏ ra nhiều thứ. Ví dụ trước khi trả lời cho câu hỏi ở trên, ông tách design thành 2 loại, mỗi loại có yêu cầu khác nhau. Các này mình trước giờ đã trải qua nhưng chưa hề nghĩ ra. Thật là vi diệu.

「プログラミング経験のない人がソフトウェアの設計をすること」の是非について、どう考えますか?

もしかしたら、このブログの読者であれば、プログラミングが出来ないのにソフトウェア設計をするなんてありえない!という意見の方が多いかもしれません。私もそういう意見ではあったのですが、色々な人と話をするにつけ、どこか違和感を感じていました。

その違和感の正体を探るべく、ソフトウェア設計とプログラミングについて考えてみました。そこでわかったことは「ソフトウェア設計」について、人それぞれに捉え方が違うために、話が通じないことがあることから産まれた違和感だったということです。

この記事では、私の考える「ソフトウェア設計とは何か」について書きました。

ソフトウェア開発はすべてが「設計」である

Toàn bộ các công đoạn phát triển phần mềm đều thông qua thiết kế.

モノづくりにおいて、大きく工程を2つに分けるとしたら「設計」と「製造」に分けることが出来ます。何をどう作るかを決めることを「設計」と呼び、それを実際のモノにすることを「製造」と呼んでいると思います。

たとえば、家を建てようという場合は、建築士が「設計」を行い、大工が「製造(施工)」を行う、という役割分担だと考えられます。また、iPhoneの裏にはこう印字されています。”Designed by Apple in California assembled in China”。これは「設計」をカリフォルニアのアップルが行って、「製造(組み立て)」は中国で行われたということです。

このように、モノづくりでは「設計」と「製造」を分けて考えることが出来ます。

ソフトウェアの場合はどうでしょうか。ソフトウェア開発であっても「設計」と「製造」を分けて考えることが出来ます。では、ソフトウェア開発において「設計」とは何を指していて、「製造」とは何でしょうか。

ソフトウェア開発の業界にいる多くの人が、ソフトウェア開発における「製造」とは、プログラミングのことだと考えています。そのため、「製造」であるプログラミングだけをアウトソースできると信じています。

設計にはプログラミング経験が必要か否か

Thiết kế phần mềm có cần kinh nghiệm lập trình không ?

最後に、最初の問いに戻りましょう。「プログラミング経験のない人がソフトウェアの設計をすること」の是非について。

ソフトウェア設計には「仕様の設計」と「ソースコードの設計」があります。

「仕様の設計」は、ソフトウェアを作りたいと思う人(プロダクトオーナー)には、必ずしもプログラミングのスキルは必須ではないですが、そのソフトウェアのプログラミングを行うプログラマが一緒に入って設計しなければ、良い設計は出来ないでしょう。

「ソースコードの設計」は、間違いなくプログラミングのスキルは必要になります。そもそも現代のプログラミングにおいて、ソースコードの設計とコーディングは不可分であり、それがもし分かれているとしたら、相当に非効率なことが起きているはずです。

これから先は「仕様を設計する」ことだけをする人の仕事はなくなるでしょう。
そして「ソースコードを設計する」ことだけしか出来ない人も生き残れません。

Kết

Các bạn hãy khoan vội coi việc này là đúng hay sai. Đó chỉ là ý kiến của ông CEO nào đấy (link dưới). Thực ra tốt hơn hết là hãy luôn đặt cái tâm của mình vào mỗi sản phẩm thiết kế. Tức là suy nghĩ cả 2 khía cạnh, design của mình đã đảm bảo được yêu cầu đầu vào chưa. Đảm bảo ở đây là đúng – đủ. Thứ 2 đó là đầu ra của mình có tính khả thi không và đội tiếp nhận đọc xong có hiểu và làm theo được không. Đối với “source code design” thì không những phải biết lập trình mà phải dày dạn kinh nghiệm lập trình mới làm được. Vì khi master coding mình mới có thể biến những thứ phức tạp thành câu chữ giản đơn.

Link : https://kuranuki.sonicgarden.jp/2013/01/post-109.html

1/5 - (1 vote)
Nếu thấy hay thì đừng ngại

4 thoughts on “[IT読解]Bài 2 : Thiết kế phần mềm có cần kinh nghiệm lập trình không

  1. Chào anh,
    Hiện em đang làm comtor cho một công ty IT Nhật và có mong muốn định hưởng để trở thành BrSE trong tương lai. Không biết em có nên dành thời gian để học lập trình không hay nên chú trọng vào việc rèn luyện tiếng Nhật và nâng cao các kỹ năng mềm khác ạ?
    Em cảm ơn anh nhiều!

    1. Anh có bài phỏng vấn 1 anh BrSE xuất thân Comtor, em đọc trong đó sẽ thấy câu trả lời. Bài viết nằm trong mục chuyện nghề.

Comments are closed.

%d bloggers like this: