10,000 개의 모바일앱을 개발한 후 깨달은 10가지 교훈

buildfire는 기업들을 상대로 application development solution을 제공하는 미국 회사이며 지금까지 여러가지 산업에서 사용되고 있는 10,000개 이상의 앱을 개발하면서 얻은 인사이트를 다음과 같이 정리하였습니다.

Key Takeaways

  1. 모바일앱을 개발하면서 계획 단계가 차지하는 비중에 대한 중요성
  2. MVP에 대한 개념 및 사용목적 이해
  3. Scalability에 대한 사전 인지의 중요성

Lesson 1: An idea is not a plan. You need a plan.

앱 개발 단계에서 가장 중요한 것은 계획을 세우고 개발단계에서 변경없이 계획에 따라 앱 개발을 진행하는 것임.

개발을 본격적으로 진행하기 전에 budget, functional outline, development milestone, tangible component 등의 모든 요소들을 고려해야 하며, 개발이 진행되면 고려된 사항을 엄격하게 따라야 함(prototype과 wireframe을 바꾸는 것은 code를 바꾸는 것보다 less expensive 함)

Lesson 2: Apps need to do one thing, and do it well

앱을 사용할 사용자와 그들의 사용 목적을 면멸히 조사한 후 이를 충실히 반영하는 심플한 앱을 만들어야 함(focus, narrow the scope) 

개발자 입장에서 제 3자에게 앱의 기능을 짧고 간결하게 표현할 수 없으면 앱이 너무 복잡한 것임. 개발컨셉을 다시 생각해야 함

Lesson 3: Speed is everyting

앱 개발은 항상 생각보다 오래 걸릴 것이며 개발 지연은 비용을 증가시기 때문에 개발 시간을 단축시킬 수 있는 방법이 있으면 이를 즉각 실행해야 함. 

개발하고자 하는 특정 모바일앱 기능의 80%는 해당 앱 개발에 사용되는 전체 기술에서 20% 정도 만을 활용하는데 이를 MVP(Minimum Viable Product)라 하며 계획 단계에서 MVP를 미리 정하는 것이 필수적임. 제거할 수 없는 최소 필수 요소를 포함한 MVP를 명확히 지정하면 개발과정에서 앱 출시를 지연시키는 요소들을 제거하는 것이 쉬워짐.

10,000개 이상의 앱을 개발하면서 buildfire는 지금까지 제작한 거의 모든 앱들이 functionality의 80%를 공유하는 것을 확인하였음. 이를 통해 고객에 추가비용 청구 없이 앱을 자체적으로 쉽고 빠르게 만들 수 있는 플랫폼을 개발함(자사 홍보)

Lesson 4: Keep it simple stupid

앱 개발을 하면 overcomplicating, overthinking이 흔하게 발생하며 user experience 측면에서 simplicity를 달성할 수 있도록 노력해야 함

최고의 모바일 앱들은 사용자가 목적을 달성하기 위해 최대한 적은 횟수로 탭을 하도록 개발된 특징이 있음. 이를 위해 사용자가 추가적인 설명없이 앱을 사용할 수 있도록 직관적으로 개발해야 함

개발자는 더 많은 기능을 추가하는 것이 좋을 것이라 생각하지만 이럴 경우 사용하기 복잡해지고 이는 user experience를 악화시키며 retention 또한 낮춤

Lesson 5: Know exactly who you are building your apps for

앱개발은 적은 수의 타겟으로 시작해서 점차적으로 키우는 방법을 고려해야 함.

많은 개발자들이 더 많은 유저를 타겟으로 하기 위해 처음부터 많은 기능을 앱에 추가하려고 하지만 이는 경쟁과 규모의 경제 등의 이유로 앱의 성공을 어렵게 함.

1,000명 정도의 초기 fan base를 확보하고 이들을 만족시키면 여러 분석을 통해 성공의 이유를 확인함. 이후 niche의 engagement를 수익화 시킬 수 있는 방법을 고민하고 이를 반영하여 next version을 개발하는 것이 바람직함. 

Lesson 6: Eliminate the middleman

좋은 앱들은 user-friendly 하고 intuitive backend dashboard를 포함함. non-technical people도 작업할 수 있게 개발되는 것이 좋음.

앱 출시 후에 update를 하거나 사용자들에게 message나 notification 등을 보내기 위해 in-house나 외부 IT 인력의 도움을 필요로 하면 여러가지 이유로 인해서 진행 과정 중에 작업이 지연이 될 가능성이 높이고 앱 자체 효율성도 떨어뜨릴 수 있음.

Lesson 7: Timing is everything

모바일 앱 세계는 매우 빨리 변하고 모바일 OS update, GPS / camera firmware update 등의  외부 요소에 큰 영향을 받기 때문에 앱 개발 단계에서 1) 뒷 단계인 출시 일정을 미리 정하고 2) 이를 기준으로 MVP를 개발하는 것도 고려해야 함. 

Lesson 8: Manage expectations

개발자 스스로 혹은 외부의 도움을 받으며 deadline, budget, deliverable 등과 같은 project scope을 정해서 앱 출시로 달성할 수 있는 기대치를 사전에 관리할 수 있으면 앱을 성공시킬 수 있는 확률을 높임.

Lesson 9: Don't forget about maintenance and infrastructure

앱 개발 단계에서 scalability를 염두해두지 않으면 나중에 user retention을 저하시키는 data bottleneck 등의 문제를 접할 수 있으며 이를 해결하기 위해 큰 대가를 지불해야 함.

따라서 앱을 개발할 때 추후에 추가할 수 있는 feature를 예상하고 어떻게 user experience를 개선할 지 등을 미리 고려해야 함.

Scalability를 고려하지 않은 개발자들은 결과적으로 앱을 유지, 운영, 개선시키기 위해 원래 지불한 금액의 30% 정도를 추가적으로 지불함.

Lesson 10 : Don't recreate the wheel

개발하고자 하는 앱의 기능은 이미 시중에 나와 있는 앱에 존재할 가능성이 높기 때문에 가능하면 그 기능을 clone 하고 user interface를 바꾸는 것을 고려할 수 있음.