2010-01-20 3 views
5

이 질문은 많은 의견을 불러 일으킬 수 있지만, 내가 얻고 자하는 것은 나와 회사가 판매하는 제품의 수명을 결정하는 데 도움이되는 일련의 조치입니다. 웹 응용 프로그램의 수명 종료를 결정하는 방법은 무엇입니까?

우리는이 시스템을 우리는 몇 가지 하위 제품을 개발하는 CMS 시스템을 판매

  • 웹 사이트
  • 제안 창조주
  • 마케팅 캠페인 추적기 우리는 시작할 준비가

우리 도로 계획 (2010 년과 2011 년)을 통해 우리는 언제쯤 우리의 삶이 끝날지를 파악하려고 노력하고 있습니다. 여러분 중 일부는 매우 잘 설계된 응용 프로그램 (응용 프로그램이 잘 설계되어 있다고는 생각하지 않습니다)을 생각할 수도 있습니다.은 수명이 끝날 필요는 없지만 사용중인 응용 프로그램은 적어도 6-7 년 간 사용됩니다 거의 문서화되지 않았습니다 (실생활). 현재로서는 핵심 기능 (무서운)을 변경하는 방법을 아는 사람은 단 한 명뿐입니다.

하십시오 조언,

지오


모두에게 감사! 이 주제에 대한 귀하의 의견, 의견 및 생각에 진심으로 감사드립니다.

내가

  • 아래 목록에서 포스트 다시 질문 몇 가지를 해결합니다 우리의 제품의 핵심 기능을 유지 할 수있는 한 개발자가있다. (단 하나만)
  • 기능을 특정 지점까지 늘릴 수있는 개발자가 두 명 있습니다. 두 개발자 모두 핵심 제품의 한계로 인해 제약을받으며 둘 다 이러한 한계 내에서 작업해야합니다.
  • 매우 중요합니다. 수명이 다할 것으로 예상되는 제품은 대부분 계약자가 제작합니다. 계약자는 핵심 기능을 유지할 수있는 유일한 개발자입니다. 우리는 계약자 프레임 워크를 기반으로 개발합니다.

모든 답변을 읽는 동안 답변을 계속 추가하겠습니다.

+3

한 명만 관리 할 수있는 응용 프로그램을 판매하고 있다는 의미입니까? –

답변

7

응용 프로그램이 잘 설계 되었기 때문에 그것을 폐기하고 현재까지 투자 한 모든 것을 풀고 싶지 않을 수 있습니다.

  • 는 주니어 개발자가이 현재 개발자 가입 유무 : 여기

    내 제안이다.
  • 덤프 주니어 개발에 향후 업데이트의 대부분 (SR에서 도움을. 개발자)
  • 이 문서를 검토하는 수석 개발자에게 문의 그의 작품
  • 의 문서를 할 주니어 개발자에게 문의

시간이 지남에 따라이 신청서를 지원할 수있는 다른 사람이 있으며 문서화됩니다. 이제는 자신 만의 잘 설계된 응용 프로그램을 스스로 죽일 필요가 없습니다.

.

("때때로 재 작성은 좋은 투자입니다.") 아래 Jefferey의 제안에이 솔루션을 확장

여전히 현재 응용 프로그램을 삭제하고 다시 작성하려는 경우에도 시스템을 기존 문서 및 요구 사항을 작성해야 새로운 시스템을 기반으로합니다.

현재 및 제안 된 시스템의 설명서를 사용하면 모듈을 모듈별로 업그레이드 (다시 쓰기) 할 수 있는지 확인할 수 있습니다. 이것은 응용 프로그램이 잘 설계된 경우 가능합니다. 당신의 (지오) 당으로


는 코멘트

지오의 조직은 비즈니스 요구 사항 아래의 구현 및 지원에 대한 라이센스 비용을 지불 CMS 응용 프로그램 (오직 하나의 계약 개발자와) 사용자 정의 타사있다 그의 코드 사용 CMS

  • 웹 사이트에 대한

    • 비즈니스 요구 사항
    • 제안 창조주
    • 마케팅 캠페인 추적기
    • 여기

    내 제안

    • 모듈 상세한를 사용하여 모듈을 만들고 경우 문서입니다 이 p 방아쇠. 귀하의 개발자가이 작업을 수행하거나 별도의 비즈니스를 수행하는 것이 이상적입니다. 애널리스트
    • 오픈 소스 CMS가 모두 처리 할 수 ​​있는지 또는 (예 : Joomla, Drupal)을 처리 할 수 ​​있는지 평가하려면 Sir Developer를 고용하십시오.
    • 여기서 가장 중요한 것은 기존 데이터 을 새 시스템으로 마이그레이션 할 수있는 기능입니다. 기존 계약 개발자 도와주세요.
    • 시스템을 사용하려면 프로세스 또는 워크 플로를 업데이트해야 할 수 있습니다.
    • 오픈 소스 CMS를 사용하여 을 구현할 수없는 모듈은 사용자 정의 웹 사이트를 사용하여 구현해야 할 수 있습니다.

    기존 계약 개발자 및 사용권 계약과의 비즈니스 관계에 따라 달라집니다. 당신이 직면 한 것은 시나리오의 벤더 잠금입니다. 이 벤더 잠금 상황을 제거하기위한 솔루션에 대한 추가 연구가 필요할 수 있습니다.

  • +0

    +1 : 현명한 접근. –

    +0

    좋은 접근 방식으로 나에게 투표권을 얻었습니다. 그러나 영원히 쓸모가 있더라도 시스템이 닳아 없어져서 아봐타를 ​​인용하면 "모든 것이 바뀝니다". 아마도 새로운 디자인이 필요할까요? – Anders

    +1

    +1 현재 코드베이스를 최대한 활용하는 건설적인 접근 방식입니다. 이유를 보려면 다음을 읽어보십시오 - http://www.joelonsoftware.com/articles/fog0000000069.html –

    2

    응용 프로그램이 어떠한 종류의 문서없이 출하 될 때 수명이 끝났습니다. 지금 개발을 시작하십시오. 원래 시스템을 아는 사람을 교체하는 것이 좋습니다. 그들이 어떤 종류의 문서도 작성하지 않고 6/7 년 간 간 적이 있다면, 그들은 당신이 당신 회사에서 원하는 누군가가 아닙니다.

    +1

    그건 꽤 어려운 라인이고, 회사의 최대 관심사와 맞지 않을 수도 있습니다. 개발자의 잘못이 아닌 문서가 출하되지 않은 이유는 다양합니다. 핵심 개발자가 한 명이라면 다른 이유는 필요 없습니다. 회사가 끈끈이 묶음으로 달려 가면 (나는 그곳에 가보 았습니다), 투자를 포기하고 (처음 7 가지 수치가 될 가능성이 큽니다) 회사를 설득하기가 어려울 수 있습니다. 처음부터 다시 시작할 수 있습니다. –

    +0

    나는 개발자를 철저히 비난하지 않을 것이다. 개발자가 관리를 밀어 넣었는지 여부를 확인한 다음 문서를 만들지 않았는지 확인합니다. 언제나 PHB는 문서 작성에 시간을 할애하지 않을 수있었습니다. – HardCode

    +1

    나는 또한 개발자를 철저히 비난하지 않을 것이다. 경영진은 문서화를위한 프로세스를 갖추고 있으며 검토 중입니까? 프로젝트 지식이있는 개발자가 한 명 뿐인 이유는 무엇입니까? 문서가 전혀 없다는 것은 비즈니스 사용자가 제공해야하는 요구 사항 문서 (사용 사례)가 없음을 의미합니다. 너무 늦어서는 안되며, 문서화가 문제가된다면, 끝내십시오. 독신을 의지하지 않으려면 다른 사람을 프로젝트에 초대하십시오. –

    0

    비록 잘 디자인되고 작동한다고해도 문서가없고 한사람의 생명이 달려 있다는 사실은 제품이 유지가 불가능한 상태에 있음을 의미합니다. 이것은 좋은 징조가 아닙니다. 나는 제품이 오래 전에 "수명이 끝났습니다"라고 동의 할 것입니다.

    3

    이것은 제 생각이지만, 이것이 판매하려는 제품이라면 비즈니스 전망에 모두 영향을 미칩니다. 제품이 판매되지 않으면 드롭합니다. 제품에 미래가 있다면, 그 제품에 투자하고 리팩토링, 재 작성 또는 무엇을해야하는지에 따라 할 수있는 최상의 소프트웨어로 만드십시오. 충성도가 높은 고객이나 강력한 브랜드가 있다면 가치있는 것입니다.

    가끔은 다른 기술로 모든 것을 다시 작성하는 것이 현재의 소프트웨어가 복사 할 수 있고, 브랜드가 강하며, 제대로 수행 할 수있는 경우 성공적인 투자가 될 때 좋은 투자입니다.

    +0

    동의 함. 때로는 다른 기술로 모든 것을 다시 쓰는 것이 좋은 투자입니다. –

    1

    길게 이야기하기 : 나는 비슷한 상황에 처해있다.

    • 만큼이 응용 프로그램은 cashcow 같은 것입니다 만,이 회사는 고객이 신선한 시스템을 구매하기로 결정하기 전에, 그것은 죽지 않을 것이다 새로운 응용 프로그램의 개발을 여유 (또는 예정) 할 수 없다.

    • (문서화 된) 요구 사항없이 다시 작성하는 것은 거의 불가능합니다.

    • 적어도 전문 부서의 경험은 향후 개발에 유용한 방식으로 문서화되어야합니다.

    • 이 응용 프로그램을 유지 관리해야하는 경우 모듈 간 인터페이스 인 을 도입하여 전반적인 복잡성을 줄여야합니다. 오래된 모듈은 아무리 엉성한지라도 새로운 기능을 플러그인해야하는지 상관하지 않습니다.

    2

    자동으로 시스템의 수명을 연장 interfcaces 같은 테스트 스위트,자가 진단 도구, 코드 주석처럼 수명의 시스템 변경으로 일관성을 유지 것들, 선언적 계약, 그리고 것 문서의 유일한 종류 생성 된 문서

    설명서, 개발자 가이드, 아키텍처 문서, 데이터 형식 등과 같이 수동으로 관리되는 기타 문서 아티팩트는 문서의 양에 비례하여 구식이되는 경향이 있습니다. 나는 당신이 이미 그것들을 유지 보수하는 비용을 고려하지 않았다면 이것들을 당신의 어플리케이션 수명을 증가시키는 요소들로 간주하지 않을 것입니다.

    응용 프로그램을 안정적으로 유지 관리하는 데 개발자 중복을 "감당할"수 없다면 문서를 최신 상태로 유지할 수있는 방법이 없습니다. 문서의 부족은 실제로 당신이 무의식적으로 결정한 기술적 부채입니다. 긴 라이프 사이클이 요구되는 경우, 그 비용은 그 요구 사항을 충족시키는 요인이되어야합니다.

    0

    이러한 시스템이 "최종의 삶"갈 수있는 경우를 결정할 때 고려할 수있는 일의 종류는 다음과 같습니다

    이 시스템은 최종 사용자에게 더 싼, 더 사용할 수 제공하는 기능입니다 신뢰할 수 있고 사용하기 쉬운 양식? 지금이 아니라면, 언제 이것이 가능합니까? 따라서이 제품은 장기적으로 실용 가능합니까?

    이 제품은 고객이 자신의 제품에 쉽게 인터페이스하지 못하도록하거나 "쓸모없는"플랫폼을 실행하도록 요구할 수있는 기술로 작성 되었습니까? 잠재적 인 고객에게 회사가 일 때 상당한이라는 인상을 주시겠습니까? VB6은 아마도 2010 년에도 여전히 괜찮은 편이지만 Win16 호환성을 요구하는 것은 아닙니다.

    기본 기술 플랫폼을 알고있는 훌륭한 사람들을 저렴한 비용으로 고용 할 수 있습니까? 구식 기술의 경우, 플랫폼을 알고 있지만 막 다른 골목으로 간주하는 사람들이 많이있을 수 있으며, 자신의 경력이 저조한 상황에서 어려움을 겪는다면 프리미엄 급여를 요청할 것입니다.

    개발자에게 중요한 부분이 있다면 개발 플랫폼이 계속 지원됩니까? 공급 업체가 더 이상 업데이트하지 않는 경우 실행할 수있는 하드웨어 또는 OS에 제약이 있습니까? 마찬가지로 업데이트해야 할 수도있는 보안 허점이 플랫폼에 있습니까? 틈새 시장 인 오픈 소스 제품조차도 이러한 어려움을 겪을 수 있습니다. 일단 제품이 좋지 않게되고 핵심 개발자가 새로운 프로젝트로 이동하면 커뮤니티에서 수정 작업을 수행하기가 어려울 수 있습니다.

    지원되는 경우 공급 업체가 이전 플랫폼을 지원할 때 프리미엄을 부과합니까? 지금이 아니라면 얼마나 오래 있을까요?

    경쟁력을 유지하기 위해 최종 사용자에게 풍부한 기능을 제공하는 최신 동향을 활용하려면 새로운 기술을 통합하는 것이 얼마나 어렵습니까? 이거 신경 써? 기본적으로 닫힌 시스템을 실행 중인지 여부는 중요하지 않습니다.

    시스템 전체에 걸쳐 잔인하게 "샷건"을 변경하지 않으면 기능 변경 사항을 릴리스하는 것이 얼마나 어렵습니까? 이것은 처음부터 시스템이 모듈화 된 방식으로 설계되었습니다. 경쟁사가 시장에 제품을 공급하는 것이 더 나쁘지 않다면 아마 괜찮을 것입니다.

    시스템을 다시 쓰는 데 드는 비용은 얼마입니까? 판매 수익의 유지 또는 증가가 얼마나 더 싼가와 비교하면 어떻습니까? 전체 재 작성을 경제적으로 수행 할 수는 없습니다. 개발 플랫폼이 확실하다면 리팩토링 방식을 더 시도해 볼 수 있습니다. 여기서 좋은 테스트 스위트와 문서가 도움이되는 곳입니다.

    0

    나는 비슷한 과정을 겪었습니다. 거의 8 년 동안 운영되었던 웹 앱이 있습니다. 그 당시 우리는 구상하지 못한 방식으로 많은 유지 보수를 수행했습니다. 그러나 코어는 좋았으며 여전히 늘어날 수있었습니다.

    우리를 밀어 붙인 것은 유지 보수 비용이었습니다. 올바른 기술을 가진 사람들을 찾는 것이 8 년 전부터 쉬웠습니다. 오늘날 아무도 그러한 환경에서 일하기를 원치 않습니다. 우리조차도 안된다.

    분석 후, 우리는 12 개월 이내에 동일한 기능으로 대체 할 수 있었고이 시간을 빨리 갚을 수 있다는 것을 알았다.

    우리는 스크린 샷을 기능적 요구 사항으로 사용하여 모양과 느낌을 개선했으며 더 많은 기능을 제공 할 수있었습니다.또한 사용 데이터를 사용하여 거의 사용되지 않았거나 사용되지 않은 부품을 식별하고 사용 된 부품에 더 많은주의를 기울였습니다.

    궁극적으로 우리는 성공했습니다. 팀의 모든 구성원이 신기술에 정통했기 때문에 학습의 필요성이 거의 없었습니다. 다른 요인으로는 잘 설계된 디자인이 포함되었습니다. 나는 우리가 무엇이든을 쓰기 전에 디자인에서 다만 3 달을 보냈다는 것을 생각한다.

    마지막 요소는 우리의 앱이 모듈 식이라는 것입니다. 그래서 우리는 크기가 작아서 짧은 배달 일정과 각 배달 목록 사이의 중단 시간/분석 기간을 조합 할 수있었습니다. 이것은 우리가 모든 단계에서 올바른 길을 가고 있음을 확실히했습니다.

    +0

    귀하의 상황은 우리와 매우 유사하게 들립니다. 현재 플랫폼에서 많은 새로운 개발 작업을 수행하므로 해당 응용 프로그램의 유지 관리 비용이 플랫폼 자체의 유지 관리 비용과 다릅니다. 우리는 계약자를 데려오고, 기술 부서가이 모든 것을 받아 들일 것을 요구합니다. 그것이 어떻게되는지 보자. 답장을 보내 주셔서 감사합니다. – Geo

    관련 문제