# 20년간 소프트웨어 엔지니어로서 배운 20가지

> Clean Markdown view of GeekNews topic #8358. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=8358](https://news.hada.io/topic?id=8358)
- GeekNews Markdown: [https://news.hada.io/topic/8358.md](https://news.hada.io/topic/8358.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2023-01-30T11:04:02+09:00
- Updated: 2023-01-30T11:04:02+09:00
- Original source: [simplethread.com](https://www.simplethread.com/20-things-ive-learned-in-my-20-years-as-a-software-engineer/)
- Points: 69
- Comments: 14

## Topic Body

- 난 아직 잘 모름 : 우리는 평생 배워야 하는 사람들   
- 소프트웨어 개발에서 제일 중요한 것은 필요한 것을 만드는 것  
- 최고의 소프트웨어 엔지니어는 디자이너처럼 생각함   
- 최고의 코드는 코드가 없거나, 유지할 필요가 없는 코드   
- 소프트웨어는 목적을 위한 수단   
- 때로는 톱날 가는 것을 멈추고, 뭐라도 자르기 시작해야함   
- 뭐가 가능한지 잘 이해하지 못한다면 좋은 시스템을 설계할 수 없음   
- 모든 시스템은 결국 짜증나니까, 극복할 것   
- 아무도 "왜"를 충분히 묻지 않음   
- 우리는 10x 프로그래머를 찾는 것보다, 0.1x 프로그래머를 피하는데 훨씬 더 집중해야함   
- 시니어 엔지니어와 쥬니어 엔지니어의 가장 큰 차이는 도구나 소프트웨어 작성 방식에 대한 자신만의 의견을 형성 했는지 여부   
- 사람들은 진정으로 혁신을 원하지 않음   
- 당신의 데이터는 시스템의 가장 중요한 부분   
- 기술적 상어(빠른 변화에도 오래 살아남은 기술)를 찾을 것  
- 겸손을 무지로 착각하지 말 것   
- 소프트웨어 엔지니어는 정기적으로 글을 작성해야함   
- 프로세스를 가능한 간결하게(Lean) 유지할 것   
- 소프트웨어 엔지니어도 (모든 인간과 마찬가지로) 주인 의식을 느껴야 함   
- 지원자가 좋은 팀원이 될지, 면접으로 알 수 있는건 없다.  
- 항상 더 작은 시스템을 구축하기 위해 노력할 것   
### 중요  
- 이 글의 처음에 이런 경고가 있습니다.  
  > "어드바이스가 많은 블로그"를 읽으려고 할때, 대부분의 조언은 Contextual한데 많은 어드바이스들은 그 컨텍스트와 함께 전달되지 않음   
  > 컨텍스트를 이해하지 못하는 어드바이스는 무의미하거나 심지어 해로움   
- 그래서 자신의 컨텍스트에 대한 설명을 약간 적어놨는데,  
  - 경력의 첫 절반은 중소기업/스타트업에서 일했고, 컨설팅 회사에 가서 큰 비즈니스 쪽 일을 했음   
  - 그리고는 SimpleThread 를 창업해서 2명에서 25명으로 키웠음  
  - 10년전에는 대부분 중소기업과 일을 했고, 지금은 대기업/중소기업이 혼합  
- 그래서 본인은   
  - 항상 매우 작은것 부터 많은 일을 해야하는 작고, Lean 한 팀에서 일했음   
  - 특정 도구보다는 "작동하는 소프트웨어"를 중요하게 생각함   
  - 항상 새로운 프로젝트를 시작하지만, 여러 시스템을 유지보수 해야함   
  - 대부분의 고려사항들보다, 엔지니어 생산성을 중요시함   
- 이 컨텍스트를 이해하고 위에 글을 보기 바랍니다. 제목만 옮겼으니 상세내용들은 원문을 참고하세요.

## Comments



### Comment 16367

- Author: cih1228
- Created: 2023-06-04T00:13:37+09:00
- Points: 1

하루에 한번씩 읽으러 오겠습니다. 23/06/04

### Comment 14615

- Author: cwyang
- Created: 2023-02-07T09:41:53+09:00
- Points: 1

2. 소프트웨어의 가장 어려운 부분은 올바른 것을 구축하는 것  
이건  
2. 소프트웨어의 가장 중요한 부분은 필요한 것을 구축하는 것  
이 더 좋아보입니다.

### Comment 14616

- Author: cwyang
- Created: 2023-02-07T09:42:59+09:00
- Points: 1
- Parent comment: 14615
- Depth: 1

소프트웨어 개발에서 제일 중요한 것은 `필요`한 것을 만드는 것  
이 더 좋아보입니다.

### Comment 14617

- Author: xguru
- Created: 2023-02-07T09:47:04+09:00
- Points: 1
- Parent comment: 14616
- Depth: 2

좋네요 고맙습니다~!

### Comment 14613

- Author: munidev
- Created: 2023-02-07T09:24:13+09:00
- Points: 1

사람들은 진정으로 혁신을 원하지 않음 <- 요건 무슨 뜻일까요?

### Comment 14614

- Author: xguru
- Created: 2023-02-07T09:38:15+09:00
- Points: 1
- Parent comment: 14613
- Depth: 1

사람들이 혁신에 대해서 이야기하지만, 실제로는 혁신적인 것을 가져다 주면 대부분 부정적인 피드백이 온다고 하는거고요. 그래서 길게 보고 진행해야 한다고 얘기합니다.

### Comment 14558

- Author: draupnir
- Created: 2023-02-03T14:01:44+09:00
- Points: 1

경고가 아주 와닿네요

### Comment 14551

- Author: eyelove
- Created: 2023-02-03T11:43:14+09:00
- Points: 1

와우 정말 좋은글이에요..

### Comment 14504

- Author: tomriddle7
- Created: 2023-01-31T10:21:09+09:00
- Points: 1

기술적 상어는 '낡은' 기술이라기보다는 검증된, 안정적인 기술이라는 의미네요

### Comment 14505

- Author: xguru
- Created: 2023-01-31T10:30:03+09:00
- Points: 1
- Parent comment: 14504
- Depth: 1

아 표현이 조금 이상했네요. 수정했습니다.

### Comment 14491

- Author: functor
- Created: 2023-01-30T13:46:46+09:00
- Points: 1

좋은 글이네요.

### Comment 14489

- Author: galadbran
- Created: 2023-01-30T13:41:12+09:00
- Points: 2

"중요" 라고 따로 표시해주신 부분이 정말 좋네요. 컨텍스트를 같이 제공해줬다는 점에서요.

### Comment 14484

- Author: cqssfm
- Created: 2023-01-30T11:42:05+09:00
- Points: 3

* 지원자가 좋은 팀원이 될지, 면접으로 알 수 있는건 없다.

### Comment 14485

- Author: xguru
- Created: 2023-01-30T11:45:30+09:00
- Points: 1
- Parent comment: 14484
- Depth: 1

아 훨씬 좋네요. 수정했습니다.
