▲GN⁺ 2023-12-09 | parent | ★ favorite | on: 고품질 소프트웨어 개발 방법을 배우지 못하는 현실(florianbellmann.com)Hacker News 의견 소프트웨어 엔지니어링은 컴퓨터 과학(CS)의 핵심 주제가 아니라 다른 영역에서 가르치는 경우가 많으며, 선택 과목이나 소프트웨어 엔지니어링 과정에서 다루어짐. CMU에서는 소프트웨어 엔지니어링 석사 및 박사 프로그램을 운영하며, 블로그 포스트에서 언급된 내용을 포함하여 다양한 주제를 가르침. 컴퓨터 과학 학위를 가진 사람들과 협업하는 것이 더 쉬움을 경험함. 이들은 좋은 알고리즘의 중요성을 이해하고 있으며, 파서나 암호화를 직접 구현하려 하지 않음. 소프트웨어 엔지니어링 분야에서는 팀워크와 품질에 대한 순진한 생각을 교정하는 과정이 부족함을 지적함. 고품질의 소프트웨어 개발은 경험 많은 회사에서 배울 수 있음. 과거에는 FAANG 회사들이었지만, 현재는 TailScale과 같은 회사들에서 배울 수 있음. 무의미한 마이크로서비스, 도커, JSON 처리 등을 남발하지 않고, 퀵체크, 가설 검증, 퍼징 등을 활용하여 품질을 높일 수 있음. 버그 없는 소프트웨어를 시간 내에 배포해야 한다는 주장은 품질 소프트웨어에 대한 기사를 시작하기에 부적절한 전제임. 버그 없는 코드를 배포할 수 있다고 믿는 것은 현실과 동떨어진 생각임. 컴퓨터 엔지니어링 프로그램과 인턴십 및 실습을 강조하는 대학들이 있음. 많은 대학의 CS 학과는 수학 학과에서 분화되어 이론에 중점을 둠. 대학은 단순한 직업 학교가 아니라 복잡한 자료를 마스터하는 능력을 훈련하는 곳임. 대학에서 산업용 소프트웨어 빌딩을 가르친다는 주장은 과장된 것임. 지속적인 배포 파이프라인이 일반화된 현재, 품질 보증 부서가 수동으로 버그를 확인하는 것은 구식 방법으로 여겨짐. 소프트웨어가 '더 안정적'이거나 '유지 보수가 쉬워질 것'이라는 논리는 코드베이스에 직접 작업하지 않는 사람들에게 설득력이 없음. 개발자는 품질 보증(QA)을 하지 않는 비용에 대해 말하며, 이것이 비즈니스와 관리자에게 이해되는 언어임. 품질, 시간, 의사소통 복잡성, 비용 중 세 가지를 선택할 수 있음. 소프트웨어 엔지니어링은 공장 프로세스를 적용하기 어려운 팀 스포츠이며, 팀워크와 개인의 성장을 중시해야 함. 소프트웨어 개발자는 품질 높은 소프트웨어를 만드는 방법을 배웠지만, 회사를 운영하는 MBA나 이사회가 이를 이해하지 못해 실제로 적용하기 어려움을 겪음. 대부분의 직장에서 소프트웨어 개발자의 의견은 대체로 무시됨. 품질은 실제로 연습을 통해서만 습득할 수 있는 속성임. 품질 높은 결과물을 만들어내는 능력은 반복적인 실습을 통해 얻어짐.
Hacker News 의견
소프트웨어 엔지니어링은 컴퓨터 과학(CS)의 핵심 주제가 아니라 다른 영역에서 가르치는 경우가 많으며, 선택 과목이나 소프트웨어 엔지니어링 과정에서 다루어짐.
컴퓨터 과학 학위를 가진 사람들과 협업하는 것이 더 쉬움을 경험함. 이들은 좋은 알고리즘의 중요성을 이해하고 있으며, 파서나 암호화를 직접 구현하려 하지 않음.
고품질의 소프트웨어 개발은 경험 많은 회사에서 배울 수 있음.
버그 없는 소프트웨어를 시간 내에 배포해야 한다는 주장은 품질 소프트웨어에 대한 기사를 시작하기에 부적절한 전제임.
컴퓨터 엔지니어링 프로그램과 인턴십 및 실습을 강조하는 대학들이 있음.
대학에서 산업용 소프트웨어 빌딩을 가르친다는 주장은 과장된 것임.
소프트웨어가 '더 안정적'이거나 '유지 보수가 쉬워질 것'이라는 논리는 코드베이스에 직접 작업하지 않는 사람들에게 설득력이 없음.
품질, 시간, 의사소통 복잡성, 비용 중 세 가지를 선택할 수 있음.
소프트웨어 개발자는 품질 높은 소프트웨어를 만드는 방법을 배웠지만, 회사를 운영하는 MBA나 이사회가 이를 이해하지 못해 실제로 적용하기 어려움을 겪음.
품질은 실제로 연습을 통해서만 습득할 수 있는 속성임.