소프트웨어 엔지니어의 가장 중요한 능력은?

2023. 1. 11. 00:00SE 에세이

문제 정의 능력

 

문제 해결에 1시간이 주어진다면,

문제를 이해하는데 55분,

문제를 해결하는데 5분을 쓸 것이다.

 

아인슈타인의 말이다.

 

과학 연구처럼,

소프트웨어 공학에서도

문제를 명확히 이해하고 정의하는 것이 중요하다.

 

문제가 무엇인가?

문제의 원인은 무엇인가?

문제가 해결된 모습은?

 

소프트웨어 공학자의 목적은 프로그래밍이 아니다.

문제를 해결하는 것이다.

 

소프트웨어 엔지니어의 가장 중요한 능력은

문제정의 능력이다.

 

 

***

여담이지만,

문제를 바르게 정의해 놓으면

프로그래밍 없이도 해결가능한 문제가 이외로 많다.

그럼에도, 실전에서는 이런저런 이유로 오버엔지니어링 하는 경우가 많다.