'소프트웨어 적용'에 해당되는 글 1

  1. 소프트웨어 적용에 있어서 머피의 법칙 2007.08.27

소프트웨어 적용에 있어서 머피의 법칙

Posted at 2007. 8. 27. 12:44 // in 일상다반사 // by Manner of Traveling

그동안 개발한 시스템을 서버에 적용하기 위해서 지난주 내내 야간 작업을 했다. 그러나, 소프트웨어 적용이 완료되지 못해서  이번주에도 야간 작업이 해야한다.

야간 작업을 하면서 가장 문제가 되는 것은 시간이다. 늦어도 새벽 5시까지는 모든 작업을 마쳐야 한다. 그렇지 못할 경우에는 작업 이전 상태로 되돌려야 하는 것이 내가 하는 소프트웨어 작업의 원칙이다. 사전에 작업 내역에 대해서 시간을 예상하여 작업 계획을 수립한다. 그러나, 막상 작업을 할때는 변수가 생기기 마련이다. DB에 인덱스를 추가하는 작업이 롤백(Rollback)이 된다든지, 당연히 되어 있을 것으로 알고 있던 사항들이 누락되어서 다시 작업을 해야하기도 한다. 게다가 데이터를 Backup하고 restore 하는 작업도 예상 시간을 훌쩍 넘겨 버린다.

이번에 소프트웨어 적용을 하면서 생각한 것이 소프트웨어 적용에도 머피의 법칙이 존재하는 것 같다.

1. 모든 일은 예상 시간보다 항상 오래 걸린다. 많게는 2~3배의 시간이 필요한 경우가 허다하다. 예상 시간을 정확하게 파악하는 것이 가장 중요하지만 가장 어려운 문제이다. 현실적인 대안은 서비스에 영향이 없는 부분은 미리 작업을 하고, 사전 작업 시간을 예상보다 길게 계획을 수립하는 것이 좋다.

2. 작업 순서는 정해져 있으나, 정작 작업을 할때는 순서는 무시되고 여러명이서 동시에 작업을 하다가 문제가 발생한다. 서로 연관성이 없어서 동시에 진행해도 무방한 경우도 있지만 대부분의 경우에는 한쪽에서 문제가 발생하면 영향을 받게 된다. 따라서, 모든 작업은 동시에 진행하지 않는 것이 좋다.

3. 잘 되어 있을 것으로 예상하는 것은 항상 잘못되어 있어서 다시 해야한다. 사전에 미리 시스템을 확인해야 한다. 사전에 완료되어 있어야 하는 작업에 대해서 반드시 체크를 해야 한다. 그래야만 불필요한 작업에 시간을 소모하지 않아도 되고 시간내에 작업을 완료할 수 있다.

4. 소프트웨어 적용 후 내가 자리를 뜨기 전까지는 문제가 생기지 않는다. 집에 와서 씻고 잠들려 할때쯤 항상 전화가 온다. 시스템이 이상하단다. 밤새고 잠 한숨 못잤는데 다시 출근해야 한다. 정작 다시 출근을 해서 살펴보면 사소한 문제인 경우가 대다수이다.

불행중 다행인 것은 작업이 항상 제시간에 못 끝낼 것 같지만, 6~7시 경에는 서비스 가능한 상태가 된다는 것이다.

소프트웨어 적용에 있어서 너무 주먹구구식으로 일을 하는 것 같다. 그러나 달리 뾰족한 수가 없는 것 같아서 답답하다. 소프트웨어 적용에 있어서 개발된 환경과 실제 적용 환경과는 약간의 차이가 있게 마련이다. 항상 그 약간의 차이가 사람을 힘들게 한다. 그리고 작업 순서 및 내역을 정리하지만, 사실상 모든 작업 사항을 기록하는 것은 아니기 때문에 그때 그때 상황에 따라서 다른 작업도 포함하게 된다. 이런 예상치 않은 작업들은 항상 문제를 일으킨다. 그러나 작업을 하지 않을 수도 없지 않은가?