나의 소프트웨어 북극성

6 days ago 7
  • 최종 사용자 효용이 소프트웨어 제작의 최우선 기준이며, 사랑할 수 있는 소프트웨어가 되도록 노력해야 한다는 지향임
  • 정확성은 오작동이 사용자가 얻을 수 있는 효용을 떨어뜨리기 때문에 두 번째 우선순위로 놓이는 조건임
  • 유지보수성과 효율성은 더 많은 효용을 얻는 과정에서 인간과 컴퓨팅 자원을 낭비하지 않기 위한 기준임
  • 버그가 없는 블록체인도 rugpull이거나 사용자에게 적대적인 소프트웨어라면 의미가 없고, 메모리 안전(memory-safe) 언어도 정확성을 위한 설계(design for correctness)와 모든 버그를 고치는 과정이 없으면 충분하지 않음
  • 개발자 경험은 더 많은 사랑할 수 있는 소프트웨어를 전달하는 데 도움이 되는 만큼만 중요하며, 최종 목표는 최종 사용자 효용의 극대화임

소프트웨어 우선순위

  • 1순위는 최종 사용자에게 유용한 소프트웨어이며, 사랑할 수 있는 소프트웨어가 되려는 노력까지 포함하는 기준임
  • 2순위는 정확성으로, 오작동은 사용자가 소프트웨어에서 얻는 효용을 줄이는 요소임
  • 3순위는 유지보수성과 효율성으로, 소프트웨어에서 더 많은 효용을 끌어내려 할 때 인간과 컴퓨팅 자원 낭비를 피하기 위한 기준임

기준을 흐리는 요소

  • 버그 없는 블록체인도 rugpull이면 의미가 없으며, 사용자에게 적대적인 소프트웨어도 같은 범주임
  • 메모리 안전 언어도 정확성을 위한 설계와 결국 모든 버그를 고치는 프로세스가 없으면 충분하지 않음
  • 아름다운 추상화의 장막 같은 소프트웨어라도 성능이 형편없고 유지보수하거나 새 기능을 추가할 수 없다면 의미가 없음
  • 지치거나 잘못된 길로 가거나 일부러 우회하는 때가 있어도, 더 낮은 목표를 진짜 목적지로 착각하지 않는 기준이 필요함
  • 개발자 경험은 자신과 타인이 즐길 수 있는 더 많은 사랑할 수 있는 소프트웨어를 전달하는 데 도움이 되는 정도만 중요함
Read Entire Article