티스토리 뷰

예전에 작성했던 글을 다시 보게 됐다.


좋은 프로그래머란 무엇일까?  (http://elky.tistory.com/174)


4년이 지난 지금 내가 생각하는 좋은 프로그래머란 무엇일까? (지금은 프로그래머란 표현보다 엔지니어란 표현을 좀 더 즐겨쓴다. 이것도 마인드의 변화겠지?)


우선 무엇보다 부드럽게 이야기하는 법, 대화 자세 이런건도 좋아졌고.


현실과 타협도 많이 한거 같다.



이전에는 책에서 보거나 느낀 최선을 실천하지 못하면 마음이 너무 불안했다.


그런데 그 실천이란 것을 주변 상황을 둘러보지 않고 하다보니, 이 상황에서 중요한 판단들을 놓쳐왔다.




예를 들면 원인 파악보다 중요한게 현재 상황에 대한 대처인 경우가 많다.


또한 패치가 얼마 남지 않은 상황에서 큰 설계상 오류에 대한 대처는 패치를 미루거나, 설계상 오류를 감안하고 최소한의 리스크로 서비스를 하는 것이 맞다.


완벽함을 추구한답시고 시간과 여건을 고려하지 않은 개발자 개인의 욕심이 안정성을 무너뜨려선 안되더라.




애초에 안정성이란 검증된만큼 이뤄지는 법이다.


우리는 스포츠 선수들 만큼은 아니지만, 평정심을 갖고 침착하게 상황을 바라볼 필요가 있다.




내가 생각하는 안정성을 위해 중요한 것은 무엇이냐?


바로 경험과 시스템이다.




좋은 경험을 많이 한다면 필요 수준의 기술은 갖추고 있는게 일반적이고.


경험을 바탕으로 퀄리티 높은 결과물을 만들기 위한 시스템을 갖추는 것이 너무나도 중요하다.


언제나 내가 생각하는 전제는 "사람은 언제나 실수한다"라는 것이다.


언제든 실수 할 수 있는 사람을 돕기 위해 시스템을 구축해야한다.



개발자 개개인의 역량은 그 시스템을 잘 구축하고 관리하기 위함이다.


많은 개발자의 실수는 섬세함과 부지런함의 부족이다.


섬세함의 부족이란 어떠한 목표만을 생각하다보니 운용상의 불편함을 만들거나, 운용이 편하지만 결합도가 높은 코드를 양산하는 등의 부족한 완성도를 말한다.


부지런함의 부족이란 갖춰 있는 시스템이 운용이 불편하던지 등의 이유로 적용을 미루는 것을 말한다.


시스템 운용이 불편하다면, 불편한 운용법을 효율적으로 고치는 것도 엔지니어의 자세다.


엔지니어는 철저히 결과로 말해야 하기 때문이다.




현재는 좋은 엔지니어는 상황에 맞는 최선의 판단을 해야 하며 이를 위해서는 일정 수준 이상의 기술과 시스템을 마련해야 된다는 것이 내 생각이다.


현 상황을 잘 개선할줄 아는 사람치고 빌드업을 못하는 사람은 없더라.


보통 난재는 빌드업과정보다, 잘못된 빌드업을 고치는 과정에서 더 많이 발생하기 때문이다.


잘못된 빌드업된 상황이 오래 유지되면 됐을수록 더 고치기 어려운 편이고.



자신이 만들어낸 것들에 대해서 좀 더 냉정히 바라보고, 그 완성도를 끌어올리는 일을 반복함으로써 조금 씩 더 좋은 엔지니어가 된다고 생각한다.


무언가를 그냥 만들어내는 것보다, 잘 만들어 내는 것을 요구 받아야 하고 (일정을 못지키더라도 잘 만들어내란 의미가 아닌 것은 알거라 믿는다.) 또한 그렇게 만들어 내야 한다.


그렇게 하는 사람이 바로 좋은 엔지니어가 아닌가 싶다.

댓글