← Studio Log
C. 신뢰 구축 (Niềm tin)개발 파트너 선정외주 검증운영 경험유지보수 설계발주 기준

What Changes When a Development Partner Also Runs Its Own Products

What Changes When a Development Partner Also Runs Its Own Products
by Yeowubie

Building Something for Yourself Versus Building It for Someone Else

Looking only at a portfolio leaves out one thing: whether the team has ever operated what it built. A project that ends at acceptance testing and a service the team has looked after for years produce very different experience. What changes is not coding skill but the team's sense of what counts as risk. This rarely shows up in a quote or a proposal, so the buyer has to ask about it directly.

The success criteria of a delivery project are clear. Hand over the agreed scope on schedule, pass acceptance, and the job is done. Nothing is wrong with that standard. But because the relationship closes at sign-off, costs appearing afterward never return to the team as learning. They do not live through the month the server bill doubles, do not see which screen makes a user stop and pick up the phone, and do not find out what collapses when a dependency drops support half a year later.

Running your own product works the other way. Release is the starting line. The day after the first version goes up you are waiting on store review, the next week you are reproducing a fault that appears on a handful of devices, and the month after that you notice you have been paying to keep a feature nobody uses. None of this is enjoyable, but it is honest. Decisions deferred during design come back as invoices, and the team pays them with its own money and its own weekends.

Yeowubie Interaction develops for client companies and operates its own products at the same time. onSpots is an attendance management service with multilingual support and no restriction to a single country. Langtori matches and maps people who want to learn Korean with people who teach it, across Korean, Vietnamese and English locales. Teaching itself is carried out by the individual tutors and institutions on the platform; our part is the connection. Job Connect VN is a recruitment service built for the Vietnamese market. There is also Winnie, a platform supporting small business owners in running their shops.

We are not putting user counts or retention figures for any of these products in this article. Instrumentation is not fully in place, so those numbers are not in our hands, and inventing a plausible-sounding figure would collapse the whole premise of a piece about verification criteria. What remains is what can be checked: we built them, we published them, and we still look after them ourselves.

One clarification, to avoid a misreading. This is not a claim that teams with their own products are better than teams without them. Plenty of firms that only take on contract work design and hand over exceptionally well. Operating experience is not a ranking, it is closer to a different muscle, and certain projects need that muscle. For a campaign page running three weeks it hardly matters. For a system your company's daily work will run on, whether the builder understands the weight of operations decides three years of cost.

Costs You Only See by Operating: Release, Incidents, Support

A quote lists screen counts and feature counts. The costs that recur every month once a service is live come from somewhere else: releasing and getting through store review, handling incidents, and answering users. None of the three converts neatly into development hours, which is why they disappear at the proposal stage. A team that has operated something raises them first.

Start with release. If the project includes a mobile app, review time belongs in the schedule. Rejections often concern not the feature set but the description text, the screenshots, or the way a permission is explained, and for a multilingual app that material has to be prepared again per language. All of it happens after development finishes. One practical thing we gained from operating published products is the habit of putting review round-trips into the timeline from the beginning.

Release also does not happen once. A web fix ships the same day, but an app sits on the user's device, so the server has to serve old and new versions together for a while. When to force an update and how long to keep answering the previous version are business decisions, not engineering preferences. A team that has been through it raises this before the contract is signed.

Incident handling is the area where a few questions expose how prepared a partner is. If the service stops at three in the morning, who finds out first? Where does the alert go? Is there a point to roll back to? Are there logs to reconstruct what happened? A proposal that cannot answer these concretely usually means nobody imagined the period after launch. One that lists monitoring tools, alert routing, and a recovery procedure is a reasonable sign the team has been woken up at least once.

Support is the most underestimated cost of the three. A large share of incoming questions are not defects. People ask because they cannot tell what to press, because a piece of guidance is ambiguous, because they do not know when a result will be reflected. Operate the thing yourself and those questions read like a report card on your own design work. If the same question arrives ten times, that screen is wrong. This instinct grows only in teams that take the support channel directly, not in an arrangement where the client absorbs every question and the development firm sees tickets.

For a service covering both Vietnam and Korea, support carries language and time difference on top. The same feature gets asked about differently by a Korean administrator and a Vietnamese end user, and answers have to exist in both languages. That is one reason we keep working across both locations. An extra translation hop adds delay, and delayed support usually converts into dissatisfaction.

There is a straightforward move available to the buyer: put operations explicitly into the request for proposal. Ask for the release and review schedule, the contact path and response window during an incident, who receives the first line of user questions, and how escalation works. Teams that answer that section seriously and teams that only price development hours separate immediately.

Why a Conversation About Cutting Scope Becomes Possible

One signal that distinguishes a good partner shows up in the first meeting: whether they propose adding features or removing them. A team that has operated a product knows from experience that each feature is not a one-time build cost but a fixed cost following the service for its whole life. So they raise cutting before you do.

Adding a feature does more than extend development time. The cases to test grow, the strings to translate grow, the places a question can originate grow, and so does the surface you must re-check every time you change something else. In a multilingual service, one line of copy becomes three. None of that appears on the first invoice. It is billed in small amounts across the following two years.

Saying that something should be dropped is not easy at the negotiating table. Answering that everything is possible is far more comfortable, and taking the requirement list as given raises both the win probability and the contract value. The question is who carries the resulting thing afterward. A team that has operated its own product has carried that weight, so when it reads a requirements list it counts the total first.

With Langtori we made this decision repeatedly. Korean language learning has a very wide surface: curriculum, progress tracking, content production, payment and settlement, you can extend in any direction. We narrowed the scope to matching and mapping between learners and teachers, with the teaching handled by the individual tutors and institutions on the platform. The reason for the boundary is not modesty but an operational calculation. The wider the reach, the larger the surface to maintain, and the less well any part of it gets looked after.

Verifying this attitude is not difficult. Hand over your requirements list and ask whether anything should be dropped from the first phase, and if so why. Answers split three ways: the team that says everything is necessary, the team that cuts arbitrary items without reasoning, and the team that explains which feature creates which downstream cost and proposes reordering. The third answer means that team has at minimum imagined the period after launch.

One more thing to check is the plan for putting the cut items back. Cutting scope cannot simply mean not doing the work. A proposal only holds together if it states what ships in phase one, what will be judged from real usage, and what gets added in phase two. Keeping the first release small is not about saving money, it is about separating features built on assumption from features users actually need.

This conversation also requires preparation on the buyer's side. Give the problem to be solved rather than a feature list, and the partner has room to propose an alternative. Specify twenty screens and ask for a quote, and what comes back is a price for twenty screens. Explain where the bottleneck sits and who processes what in which order, and a plan that does the same job in twelve screens becomes possible.

Designing With Maintenance Assumed From the Start

Designing for maintenance does not mean the code is elegant. It is the question of whether someone else can take this system over and change it later, and whether that question was present during design. It covers environment separation, externalized configuration, change history, logging, documentation, and account ownership. These are items a buyer can verify directly in the contract.

Environments come first. Ask whether development and production are separated, whether testing is done against production data, and whether releases are automated or performed by hand. An early-stage service does not need an elaborate setup, but at minimum the two environments should be distinct and the release procedure should be reversible.

Whether configuration is embedded in the source is the next check. If connection details, third-party keys, and feature toggles are hardcoded, every change of value requires a developer and a deployment. The same applies to copy: sentences written into the code mean adding one language means touching everything. Operating onSpots as a multilingual service, this is the principle we held from the start. Copy belongs outside the code, and a new language must not turn into a development project.

Services spanning regions need a few more checks. Whether time is stored in a standard zone and converted for display, whether date formats and name ordering vary by locale, whether currency and tax are handled per country. In a system serving both Korea and Vietnam, this part hurts most later. A product aimed from the outset at one market, as Job Connect VN is, and one designed for multiple regions, as onSpots is, diverge here. Neither choice is wrong. What matters is that it was made explicitly before work started.

Records matter too. Check whether changes to the database structure are stored as files with some explanation of why they were made, and whether a new joiner has enough documentation to bring up an environment in half a day. An answer that handover documentation will be written in bulk at the end of the project is a poor sign. Documents written at that point usually consist of headings.

The last item is in practice the most important: ownership. The source repository, the domain, the store developer account, the cloud account, and third-party service accounts each need a named owner agreed in writing before signing. Regardless of build quality, accounts held in the development firm's name turn a later change of partner from a technical matter into a negotiation. This is not advice to distrust a partner, it is a procedure that protects both sides. Even in partnership arrangements we settle contract party and account party in writing before starting.

Put together, whether a system was designed for maintenance is not an abstract question of trust but a checkable list: environment separation, configuration separation, copy separation, change history, logging and monitoring, handover documentation, account ownership. Those seven can be verified against the proposal and the contract.

What a Client Can Verify From the Outside

Everything so far depends on what a partner tells you. This final section covers what can be checked without listening to anyone: published products, store history, documentation, and whether the proposal is willing to say that something should be cut. Apply it identically to every candidate on your list.

First, if a team says it has its own products, open them. Check whether the link is alive, whether sign-up works, whether you get past the first screen without an error. If there is only a demo video and nowhere to log in, the product is not currently in operation. Inspect ours the same way: onspots.app, www.langtori.com and www.jobconnectvn.com are public.

Second, for apps, look at the update history on the store page. When the last update happened, whether versions run continuously, whether the release notes contain real content. An app uploaded once and abandoned and an app still being maintained are distinguishable from history alone, and that record is hard to dress up with marketing copy.

Third, if a product claims multilingual support, switch the language. See whether any screen remains untranslated, whether dates and numbers follow the conventions of that language, whether sentences are truncated anywhere. Multilingual support is easy to declare and tedious to maintain, which makes it a fair reflection of how carefully a team works.

Fourth, check that the privacy policy and the contact channel genuinely exist. Not whether a link is present, but whether it opens, and whether a message sent there receives a reply. Sending one question into a candidate's own support channel costs almost nothing. How a team treats its own users is a preview of how it will treat yours.

Fifth, see whether the proposal contains any suggestion to cut. A proposal that reorders the sequence and gives reasons tends to come from a team that has been through operations, more so than one that transcribes the requirement list.

Sixth, look for handover and account ownership clauses in the contract documents. If they are absent, ask for them to be added and watch the reaction, which is itself information. A team with no resistance to those clauses works on the assumption that it will hand the system over one day.

One last point. The more a proposal leads with impressive numbers, the more worth asking where those numbers come from. That is exactly why no usage metric for our own products appears anywhere in this article. Instrumentation is not finished, we do not have those numbers, and using invented ones would break the standard we just described. The habit of separating what can be verified from what cannot stays useful long after the project ends.

Yeowubie Interaction works across Korea and Vietnam, developing for client companies while operating its own products. This article was not written to become the reason you choose us. Apply the six checks above equally to every candidate, and if we are still standing afterward, we can continue the conversation.

Related posts