다국적 개발 플랫폼에서 다른 개발 플랫폼으로 어떻게 전환 할 수 있습니까?


10

저는 대기업의 IT 부서에서 일하고 있습니다. 우리는 비즈니스를위한 다양한 인트라넷 응용 프로그램 (불만, 리베이트, 서비스 데스크 등)을 개발하고 있습니다. 이제 우리는 PHP 플랫폼에서 .NET으로 마이그레이션하기로 결정했습니다 (MS CRM Dynamics, Exchange 및 MS Office와의 통합이 여러 이유 중 하나임). 현재 PHP 플랫폼에서 사용중인 약 20 개의 서로 다른 응용 프로그램이 있으므로 모든 응용 프로그램을 새로운 플랫폼으로 옮기는 가장 좋은 방법을 찾아야합니다. 마이그레이션하는 동안 이러한 모든 응용 프로그램을 개선하고 싶기 때문에 코드 등을 변환하는 방법에 대해 자세히 설명하고 싶지 않습니다.

그래서 우리는 이러한 앱을 움직이는 두 가지 주요 방법을 생각해 냈습니다.

  1. 하나의 플랫폼 만 지원하십시오. 무슨 뜻입니까? 홈페이지를 만들고 문자 그대로 모든 앱을 .NET으로 마이그레이션하십시오 (우리가하는 동안 개선하지 않고). 새 인트라넷이 실행되면 마이그레이션 된 응용 프로그램을 다시 작성하고 개선하기 시작합니다. 따라서 PHP 플랫폼을 지원하면서 .NET에서 인트라넷을 개발할 필요가 없습니다.

  2. 한동안 두 플랫폼을 모두 지원하십시오. 즉, 홈페이지와 1 ~ 2 개의 새로운 애플리케이션 (PHP 플랫폼에는 존재하지 않음) 만 구축하는 것을 의미합니다. 사용자가 사용할 수 있지만 PHP 플랫폼을 사용하지 않는 것 (사용자가 PHP 페이지의 앱과 새로운 앱간에 쉽게 이동할 수 있도록 메뉴와 링크를 통합 할 것임) 그런 다음 PHP 애플리케이션을 개선하면서 개선을 시작합니다.

이제 더 나은 것이 무엇인지 확실하지 않습니다. 한편으로는 (옵션 1) 사용자가 동시에 두 개의 다른 플랫폼을 사용하지 않도록함으로써 모든 것이 더 쉬워 질 것입니다. 새로운 플랫폼의 개선은 보이지 않지만 모든 것이 더 멋지게 보이지만 새로운 플랫폼의 응용 프로그램 기능은 한동안 동일합니다. 또한 모든 앱을 두 번 작성하는 것처럼 필연적으로 더 많은 작업을 추가 할 것이라고 생각합니다.
반면에 옵션 2 (2) 사용자는 두 플랫폼이 다르게 보일 때 더 나쁜 경험을 할 수 있지만 새로운 응용 프로그램이 이동함에 따라 새로운 플랫폼의 이점을 깨닫게됩니다.

그런 사람을 만난 적이 있습니까? 무엇을 선택 하시겠습니까? 아니면 내가 제시 한 사람들과는 다른 더 나은 방법이 있습니까? 나는 당신이 어떻게 생각하고 어떻게 접근하는지 알고 싶습니다.


1
# 2가 # 1의 단계가 아닙니까?
태 성 신

아니요, 이것들은 2 가지입니다. 1에서는 사용자가 사용하기 전에 인트라넷 전체를 마이그레이션 한 다음 앱을 개선하는 작업을 수행했습니다. 2에서는 인트라넷의 필수 부분을 마이그레이션하고 사용자가이를 사용하도록 허용 한 다음 마이그레이션하는 동안 다른 앱을 마이그레이션하고 개선하기 시작했습니다.

@greengit : 주제를 읽고 다른 비즈니스 크리티컬 애플리케이션과의 통합이 그 이유 중 하나입니다. 내 질문은 '이주 이유'가 아니라 '이주 방법'입니다.
다니엘 Gruszczyk

나는 주제를 읽고 같은 질문을했습니다. 프로젝트 비용이 정당화 될 수 있을지 의심 스럽다. 회사의 이름을 알려 주시면 단기 판매 할 수 있습니까? ;)
mcottle

하하, 저는 회사에서 일하는 IT 학생이기 때문에 정직한 비용에 대해서는 신경 쓰지 않습니다. 나는 단지 내 자신의 지식을 요구하고 있습니다 ... Apperently 내 관리자는 CEO로부터 앞서 가기에 충분한 비용을 정당화 ...
Daniel Gruszczyk

답변:


5

두 시나리오를 모두 고려해 봅시다.

모든 것을 한 번에 마이그레이션

코드베이스를 마이그레이션하는 동안 고객은 기존 앱을 계속 사용합니다. 마이그레이션에 사소한 시간이 걸리기 때문에 버그 수정 및 기능 개발을 위해 이전 코드베이스에 유지 관리 팀이 있어야합니다. 이전 코드베이스에서 변경 한 모든 내용은 새 코드베이스에서 발생해야합니다. 마이그레이션이 완료되지 않는 한 모든 코드 줄을 두 번 작성하면 마이그레이션에 걸리는 시간이 길어집니다. 전체 마이그레이션에 소요되는 시간은 얼마입니까? 처리 시간이 지속되는 한 개발 비용이 급등 할 것입니다.

개별 마이그레이션

이 시나리오에서는 이중 노력을 더 잘 제어 할 수 있지만 여전히 많은 추가 비용이 발생합니다. 배포에는 두 배의 배포 문제와 추가 서버 리소스가 필요한 두 개의 개별 플랫폼이 포함됩니다. 모듈 식으로 매우 체계적으로 구성된 앱이 아닌 한, 필요한 플랫폼 이외의 다른 플랫폼에는 종종 코드 조각이 존재하여 추가 이식 및 유지 관리 노력이 필요하다는 것을 알 수 있습니다. 마이그레이션이 완료되지 않으면 개발 비용이 높아집니다. 동시에 기능 압력은 마이그레이션을 마치는 데 시간이 오래 걸린다는 것을 의미합니다.

결론

개인적인 경험을 통해 두 가지를 말할 수 있습니다.

  • 프로그래밍 언어를 바꾸는 것만으로는 거의 보상이되지 않습니다. 비용-편익 분석에서 PHP에서 .NET으로 전환하는 것이 수익성이 없을 것 같습니다. 그래서 내 주요 조언은 :하지 마십시오. 기존 코드베이스와 관련된 문제를 해결하십시오.
  • 개별 방식이 가장 좋은 방법이지만 응용 프로그램 모듈 수준에서이를 수행하는 데 어려움을 겪을 수 있습니다. 마이그레이션이 완전히 완료되지 않는 한 아키텍처의 양쪽에서 기능을 개발하고 유지해야한다는 것을 알게 될 것입니다. 고객이 가장 필요로하는 것이 아니라 이중 노력의 양을 제한하는 것 (따라서 비용을 낮추는 것)에 따라 기능의 우선 순위를 정하는 것이 좋습니다.

당신은 매우 모욕적 인 포인트를 만들었습니다. 우리가 플랫폼을 바꾸는 지 여부는 나 자신에게 달려 있지 않지만 9 월 말까지만 회사에서 일할 것입니다 (나는 그들과 함께 일하는 직장에 있습니다). PHP에서 .NET으로 전환하는 것은 좋은 생각이 될 수 있습니다. 구식 PHP 프레임 워크 이후 우리는 MAJOR 작업, 데이터베이스가 필요하지만 현재 회사가 사용하는 시스템은 오래되었고 훌륭한 개발 기술이없는 사람들이 만들었습니다. ..
다니엘 Gruszczyk

또한 내 질문은 : 오래된 플랫폼의 '변경 동결'이 좋은 아이디어입니까? 즉, 주어진 응용 프로그램을 .NET으로 옮길 때까지 버그 수정 이외의 PHP 플랫폼의 기존 시스템에 대한 변경 사항이 고정됩니다. 즉 ... 마이그레이션에 대한 계획의 내 매니저의 일부이다
다니엘 Gruszczyk

이것이 사소한 시스템이라면 실제로 변경 동결이 작동하지 않을 가능성이 높습니다. 누군가가 실제로 기능이 필요한 경우 관리자보다 기능이 더 높은 수준으로 에스컬레이션되고 변경해야합니다. 또한 버그 수정 자체는 상당한 양의 팀 리소스를 차지할 수 있습니다. 그리고 오래된 시스템은 많은 조정이 필요하다는 것을 명심하십시오. 새로운 디자인은 작은 한 줄 수정 사항을 모두 잊어 버릴 수 있습니다.이 수정 사항은 사용자가 다시 디자인 된 제품을 수락하기 위해 다시 한 번 다시 발생해야합니다.
Joeri Sebrechts

한 가지 더 요점 : 시스템을 재 구축하려는 경우 이번에 더 나은 코드 품질을 보장하기 위해 어떤 안전 장치가 마련되어 있습니까? 플랫폼 및 코드 품질 문제로 인해 4 번 재 작성된 응용 프로그램을 보았습니다.
Joeri Sebrechts

2

재정적 인 이유로, 내가 일한 대부분의 회사는 두 번째 접근 방식을 택했습니다. 그들이 # 1을 달성하기 위해서는 많은 돈, 시간 및 위험이 필요합니다. 사용자는 진행 상황과 상호 작용을 보는 한 대부분 # 2를 이해합니다. 이 희박하고 평균적인 경제에서, 나는 누군가가 # 1 접근법을 취할지 의심합니다.


정확히 내 생각이었다. 관리자가 이해하기 어려운 # 1을 진행하고 싶습니다.

2

최종 사용자에 관한 한 빅뱅 접근 방식은 거의 건설적이지 않습니다. 나는 그것에 대해 충고하고 정직하게 말하면 아무도 관심있는 응용 프로그램의 수를 고려할 때 아무도 그것을 옵션으로 심각하게 고려할 것이라고 믿을 수 없습니다.

옵션 2를 사용하고 사례별로 재 작업을 처리하는 경향이 있습니다. 분명히 이것은 종이에 접근하는 것보다 시간이 오래 걸릴 수 있지만 실제로는 접근 방법 하나를 취함으로써 상당한 양의 비즈니스 위험이 발생하고 있습니다. 사용자 쪽에서 하나의 작은 문제.

또한 압도적 인 대량의 웹 서비스 기반 응용 프로그램이 이미 PHP로 작성된 경우 .Net의 전문 지식은 어떻습니까?

사용자가 빅뱅 (많은 지원 요청 큐) 또는 단편적 (친숙한 증가) 변화를 경험해야한다고 생각합니다. 나는 당신이 실제로 모든 PHP 근처에서 완전히 .Net으로 이동하기 위해 얼마나 많은 작업을 수행해야 하는지를 정확히 계산하지 않았다고 생각합니다.


두 개의 별도 플랫폼을 지원하는 것보다 더 복잡하다고 생각합니다. 어느 쪽이든 정말 좋은 접근 방식은 아닙니다 ... 시간 내 주셔서 감사합니다!
다니엘 Gruszczyk

1

먼저 Joeri가 말하는 모든 것에 동의합니다.

옵션 1은 정말 끔찍합니다. 이 작업을 수행하고 Joeri가 설명한대로 지원을 계속하지 않으면 고객이 보는 한 2 년 동안 지원을 종료 할 수 있습니다. 2 년 후 그들은 지난 몇 년 동안 알면서 미워하기 위해 자란 것과 동일한 모든 이슈를 가진 동일한 사이트를 효과적으로 얻게됩니다. 또한 시장이 잠정적으로 변경되어 응용 프로그램이 더 이상 사용되지 않으며 주요 개선이 필요한 위험이 있습니다. 또한 2 년 동안 지원을 종료하면 모든 서비스 요청에 어떤 일이 일어날 것으로 생각하십니까? 그들은 가지 않을 것입니다. 적어도 일부 사용자는 재 작성중인 시스템의 격차를 해소하기 위해 (아마도) 접근에 "중요한"미션 크리티컬 시스템을 개발할 것입니다.

옵션 2는 장기간 두 기술을 모두 지원한다는 의미입니다. 이 기간은 생각보다 오래 걸리며 영구적으로 조각난 생태계, 즉 새로운 .NET 코드와 혼합하여 다시 작성하는 것이 경제적이지 않은 많은 양의 PHP 코드로 끝날 수 있습니다.

이 제안을하는 사람에 대해 세게 밉니다. .NET에서 모든 것을 다시 작성하는 것보다 PHP 응용 프로그램을 제안하는 제품과 통합하는 코드를 작성하는 것이 훨씬 저렴합니다. 그런 다음 다시 작성된 코드를 제품과 통합하십시오. 잊지 마십시오. .NET을 사용하면 통합이 마술처럼 발생하지 않습니다 .

한 가지 더, PHP 코드 줄을 가져 와서 COCOMO 2 도구에 넣어서 재 작성을 완료하는 데 필요한 시간과 개발자 수를 알 수 있습니다.


좋은 지적. 시스템을 마이그레이션했는지 여부에 따라 결정되지 않은 경우 수행 할 작업 어떤 접근법을 선택 하시겠습니까? 아니면 내 목록에 그들에게 또 다른 접근 방법이 있습니까? 관리자가 귀하에게 동의하지 않는 경우, 귀하의 접근 방식이 더 낫다는 것을 증명하려고하십니까?
다니엘 Gruszczyk

보다 계층화 된 "서비스 지향"방식으로 PHP 응용 프로그램을 작성하십시오. 엔터프라이즈 서비스 버스를 사용하여 PHP와 Microsoft land 사이의 인터페이스를 버퍼링하십시오. 중요한 것은 COCOMO 추정을 수행하는 것인데, 이는 관리자의 생생한 재 작성을 두려워해야합니다.
mcottle

1

세 번째 옵션이 있습니다 :-

PHP 코드를 Windows 서버 및 ISS로 마이그레이션하십시오 (.NET을 실행할 계획과 동일)!

그런 다음 .NET에서 새 응용 프로그램을 추가하고 이전 응용 프로그램을 천천히 .NET으로 변환하여 사용자에게 단일 시스템처럼 보이는 것을 제시 할 수 있습니다.


PHP는 실제로 IIS에서 실행
Bart
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.