Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
title고약한문제 합당한해결-인사이트

IT 용어

IT용어는 모든이가 동의하는 전문용어가 없음으로, 그것을 정의를 내리는 능력을 통해

상대의 수준을 가늠해서는 안된다.

실제 수십만명의 고성능 처리 서버를 설계하고 성공적으로 서비스했던 최초 실무개발자 들은 클러스터,분산처리등

그 단어에 대해 정확한 정의를 내리고난후 개발을 시작하지 않았다. -물론 모던한개발은 이러한것이 미리 계획되고 설계되어야함

수많은 시행착오를 격어면서 다양한것을 만들고 시도하면서 비슷한것을 만들어냈으며  

단지 이 기술을 조금더 표준화하고 대중화시키려고 그것을 정리하고 정의하는 대단한 사람이 몇명이 있고

그러한 흐름을 빠르게 캐치하여 번역을 하는 사람이 있으며, 그 번역서를 읽은것만으로 그 분야의 전문가인것처럼 하는 사람이 몇명 있을뿐이다.

어떠한 진보된 시스템의 용어와 관련되어 직접 구성하고 설계하여 성공적인 서비스에 반영을 해본 경험이 없거나 그러한 개발이 되게끔

주도해서 적용을 시키지 못했다라고 하면 같이 모르는것으로 시작을 하라는 의미이며

상대는 당신보다 훨씬더 대용량 고성능의 처리를 성공시킨 실무 전문가 일수 있다란것과 휼륭한 설계자는 이론이아닌, 경험에서 나온다란것이다.

당장 주위사람에게 객체지향에대해 질문을 던져보면 일반적으로 웹서핑을 많이 하는 개발자는 올바른 대답을 하고

온갖 운영이슈를 코드로 해결하는 사람은 그것에 대해 답을 하는것에 관심이 없다. 

중요한것은 자신이 객체지향적으로 설계한 코드가 실제 얼마 동안의 라이프 사이클을 가지면서 다른사람에의해 개선이 되었냐? 란것이다.

대부분 사라지거나, 고치기 힘들어서 방치되고 있는것이 대부분일테지만..., 가장 최악은 단 한번도 자신의 코드가 서비스에 올라간적이

없다란 사실이다. 그리고 객체지향은 그러한 사람들에 의해 이야기가되고 주위개발자의 능력을 평가하는 수단으로 사용한다란것이다.

그리고 그러한 사람들이 다음에 이야기할것은 위험하고 뻔하다. 객체지향의 문제점과 함수형 언어로의 전면 전환이다.

신기술

오래된 기술은  소프트웨어 위기를 가져오는 죄악으로 생각하며, 신기술 도입만이 해법으로

여기지만, 기술만으로 사실 큰 차이가 없으며 다음과 같음 끔찍한 결과를 낸다

  • 소프트웨어 계약 가운데 50퍼센트는 비용을 초과함
  • 60%는 스케쥴을 넘김
  • 45%는 사용할수 없음
  • 29%는 인도되지 않음
  • 사용하려면 19% 재작업해야함
  • 사용하려면 3%수정해야함
  • 인도된 2%만이 사용할수 있으나, 문제가 해결된것은 없고 운영비용만 증가됨

연구가 대부분 문제 사례에만 초점을 맞추었고, 아래에 설명되는 은탄환 장전만을 함


은탄환

운영중인 소프트웨어가 괴물로 변할때, 은탄환을 장전해서 쏘면 그것이 해결되는것으로 보인다.

하지만 소프트웨어 공학읜 본질을 겨냥 하는 경우가 아닌, 우연히 발생하는 사건들을 겨냥하며

은탄환으로 얻는 생산성의 효과는 없다. 소프트웨어를 처음부터 만드는것이 아니라 어떻게 성장을

시킬것이냐가 중요하며. 때로는 그 은탄환은  소프트웨어가 아닌 사람을 겨냥하는것이 목적일때도 있다.

프로

  • 아마추어는 리뷰를 귀찮게 여기지만, 프로는 환영
  • 아마추어는 문서를 마지막에 작성하거나 안하거나하지만, 프로는 처음부터 작성
  • 프로에게 개발주기는 잘 정의된 단계와 기준이 있다.
  • 아마추어는 컴퓨터를 위한 프로그래밍을 하지만, 프로는 사람을 위해한다.

애자일

폭포수 모델의 한계를 언급하면서, 애자일 개발방법론을 이야기하는것이 보통이다.

하지만 이것을 이야기하는 사람은 폭포수 모델을 제대로 경험하지 못하거나, 그것을 개선하기위해

변형을 해본적이 없는 사람들이 대부분이다. 적어도 폭포수는 위에서 흘러서 아래로 내려가며

그러한 사람의 이론을 따라 프로세스를 개선하면 물조자 흐르지 않아 막히는 경우가 대부분이다.

해결책

고약한 문제를 푸는 해결책은 모두 일회성작업이다. 왜냐하면 시행착오를 통해 배울 기회가없으며

모든 시도가 실패하면 안되는 해결책이 되어야 하기 때문이다.그리고 이전의 문제가 지금발생하는 문제보다

그렇게 심각하지 않았음을 느끼고... 새롭게 해온 문제의 해결책은 이전으로 가는것이다란 결론이 났을때는

이미 늦었다. 은탄환은 이미 잘설계된 기존 운영 소프트웨어까지 발사가 되었기때문이다.