August 23, 2016

소프트웨어 개발자들의 유효기간

 소프트웨어와 알고리즘이 중요하다 강조하는 목소리들이 많은데, 뒷북 좀 그만치자 ...

 내 눈에는 그 가치가 급락 중으로 보인다. 

 믿기 어렵다면 Google Trends로 우선 Programmer를 한번 넣어보자. IT 기술과 시장은 커지는 반면 Programmer에 대한 검색량이 주는 이유는 뭘까? (software engineering도 똑같음)


이걸론 부족하겠지. Indeed.com 잡 트렌드도 보자 ㅋ.

 

Cloud computing의 빠른 진화로, 과거와 달리 IT 비지니스를 위해 더 이상 많은 인원이 달라붙을 필요가 없어졌기 때문이다. 아마 연식이 좀 된 사람들은 알 게다. DB와 리눅스를 잘 다루는 (고급) 서버 개발자와 (초/중급) 클라이언트 또는 웹 개발자를 찾던 시절을. 

 이제는 데이터베이스 전문가, 리눅스 전문가, 서버 전문가, 대형 서비스 경험자, 클라이언트 앱 개발자 기타 등등 인력을 충분히 조달해야 가능하던 일이 한 명 혼자 충분히 해결 가능하다. 

 우리는 요걸 Serverless 시대라고 말한다. 

 소프트웨어 개발자들은 초기 OS와 각종 유틸 전쟁을 넘어 웹의 출현과 함께 server-side technologies에 몰렸고, 오늘날 대부분의 서버 기술이 Clouds로 녹아든 이후엔 App 개발과 스타트업으로 몰리는 양상을 띄고 있다.

 개인 오픈소스 해커들도 사라지고 있는데 individual contribution 위주의 Unix, Linux, 그리고 Apache 활동 들은 대기업 company-driven contribution 형태로 넘어가고 있다.  

 그럼 이쯤해서 개발 랭귀지 동향은 어떻게 변화하고 있는가 보자. C++ 시대를 넘어 Java가 최고급 대우를 받던게 불과 수년 전인데 Scala나 Python으로 빠르게 넘어가는 걸 볼 수 있다. CPU, 메모리 최적화 Coding skills 그딴거 더 이상 필요없다. 논리 설계하면 발로 개발 하든 어쩌든 동작한다.


 통신 인터페이스는 어떻게 되어 가고 있을까? 굳이 길게 설명할 것도 Trends 결과를 붙일 필요도 없다. 웹 소켓과 JSON 따위의 Key/Value로 정리된다. 요즘 RDF나 XML, 그리고 JDBC, ODBC 써본 사람?

 그러니까 결론은 ... 소프트웨어 엔지니어링 노동력의 가치는 점차 자동화에 의해 대체되고 있고, 일기 쓰는 것보다 쉬워지고 있다. 창의적인 App 개발을 해야 살아남는 현실을 인식하지 못한다면 굉장히 위험하다. 소프트웨어 개발자의 유효기간은 이미 끝났다.

2 comments:

  1. 1. https://www.google.com/trends/explore?q=software%20engineer 이 결과를 보면 software engineer는 점점 늘어나는 추세인 것을 알 수 있는데, 위에 포스팅하신 결과는 programmer라는 단어가 software engineer로 대체되어서 programmer가 지는 현상을 나타난게 아닐까요?
    또한 software engineering이 낮아졌다고 하셨는데, software engineering은 생산성, 요구설계에 관련한 연구분야에 대한 검색량이 낮아진게 아닐까요?(agile development 같은 관련 분야의 다른 키워드에 대한 검색량이 늘어나고 있으니까요)

    2. http://www.indeed.com/jobtrends/q-software-engineer.html indeed job trends를 보면 job posting의 percentages를 보여주고 있는데, 말씀하신대로 cloud라던지 data scientist 같은 새로운 직종이 생기면서 percentages가 줄어들었을 수 있을 것 같네요. 어쩌면 job pool 자체가 커지고, 그 안에서의 차지하는 비율이 줄었을 수도 있을 것 같구요.

    결과에 대한 해석은 다양할 수 있으니까 줄이고, 제 개인적인 생각에는 아직은 Software engineer에 대한 유효기간은 남아있는 것 같습니다. 우리나라 같이 IT 기술이 일상에 많이 들어온 나라도 있지만 그렇지 않은 나라도 많구요, 기존의 시스템에 대한 유지보수도 해야하고요. 결정적으로 최근에 개발 쉬워졌다 쉬워졌다 하지만 결국 더 빠른 기간에 더 좋은 생산성으로 일해야 한다는 압박이 더 높아지면서 또 다른 차원의 경쟁이 되고 있는 것 같구요. 또 점점 abstraction이 진행되기 때문에 그 아랫단에 대해 공부할게 훨씬 많아졌고, 그것에 대한 이해가 또 승부를 가르는 것 같더라고요. 결국 알고리즘하고 Computer systems에 대한 이해가 적으면 그 "쉬운 것"도 제대로 못하는 것 같더라고요.

    ReplyDelete
    Replies
    1. 네, 맞는 말씀입니다. 다만 글에서 얘기하고자 함은 모든 전문지식에는 유효기간이라는게 존재하며 그것은 보통 기술 발전에 영향을 받고 점점 빨라지는 것은 확실하다는 ..

      Delete