AI 시대의 소프트웨어 진화 이론
AI 시대의 소프트웨어 진화 이론

비즈니스 및 소프트웨어가 더 이상 분리 될 수 있는 세계
IT는 소프트웨어 시스템의 모든 측면을 파악하고, 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발합니다. IT는 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발하는 데 필요한 소프트웨어를 개발할 수 있습니다.
이 상황은 특정 산업에 제한되지 않습니다. 교차 분야 및 회사 크기, 속도와 복잡성의 특정 수준과 운영되는 기업은 그들의 핵심에 소프트웨어 없이 더 이상 기능을 할 수 없습니다. 외부 조건이 더 빠르게 변화하고 결정의 빈도 – 증착 주기 증가, 변화하는 능력은 경쟁적인 요인이 됩니다. 고객 가치, 서비스 조건, 운영 제약, 규제 요구 사항 및 비용 구조 오버랩, 소프트웨어를 업데이트 할 수없는 사업은 궁극적으로 변화 할 수 없습니다.
이 환경에서 소프트웨어 업데이트가 비즈니스 결정 및 정책 변경을위한 병목이되는 곳을 관찰합니다. 결정은 만들 수 있지만, 실제적으로 테스트 할 수있는 이니셔티브 범위를 축소하는 데 필요한 구조적 변경이 완료 될 수 없습니다.
더 긴 소프트웨어 업데이트는 결정과 실행 사이의 거리를 더 큰. 그 지연 동안, 환경 조건은 계속 변경. 결과적으로, 더 많은 결정은 불행히 남아, 사업의 운영 범위 점차적으로 계약.
Long-Lived 소프트웨어의 일반적인 특성
이 소프트웨어는 확장 된 기간 동안 사용 된 소프트웨어를 보면 원래 상태에 남아있는 시스템을 찾을 수 없습니다. 특징은 추가, 구성 변경, 운영 조정 및 소프트웨어는 초기 디자인과 매우 다른 형태로 진화합니다. 초기 사양 또는 설계 문서에 대한 비공개이며, 구현 및 운영 현실에 완전히 일치하지 않습니다. 이것은 원래 디자인이 의미가 없다는 것을 의미하지 않습니다; 오히려, 그것은 아웃셋에 가정 된 조건이 장기간 유지되는 관측을 반영합니다.
소프트웨어가 사용으로 남아, 원래 예상되지 않은 작업과 결정은 일상적인 작업의 일부가되었다. 사용자 행동 변화, 데이터 진화의 양과 의미, 주변 시스템의 변화와 관계. 추가 처리, 재구성, 교체, 그리고 축적 축적. 처음에는 작은 예외로 나타나는 것은 결국 규범이되고 그 규범은 내부 구조에 밖으로 밀어. 시간이 지남에 따라, 한 번 직선으로 그 디자인이 더 복잡하게됩니다. 그것은 실제 요구를 흡수로 더 많은 복잡한.
이 웹 사이트는 귀하가 웹 사이트를 탐색하는 동안 귀하의 경험을 향상시키기 위해 쿠키를 사용합니다. 이 쿠키들 중에서 필요에 따라 분류 된 쿠키는 웹 사이트의 기본적인 기능을 수행하는 데 필수적이므로 브라우저에 저장됩니다. 또한이 웹 사이트의 사용 방식을 분석하고 이해하는 데 도움이되는 제 3 자 쿠키를 사용합니다. 이 쿠키는 귀하의 동의하에 만 브라우저에 저장됩니다. 이러한 쿠키를 거부 할 수도 있습니다. 이러한 쿠키 중 일부를 선택 해제하면 검색 환경에 영향을 미칠 수 있습니다.
계속 사용과 구조 변화 사이 관계
이 변경은 특정 실패 또는 예외적인 상황에서 발생하지 않습니다. 유사한 패턴은 다른 조직, 산업, 기술 영역에서 반복적으로 관찰됩니다. 그들은 공유하는 것은 그 소프트웨어가 긴 기간 동안 주변 조건이 계속 변경하는 것이 사용된다는 것입니다. 이러한 변화의 성격이 맥락에 따라 다르지만, persists가 일반적입니다.
이 웹 사이트는 귀하가 웹 사이트를 탐색하는 동안 귀하의 경험을 향상시키기 위해 쿠키를 사용합니다. 이 쿠키들 중에서 필요에 따라 분류 된 쿠키는 웹 사이트의 기본적인 기능을 수행하는 데 필수적이므로 브라우저에 저장됩니다. 또한이 웹 사이트의 사용 방식을 분석하고 이해하는 데 도움이되는 제 3 자 쿠키를 사용합니다. 이 쿠키는 귀하의 동의하에 만 브라우저에 저장됩니다. 이러한 쿠키를 거부 할 수도 있습니다. 이러한 쿠키 중 일부를 선택 해제하면 검색 환경에 영향을 미칠 수 있습니다.
개발의 시간 구조 그 Assumes 완료
많은 개발 노력은 기존의 설계가 시작되기 전에 가능한 한 많은 모델이 완성되는 모델이 있습니다. 이 접근법은 건축 합의에 효과적이며, 노동 부서를 가능하게하며, 규모에서 프로젝트를 관리합니다. 구현 비용이 높고 실험이 비싸고, 설계 초기가 실질적인 선택이며, 디자인이 복잡성을 높고 있습니다.
그러나이 접근법은 오랜 시간 구조 제약을 가지고 있습니다. 순간부터 디자인이 완료되어, 조건은 변경하기 시작합니다. 디자인 완료와 구현 사이의 간격이 길어지며, 가정과 현실 사이의 더 큰 분기. 조건이 빠르게 변화할 때,이 분기는 시스템이 완료 될 때 상당한 될 수 있습니다. 어떤 변화는 종종 미성년자 사양 세부 사항이 아니지만 기본 우선 순위, 운영 제약, 또는 데이터의 의미가 아닙니다.
이 디자인은 부정확한 것이 아닙니다. 많은 경우에, 그것은 시간에 제일 가능한 결정이었습니다. 가정이 시간 이상으로 이동할 것이라는 사실이 일어나기 때 문제 발생. 완료가 안으로 건축되지 않는 경우에, 체계는 완료된 순간을 새롭게 하기 어렵습니다. 완료가 끝점으로 대우될 때, 그 후에 변화는 예외로 취급되고, afterthoughts로 축적됩니다. 시간, 갱신은 국부적으로 단단한 고침으로, 사업의 속도, 향상 및 사업의 감소로, 업데이 트됩니다.
축적된 경험의 역할
이 개발 접근은 명확한 이유에 대해 출현했습니다. 높은 구현 비용과 무거운 실험 부담은 초기 계획 필수. 조건을 평가하는 능력, 의존성을 구성하고, 완전한 시스템의 전방은 이러한 환경에서 중요한 역할을 수행. 합의 빌딩, 위험 전하, 노동의 구조 부서는 실용적인 필요성이었다.
이 웹 사이트는 귀하가 웹 사이트를 탐색하는 동안 귀하의 경험을 향상시키기 위해 쿠키를 사용합니다. 이 쿠키들 중에서 필요에 따라 분류 된 쿠키는 웹 사이트의 기본적인 기능을 수행하는 데 필수적이므로 브라우저에 저장됩니다. 또한이 웹 사이트의 사용 방식을 분석하고 이해하는 데 도움이되는 제 3 자 쿠키를 사용합니다. 이 쿠키는 귀하의 동의하에 만 브라우저에 저장됩니다. 이러한 쿠키를 거부 할 수도 있습니다. 이러한 쿠키 중 일부를 선택 해제하면 검색 환경에 영향을 미칠 수 있습니다.
이 재사용이 가능함에 따라, 경험의 값은 종종 감소보다 증가합니다. 빠른 변화 환경에서, 잘못된 판단은 신속하게 증폭됩니다. 낮은 실험 비용은 잘못된 것을 포함하여 더 많은 시도를 의미합니다. 결과적으로 우선 순위 및 방향 판단의 품질은 결과적으로 더 큰 영향을 미칩니다.
개발 조건 변경
최근 몇 년 동안, 명확한 변화는 개발 조건에서 출현했습니다. 구현 및 실험의 비용은 감소했으며 테스트 가능한 형태로 저하를 끄는 데 필요한 시간은 단축되었습니다. 이 변화는 AI 기반 소프트웨어의 광범위한 채택에 의해 구동되며 코드 생성 및 수정을 지원합니다. 이 도구는 검증 구현의 초기 비용을 줄이고, 디카운트 및 재 구조 설계를 시도하는 데 실용적 인 것으로 만듭니다.
AI가 채택되었는지 여부는 중요하지 않지만 그 조건이 변경되었습니다. 조건 변경 시, 그 함수는 효과적으로 변경되는 구조입니다.
AI는 AI를 기반으로 한 새로운 기술을 개발하는 데 중점을 두는 것이 아닙니다. AI는 AI 기반 개발과 같은 인간의 판단의 융합입니다. AI는 AI가 개발한 코드 생성 및 수정과 더불어 우선적으로 이해하는 것이 아니라, 인간은 그 결정을 구현하는 비용을 결정합니다. 이 협력을 통해 실험 및 학습은 이전에 실제적인 능력이 실현되기 때문입니다.
결과적으로, 지속적으로 업데이트 소프트웨어를 비즈니스 변경으로 단계에 업데이트하는 개발은 첫 번째 시간 동안 현실적인 옵션이되었습니다.
변경 조건 하에서 Remain Viable 구조
이 조건에서, 포스트 - 호크 조정을 허용하는 구조는 모든 앞면을 해결하려고하는 것보다 더 관리 할 수 있습니다. 규모가 성장하고 요구 사항이 진화함에 따라, 구조가 우선적으로된다고 수정할 수 있습니다. 이것은 버려진 디자인을 의미하지 않습니다. 그것은 고정 기반을 축소하고, 명확하게 유연하고 명확한 우선 순위와 구조가 증가하는 능력을 유지하고, 명확하게 정의 할 수 있도록하는 것을 정의하는 것을 의미한다. 재단 디자인은 더 중요하지 않습니다.
시스템 규모로 인프라는 비활성화됩니다. 한 번의 sufficed 구성은 중복, 분할, 배포, 관측성 및 복구 메커니즘이 필요합니다. Ongoing 작업은 재구성 및 기능 확장에 대한 요구를 가져다줍니다. 실제 환경에서 업그레이드, 다운 그레이드, 롤백, 스테이지 마이그레이션, 병렬 작업 및 부분 교체는 예외적인 사건이 아닙니다. 구조는 모든 변경으로 위험과 비용을 증가시키지 않고 모든 변경, 최종 업데이트가 발생할 수 있습니다.
이 이유를 들어, 소프트웨어 구조는 역성 및 교체를 지원해야합니다. 경계가 불완전하고 시스템이 단일 방향으로 성장할 때, 널리 전파를 변경하고 검증은 대변이되고 롤백이 어렵습니다. 명확하게 정의 된 경계 및 모듈 교체 장치는 변화를 통해 계속 학습 할 수 있습니다.
이 결정은 개인 불평으로 남아있을 수 없습니다. 고정되는 것을 결정하고, 어떤 체류가 유연하고, 변경은 공유 된 가정으로 허용되어야합니다. 이것은 도구 선택 또는 코딩 표준보다 더 많은 것을 요구합니다. 일반적인 전술 이해가 필요합니다. 그런 공유 판단이 부당하고 업데이트는 사람 의존, 속도 감소 및 학습 정지가됩니다.
변화로 재사용되기 위해 계속되는 경험
각 시간 조건 이동, 새로운 제약은 소프트웨어와 사업에 추가됩니다. 과거 디자인과 구현이 더 이상 직접 적용되지 않을 수 있지만, 이것은 그 뒤에 경험을 잘못하지 않습니다.
이 판은 시스템의 고장, 병목이 발생하고, 조건이 다시 변경 될 때 사용 될 때 얼마나 많은 변화가 발생했는지에 대해 전례를 형성했습니다. 형태 변경 사항조차도 이러한 판결은 다음을 시도하고 개입 할 때 다시 결과를 결정합니다.
현대 개발 환경에서 인간의 상황 판단과 AI-assisted 구현의 조합은 매우 짧은 간격으로 적용 할 수있는 이러한 경험을 허용합니다. 축적 된 지식은 판결 품질과 흐름에 직접 임베디드 남아 후속 구현 및 검증.
결과적으로 시스템은 모든 변화에 스크래치에서 재건되지 않고, 과거는 단단히 보존되어 있습니다. 대신, 경험은 조건 변화로 재사용되고, 소프트웨어는 이에 따라 진화합니다.
변화는 계속될 것입니다. 새로운 기술 및 constraints는 나타날 것입니다. 그러나 축적된 경험은 잃을 것입니다. 경험이 재사용한 증가일 수 있는 속도와 빈도로, 그것의 가치는 outcomes에서 직접 그리고 일관되게 반영됩니다.


