{"id":18266,"date":"2024-10-10T08:08:48","date_gmt":"2024-10-10T08:08:48","guid":{"rendered":"http:\/\/3.76.10.198\/?p=18266"},"modified":"2026-04-06T21:19:15","modified_gmt":"2026-04-06T21:19:15","slug":"a-case-study-for-in-house-solution-vs-third-party-solution-dilemma","status":"publish","type":"post","link":"https:\/\/v2.smartup.network\/tr\/2024\/10\/10\/a-case-study-for-in-house-solution-vs-third-party-solution-dilemma\/","title":{"rendered":"In-House \u00c7\u00f6z\u00fcm m\u00fc, \u00dc\u00e7\u00fcnc\u00fc Parti \u00c7\u00f6z\u00fcm m\u00fc? \u0130kilemine Dair Bir Vaka \u00c7al\u0131\u015fmas\u0131"},"content":{"rendered":"<h2 class=\"wp-block-heading\">In-House \u00c7\u00f6z\u00fcm m\u00fc, \u00dc\u00e7\u00fcnc\u00fc Parti \u00c7\u00f6z\u00fcm m\u00fc? \u0130kilemine Dair Bir Vaka \u00c7al\u0131\u015fmas\u0131<\/h2>\r\n\r\n\r\n\r\n<p>Her m\u00fc\u015fterinin yaz\u0131l\u0131m geli\u015ftirme iterasyonlar\u0131 s\u0131ras\u0131nda, bir noktada ekip olarak b\u00fcy\u00fck bir kararla kar\u015f\u0131 kar\u015f\u0131ya kal\u0131r\u0131z: Kendi \u00e7\u00f6z\u00fcm\u00fcm\u00fcz\u00fc m\u00fc geli\u015ftirmeliyiz, yoksa \u00fc\u00e7\u00fcnc\u00fc parti bir yaz\u0131l\u0131m\/hizmet mi kullanmal\u0131y\u0131z? Her durum i\u00e7in ge\u00e7erli tek bir \u201csihirli form\u00fcl\u201d yoktur. T\u00fcm \u00fcr\u00fcnlerin kendine \u00f6zg\u00fc alanlar\u0131 (domain), k\u0131s\u0131tlar\u0131 ve teknoloji y\u0131\u011f\u0131nlar\u0131 (tech stack) vard\u0131r. Buna ek olarak startup\u2019lar\u0131n\/giri\u015fimcilerin zaman, b\u00fct\u00e7e ve gizlilik (privacy) gibi farkl\u0131 \u00f6ncelikleri olabilir. Teknik bir karar gibi g\u00f6r\u00fcnse de, bu karar\u0131 etkileyen girdilerin b\u00fcy\u00fck k\u0131sm\u0131 asl\u0131nda teknik olmayan fakt\u00f6rlerdir.<\/p>\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" class=\"wp-image-18267\" style=\"width: 542px; height: auto;\" src=\"http:\/\/3.76.10.198\/wp-content\/uploads\/2025\/03\/in-house-vs-third-party-1024x576.png\" alt=\"\" srcset=\"https:\/\/v2.smartup.network\/wp-content\/uploads\/2025\/03\/in-house-vs-third-party-1024x576.png 1024w, https:\/\/v2.smartup.network\/wp-content\/uploads\/2025\/03\/in-house-vs-third-party-300x169.png 300w, https:\/\/v2.smartup.network\/wp-content\/uploads\/2025\/03\/in-house-vs-third-party-768x432.png 768w, https:\/\/v2.smartup.network\/wp-content\/uploads\/2025\/03\/in-house-vs-third-party.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n<p>\u00d6ncelikle iki se\u00e7ene\u011fin tan\u0131m\u0131n\u0131 yapal\u0131m.\u00a0<\/p>\r\n\r\n\r\n\r\n<p>In-house \u00e7\u00f6z\u00fcm, \u00e7\u00f6z\u00fcm\u00fcn temel fonksiyonelli\u011finin ekip taraf\u0131ndan geli\u015ftirilmesi, y\u00f6netilmesi ve bak\u0131m\u0131n\u0131n yap\u0131lmas\u0131d\u0131r. A\u00e7\u0131k kaynak bir yaz\u0131l\u0131m\/paket\/k\u00fct\u00fcphane\/framework\/ara\u00e7\/sunucu kullansan\u0131z bile bu h\u00e2l\u00e2 bir in-house \u00e7\u00f6z\u00fcmd\u00fcr.\u00a0\u00a0<\/p>\r\n\r\n\r\n\r\n<p>Third-party \u00e7\u00f6z\u00fcm ise, \u00e7\u00f6z\u00fcm\u00fcn temel fonksiyonelli\u011finin bir sa\u011flay\u0131c\u0131dan servis olarak al\u0131nmas\u0131d\u0131r. Bu \u00fccretsiz ya da \u00fccretli (premium) bir servis olabilir. Ekibiniz, sa\u011flay\u0131c\u0131n\u0131n sundu\u011fu API ya da di\u011fer entegrasyon y\u00f6ntemleri \u00fczerinden bu servisi sisteminize entegre eder.<\/p>\r\n\r\n\r\n\r\n<p>Do\u011fru karar\u0131 verebilmek i\u00e7in se\u00e7eneklerin a\u015fa\u011f\u0131daki de\u011fi\u015fkenler \u00fczerinden de\u011ferlendirilmesi gerekir:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Zaman\/Efor: Se\u00e7ene\u011fin hayata ge\u00e7irilmesi i\u00e7in harcanacak toplam zaman ve efor.<\/li>\r\n\r\n\r\n\r\n<li>Yetkinlik Seti (Skillset): Se\u00e7ene\u011fi anlamak ve uygulamak i\u00e7in gerekli beceri ve yetkinlikler.\u00a0<\/li>\r\n\r\n\r\n\r\n<li>B\u00fct\u00e7e: Harcanan efor ve kullan\u0131lan servis maliyetleri \u00fczerinden hesaplanabilen ba\u015flang\u0131\u00e7 maliyetleri.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Bu yaz\u0131da se\u00e7enekleri detayl\u0131 \u015fekilde kar\u015f\u0131la\u015ft\u0131rmayaca\u011f\u0131z; \u00e7\u00fcnk\u00fc bu tart\u0131\u015fma tamamen proje takvimine ve b\u00fct\u00e7eye, geli\u015ftirme ekibinin yetkinliklerine, \u00fc\u00e7\u00fcnc\u00fc parti sa\u011flay\u0131c\u0131n\u0131n sundu\u011fu destek ve \u00f6zellik setine ba\u011fl\u0131d\u0131r. Genel bir kural olarak \u015funu s\u00f6yleyebiliriz: E\u011fer MVP\u2019nizi olu\u015fturma s\u00fcrecindeki eforu azaltmak istiyorsan\u0131z, \u00fc\u00e7\u00fcnc\u00fc parti bir servis kullanmak genellikle daha h\u0131zl\u0131 bir yoldur.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><br \/>Vaka Analizi<\/h2>\r\n\r\n\r\n\r\n<p class=\"translation-block\"><a href=\"https:\/\/smartup.network\/products\/widio\" target=\"_self\">Widio<\/a>, teknik partner olarak i\u015f birli\u011fi yapt\u0131\u011f\u0131m\u0131z startup \u00fcr\u00fcnlerinden biridir. <a href=\"https:\/\/smartup.network\/products\/widio\" target=\"_self\">Widio<\/a>, m\u00fclk\u00fcn\u00fcz i\u00e7in video \u00e7ekmenize ve gayrimenkul ile ara\u00e7 ilanlar\u0131n\u0131 t\u00fcm detaylar\u0131yla anlatman\u0131za olanak tan\u0131r.<\/p>\r\n\r\n\r\n\r\n<p>MVP \u00f6ncesindeki erken iterasyonlarda, mobil ve web uygulamalara bir arama (search) fonksiyonu eklememiz gerekiyordu. Bu arama fonksiyonu ayn\u0131 zamanda mek\u00e2nsal aramay\u0131 (spatial search) desteklemeli ve en yak\u0131n ilanlar\u0131 g\u00f6sterebilmeliydi. \u00d6zellik kapsam\u0131 \u015fu gereksinimleri i\u00e7eriyordu:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Yay\u0131nlanan her ilan\u0131n m\u00fcmk\u00fcn olan en k\u0131sa s\u00fcrede arama indeksine eklenmesi<\/li>\r\n\r\n\r\n\r\n<li>Kullan\u0131c\u0131 trafi\u011finin b\u00fcy\u00fck k\u0131sm\u0131n\u0131n arama fonksiyonu \u00fczerinden ger\u00e7ekle\u015fecek olmas\u0131 nedeniyle \u00e7\u00f6z\u00fcm\u00fcn \u00f6l\u00e7eklenebilir (scalable) olmas\u0131<\/li>\r\n\r\n\r\n\r\n<li>\u0130lan verilerindeki her alan\u0131n sorgulanabilir (queryable) olmas\u0131<\/li>\r\n\r\n\r\n\r\n<li>\u0130lan konum verisinin, kullan\u0131c\u0131ya olan mesafeye g\u00f6re s\u0131ralama yapmak i\u00e7in kullan\u0131lmas\u0131\u00a0<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Geli\u015ftirme ekibi i\u00e7inde ve m\u00fc\u015fteriyle yapt\u0131\u011f\u0131m\u0131z toplant\u0131 ve de\u011ferlendirmeler sonucunda, \u00fc\u00e7\u00fcnc\u00fc parti bir servis olan Algolia kullanma karar\u0131 ald\u0131k. Her iki \u00e7\u00f6z\u00fcm i\u00e7in efor tahminlerini, maliyetleri ve zaman \u00e7izelgesini kar\u015f\u0131la\u015ft\u0131rd\u0131k. Algolia\u2019n\u0131n sundu\u011fu \u00f6zellikler ihtiya\u00e7 kapsam\u0131m\u0131z\u0131 kar\u015f\u0131l\u0131yordu ve hem frontend hem backend taraf\u0131nda kulland\u0131\u011f\u0131m\u0131z teknolojiler i\u00e7in stabil client k\u00fct\u00fcphanelerine sahipti. Dok\u00fcmantasyonu da entegrasyonun kurulumu ve uygulanmas\u0131 a\u00e7\u0131s\u0131ndan olduk\u00e7a destekleyiciydi.\u00a0<a href=\"https:\/\/www.algolia.com\/\">Algolia<\/a>. We compared the effort estimation, costs and the timeline on both solutions. Features of\u00a0<a href=\"https:\/\/www.algolia.com\/\">Algolia<\/a>\u00a0also met our scope and It has stable client libraries for the technologies we used on frontend and backend. The document base was also very helpful to set up and implement the integration.<\/p>\r\n\r\n\r\n\r\n<p class=\"translation-block\">\u00c7\u00f6z\u00fcm\u00fc ba\u015far\u0131yla hayata ge\u00e7irdik ve m\u00fc\u015fteri, arama analitiklerini <a href=\"https:\/\/www.algolia.com\/\" target=\"_self\">Algolia<\/a> paneli \u00fczerinden takip etmeye devam ediyor. Aramayla ilgili yeni bir \u00f6zellik ya da de\u011fi\u015fiklik talep edildi\u011finde ise, bu de\u011fi\u015fikli\u011fin al\u0131nan karar\u0131 etkileyip etkilemeyece\u011fini de\u011ferlendirerek \u00e7\u00f6z\u00fcm\u00fc yeniden g\u00f6zden ge\u00e7iriyoruz.<\/p>\r\n\r\n\r\n\r\n<p>Kendi \u00e7\u00f6z\u00fcm\u00fcn\u00fcz\u00fc geli\u015ftirmek mi yoksa \u00fc\u00e7\u00fcnc\u00fc parti bir \u00e7\u00f6z\u00fcm kullanmak m\u0131 sorusu her zaman \u00e7ok say\u0131da fakt\u00f6r\u00fc i\u00e7erir. Projeye \u00f6zel endi\u015feleriniz de olabilir. M\u00fc\u015fteriyi s\u00fcrecin i\u00e7ine dahil etti\u011finizde, do\u011fru karar\u0131 vermek her zaman m\u00fcmk\u00fcn olur.<\/p>","protected":false},"excerpt":{"rendered":"<p>A Case Study For In-House Solution Vs Third-Party Solution Dilemma During the software development iterations of every customer, at some point we are likely to find our team in a position to get a big decision: Should we create their own solution, or use a third-party software\/service. There is no one single silver bullet solution&hellip;<\/p>","protected":false},"author":7,"featured_media":18267,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[144],"tags":[],"class_list":["post-18266","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-144","description-off"],"_links":{"self":[{"href":"https:\/\/v2.smartup.network\/tr\/wp-json\/wp\/v2\/posts\/18266","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/v2.smartup.network\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/v2.smartup.network\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/v2.smartup.network\/tr\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/v2.smartup.network\/tr\/wp-json\/wp\/v2\/comments?post=18266"}],"version-history":[{"count":0,"href":"https:\/\/v2.smartup.network\/tr\/wp-json\/wp\/v2\/posts\/18266\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/v2.smartup.network\/tr\/wp-json\/wp\/v2\/media\/18267"}],"wp:attachment":[{"href":"https:\/\/v2.smartup.network\/tr\/wp-json\/wp\/v2\/media?parent=18266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/v2.smartup.network\/tr\/wp-json\/wp\/v2\/categories?post=18266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/v2.smartup.network\/tr\/wp-json\/wp\/v2\/tags?post=18266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}