جلسه مردمی
داخلی · به کارفرما داده نشود
دوشنبه ۶ مهر ۱۴۰۵، شب · بر پایه بسته بازخورد ۵ مهر

پلن جامع را انتخاب کردند، ولی نه همه‌اش را.

در پورتال هیچ ردیفی حذف نشد، اما پاسخ‌ها هفت ردیف جامع (۶۰۰ نفر-ساعت) را کنار گذاشتند، پنج کار تازه خواستند و تعریف «فاز اول» را جابه‌جا کردند.

  • «فاز اول» آن‌ها با فاز ۱ ما یکی نیست. اتصال کیان (مشتری، کالا، قیمت، موجودی، اسناد)، درگاه و کالای وزنی را در نخستین نسخه می‌خواهند؛ در برنامه ما کیان ماه ۴ و ۵ است.
  • کیان دو نسخه جداست و CRM کیان مرجع مشتری است. همگام‌سازی دوطرفه ۱۲۰ هزار مشتری، با تغییر موبایل، در برآورد ما نیست.
  • یازده مورد را صریحاً از ما خواسته‌اند: پیشنهاد میزبانی و مسئولیت نگهداری، هویت بصری با دورهای بازنگری، سرویس اعلان، مقایسه نقشه، جدول هوش مصنوعی و فهرست اقلام تحویل.
  • ۲۴ پاسخ بخشی از تصمیم را به «تحلیل» یا «اعلام بعدی» سپرده‌اند. بدون دفتر تصمیم با مالک و موعد، دامنه شناور می‌ماند.
  • هیچ‌کدام از ۳۶ نیازمندی تأمین نشده؛ ۱۱ تا مسدودکننده‌اند. مسیر بحرانی راه‌اندازی دست خودشان است: دامنه، سپس اینماد، سپس درگاه؛ و API کیان.
جمله شروع پیشنهادی

«هر ۴۸ پاسخ را خواندیم. پیش از بازمحاسبه، سه موضوع را باید امشب با هم ببندیم: تعریف فاز اول، اتصال کیان به‌ویژه مشتری، و کالای وزنی.»

ترتیب پیشنهادی جلسه

این جلسه دنباله بازبینی است، نه ارائه تازه. هدف: بستن تصمیم‌های کلیدی و گرفتن مالک و موعد برای بقیه.

  1. آنچه از پاسخ‌ها فهمیدیم

    هفت ردیف کنار رفته و پنج کار تازه را خودمان بگوییم، پیش از آنکه بپرسند. نشان می‌دهد همه را خوانده‌ایم.

    ۵ دقیقه
  2. تعریف مشترک «فاز اول» و ترتیب تازه راه‌اندازی

    کیان، کالای وزنی و کیف پول به راه‌اندازی ماه ۳ نزدیک می‌شوند، به شرط API کیان تا پایان ماه ۱.

    ۱۵ دقیقه
  3. کیان: دو نسخه، مرجع مشتری، زمان ثبت اسناد

    کدام کیان مشتری تازه را می‌سازد، رزرو یا فاکتور، و spike دوهفته‌ای روی نسخه آزمایشی.

    ۱۵ دقیقه
  4. تصمیم‌های باز، با Q-16 در صدر

    کالای وزنی را همین‌جا ببندیم؛ بقیه به دفتر تصمیم با مالک و موعد.

    ۱۰ دقیقه
  5. آنچه از ما خواسته‌اند

    میزبانی، هویت بصری، اعلان، نقشه، هوش مصنوعی و اقلام تحویل؛ قول تحویل مکتوب با تاریخ.

    ۱۰ دقیقه
  6. نیازمندی‌های مسدودکننده

    برای هر کدام از ۱۱ مورد یک نام و یک تاریخ؛ چک‌لیست پایین همین برگه.

    ۱۰ دقیقه
  7. گام بعد

    پیشنهاد بازنگری‌شده ظرف سه روز کاری، سپس قرارداد. اعتبار ۱۵ روزه قیمت را هم یادآوری و در صورت نیاز تمدید مکتوب کنیم.

    ۵ دقیقه

۴۸ پاسخ، یکی‌یکی

خلاصه هر پاسخ و کاری که از آن درمی‌آید. نوار رنگی کنار کد، اولویتی است که خودمان به آن مورد داده بودیم.

کدموضوعپاسخ کارفرما در یک خطبرچسباثر / اقدام ما
مسدودکنندهمهمقابل تعویق

اثر روی دامنه و قیمت

نفر-ساعت ردیف‌های حذفی از کاتالوگ است. افزوده‌ها برآورد اولیه این برگه‌اند و پیش از اعلام باید با تیم تأیید و در features_data.py ثبت شوند.

می‌ماند ۴٬۲۴۷ کاهش جزئی حدود ۹۳ حذف با پاسخ‌ها ۶۰۰ افزوده حدود ۱۸۵ از ۴٬۹۴۰ نفر-ساعت قابلیت‌های جامع

کنار می‌رود

ردیفبه استنادنفر-ساعتقیمت مستقل (م.ت)
F-76 پذیرش فروشگاه‌های همکارQ-02۳۰۰۱۵۰
F-32 ربات فروش در پیام‌رسانQ-35۸۰۴۰
F-38 خرید اعتباری و اقساطیQ-17۵۵۲۸
F-65 پیک بیرونی برای سرریزQ-18۵۰۲۵
F-90 پرونده مشتری هنگام تماسQ-41۴۵۲۲
F-60 تماس امن با شماره مجازیQ-25۴۰۲۰
F-37 درگاه دومQ-13۳۰۱۵
جمع حذف۶۰۰۳۰۰
F-29 و F-30: هدف iOS از اپ مشتری و انتشار (برآورد)Q-33حدود ۵۳حدود ۲۶
F-62: فقط گزارش کارکرد، بدون محاسبه حقوق (برآورد)Q-19حدود ۴۰حدود ۲۰

اضافه می‌شود

کار تازهبه استنادبازهمبنا
همگام‌سازی دوطرفه مشتری با CRM کیان، رکورد طلایی، ورود اولیه ۱۲۰ هزار نفرQ-07، Q-40۶۰ تا ۱۰۰۸۰
هویت دیجیتال: نسخه دیجیتال لوگو، رنگ، فونت، کیت رابط، صفحات نمونه، دو دور بازنگریQ-36۴۰ تا ۷۰۵۰
اتصال دوم کیان و نگاشت انبارها به پایگاه و کد انبارQ-08۱۵ تا ۳۰۲۰
کنترل زنده موجودی هنگام پرداخت، گزارش تأخیر و مغایرت همگام‌سازیQ-09۱۵ تا ۲۵۲۰
قاعده محدوده‌های هم‌پوشان و پیشنهاد محل جایگزین برای سبد ناقصQ-22، Q-05۱۰ تا ۲۰۱۵
جمع افزوده۱۴۰ تا ۲۴۵۱۸۵
اختیاری: پیشنهاد شخصی قاعده‌محور، بدون هوش مصنوعیسند نیازمندی، Q-46۴۰ تا ۶۰۵۰

سناریوهای بازمحاسبه با همان فرمول پیشنهاد

سناریونفر-ساعت قابلیتبا سربار ۱۲٪ارزش فهرستیکف با همان تخفیف
جامع فعلی۴٬۹۴۰۵٬۵۳۳۲٬۷۶۶۲٬۳۰۰
منهای هفت ردیف حذفی۴٬۳۴۰۴٬۸۶۱۲٬۴۳۰حدود ۲٬۰۲۰
منهای کاهش‌های جزئی۴٬۲۴۷۴٬۷۵۷۲٬۳۷۸حدود ۱٬۹۸۰
به‌علاوه پنج کار تازه۴٬۴۳۲۴٬۹۶۴۲٬۴۸۲حدود ۲٬۰۶۵
به‌علاوه پیشنهاد قاعده‌محور۴٬۴۸۲۵٬۰۲۰۲٬۵۱۰حدود ۲٬۰۹۰

نسبت کف به ارزش فهرستی جامع ۸۳٪ است (۲٬۳۰۰ از ۲٬۷۶۶). اگر نسبت سقف به کف هم ثابت بماند (حدود ۱٫۲۴)، سقف تازه حدود ۲٬۵۶۰ تا ۲٬۵۹۰ می‌شود. ارقام به میلیون تومان.

مسیر شفاف (پیشنهاد این برگه)

کف حدود ۲٬۰۵۰ تا ۲٬۱۰۰. متن Q-02 را خودمان نوشته بودیم که «۳۰۰ نفر-ساعت حذف می‌شود» و قیمت هر ردیف را در پورتال دیده‌اند؛ خودشان جمع می‌زنند. اعتبار مدل قیمت‌گذاری شفاف از این فاصله باارزش‌تر است.

نگه‌داشتن کف ۲٬۳۰۰

طبق HANDOVER حذف‌ها ابزار مذاکره‌اند؛ اما اینجا حذف را خودمان وعده داده‌ایم. فقط با جایگزینی ملموس قابل دفاع است: جلوکشیدن کیان و کالای وزنی به راه‌اندازی، پیشنهاد قاعده‌محور و آزمون بار پیش از راه‌اندازی.

مدت اجرا

همان ۷ تا ۸ ماه را نگه دار. ساعت‌های کم‌شده بیشتر از فازهای ۳ و ۴ است، ولی کارهای افزوده (مشتری کیان، هویت، اتصال دوم) در مسیر بحرانی ماه ۱ تا ۳ نشسته‌اند.

در جلسه عدد قطعی نده.

«هر ردیف قیمت مستقل دارد؛ حذف‌ها و افزوده‌ها با همان فرمول بازمحاسبه و ظرف سه روز کاری مکتوب می‌شود.»

«فاز اول» آن‌ها، ترتیب ما

در Q-06، Q-13، Q-14 و Q-16 «فاز اول» یعنی نخستین نسخه‌ای که فروش را شروع می‌کند. آنچه در آن می‌خواهند: اتصال کیان برای مشتری، کالا، قیمت، موجودی و اسناد سفارش؛ درگاه؛ پرداخت در محل؛ کالای وزنی.

ماهبرنامه فعلی جامعپیشنهاد برای «فاز اول» آن‌ها
۱تحلیل، طراحی، معماری، ورود و نقش‌ها، کاتالوگ و قیمت شعبه‌ای، انتقال داده کالاهمان، به‌علاوه spike کیان روی نسخه آزمایشی، سایت حداقلی برای شروع بررسی اینماد، هویت دیجیتال
۲فروشگاه وب، جستجو، محدوده، سبد، بازه، درگاه، پنل شعبه و تحویلهمان، به‌علاوه خواندن کالا، قیمت و موجودی هر محل از کیان (یا پل اکسل)، ورود اولیه مشتریان کیان
۳راه‌اندازی عمومی، گزارش پایه، آموزشراه‌اندازی عمومی با موجودی کیان، درگاه و پرداخت در محل، کالای وزنی (قیمت تخمینی و ثبت وزن نهایی در پنل شعبه)، کیف پول بسته برای استرداد
۴اپ مشتری، اعلان، کیف پول، کیان: کالا و قیمت و موجودیثبت فاکتور و اسناد در کیان، همگام‌سازی دوطرفه مشتری، اپ آماده‌سازی با اسکنر
۵اپ سفیر، آماده‌سازی، وزنی و جایگزینی، فاکتور کیاناپ سفیر و ردیابی زنده، جایگزینی با تأیید مشتری، اپ اندروید مشتری
۶انتشار اپ‌ها، تخفیف پیشرفته، مرجوعی، تیکت، لاگ حسابرسیبدون تغییر
۷ و ۸باشگاه، کش‌بک، تحویل فوری، شیفت، مودیان، چندشهری، هوش تجاری، آزمون باربدون تغییر، منهای ردیف‌های حذفی
چرا شدنی است

در جامع از ماه ۱ تیم ۸ نفره داریم، نه ۴ نفره پایه؛ تا ماه ۳ ظرفیت بیشتری هست. iOS بومی حذف شده و وب‌اپ کانال راه‌اندازی است، پس اپ اندروید می‌تواند یک ماه عقب برود.

شرط صریح

مستند API و نسخه آزمایشی هر دو کیان تا پایان ماه ۱ (R-12، R-13). اگر نرسید، راه‌اندازی با پل اکسل زمان‌بندی‌شده و اتصال مستقیم پس از آن؛ این در بخش پیش‌نیازهای پیشنهاد هم آمده است.

کیان: دو نسخه، یک مشتری

پرریسک‌ترین بخش جلسه. مرجع هر داده را خودشان در Q-07 تعیین کرده‌اند؛ تصویر زیر همان تصمیم است.

معماری اتصال با دو کیاناحتمال پرسش زیاد

یک لایه مبدل (Anti-Corruption Layer) با N اتصال: مشهد، گلبهار و هر محل بعدی. جدول نگاشت: محل و انبار ما با پایگاه و کد انبار کیان، کالا با کد کیان، مشتری با شناسه در هر کیان. تغییر نسخه کیان فقط همین لایه را درگیر می‌کند.

  • Anti-corruption layer
  • Adapter per instance
  • Mapping tables

مرجع مشتری CRM کیان است؛ ولی کدام کیان؟باید مطرح کنیم

سامانه یک رکورد طلایی با کلید موبایل تأییدشده نگه می‌دارد که به صفر، یک یا دو شناسه کیان وصل است. کاربر تازه: جستجو با موبایل در هر دو کیان و اتصال. اگر در هیچ‌کدام نبود، تصمیم با آن‌هاست: ساخت در کیان محل تأمین نخستین سفارش (پیشنهاد ما) یا در هر دو.

تغییر موبایل: تأیید با OTP روی شماره جدید، سپس اعمال در همه کیان‌های متصل. اگر شماره جدید در کیان مال مشتری دیگری بود، به صف بررسی دستی می‌رود، نه ادغام خودکار.

  • MDM
  • Golden record
  • Survivorship rules
  • Conflict queue
  • E.164 normalization

ورود اولیه ۱۲۰ هزار مشتری

یکسان‌سازی شماره‌ها (۰۹، ‎+98، ‎0098)، کشف تکراری‌ها درون هر کیان و میان دو کیان، و گزارش شماره‌های نامعتبر. پیش از ورود، روی نمونه داده گزارش کیفیت می‌دهیم؛ خودشان در Q-40 همین را خواسته‌اند. امتیاز یا سطح فعلی مشتریان در CRM (Q-38) را هم همین‌جا ببینیم.

  • Deduplication
  • Data quality report
  • Idempotent import

موجودی: فاصله ۱ تا ۵ دقیقه را نپذیرفتنداحتمال پرسش زیاد

سه لایه: (۱) همگام‌سازی تغییرات هر چند دقیقه، یا رویدادی اگر API کیان اجازه دهد؛ (۲) کنترل زنده هنگام پرداخت با timeout کوتاه که اگر کیان کند بود، پرداخت را معطل نکند و به موجودی محلی منهای حاشیه ایمنی برگردد؛ (۳) آماده‌سازی به‌عنوان حقیقت نهایی، با گردش جایگزینی. در پنل: آخرین همگام‌سازی موفق هر محل، تأخیر و گزارش مغایرت، همان که خواسته‌اند.

  • Delta sync
  • Safety stock
  • Circuit breaker
  • Timeout + fallback
  • Reconciliation

چه زمانی در کیان ثبت کنیم؟باید مطرح کنیم

در برآورد، فاکتور پس از تحویل ثبت می‌شود. تا آن لحظه موجودی کیان کم نشده و صندوق حضوری ممکن است همان کالا را بفروشد. گزینه‌ها: ثبت رزرو یا پیش‌فاکتور هنگام تأیید سفارش، یا ثبت فاکتور پس از پایان آماده‌سازی. به امکانات API کیان بستگی دارد.

  • Reservation
  • Proforma
  • Oversell window

سامانه مودیان

فروش به مصرف‌کننده، صورتحساب نوع دوم است. اگر کیان همین حالا به مودیان می‌فرستد، ما فقط فاکتور را به کیان می‌دهیم و صورتحساب یک بار صادر می‌شود (دغدغه خودشان در Q-11)؛ وگرنه ارسال مستقیم از شرکت معتمد. ردیف F-81 مشروط است و ممکن است کوچک شود.

  • Single issuance
  • شرکت معتمد

اگر API کیان دیر برسد یا ناقص باشد

پل اکسل زمان‌بندی‌شده تا راه‌اندازی منتظر نماند. اتصال مستقیم از مسیر پایگاه داده یا فایل ۴۰ تا ۶۰ نفر-ساعت بیشتر، که در فاصله کف تا سقف دیده شده. پیشنهاد: spike دوهفته‌ای روی نسخه آزمایشی و سپس تثبیت برآورد اتصال؛ خودشان در Q-06 گفته‌اند برآورد قطعی پس از آزمون API.

  • Technical spike
  • Contract tests
  • Excel bridge

پرسش‌های فنی محتمل

پاسخ کوتاه برای گفتن، و کلیدواژه‌ها برای وقتی که طرف مقابل فنی است. مواردی که نوار پررنگ دارند احتمال پرسیدنشان بیشتر است.

معماری و سمت سرور

چرا ‎.NET 10؟احتمال پرسش زیاد

نسخه LTS مایکروسافت با پشتیبانی رسمی تا آبان ۱۴۰۷، متن‌باز (MIT) و روی لینوکس و Docker بدون هیچ لایسنس. ASP.NET Core در سنجه‌های مستقل جزو سریع‌ترین‌هاست؛ و مهم‌تر برای این پروژه: ارتباط زنده، کار پس‌زمینه، ORM و پایش همه بومی خود چارچوب‌اند. نیروی C# در بازار فراوان است. همین پورتالی که دیدند هم روی ‎.NET 10 ساخته شده.

  • LTS
  • Kestrel
  • Minimal APIs
  • EF Core
  • SignalR
  • BackgroundService
  • OpenTelemetry

چرا Laravel یا Node.js نه؟

هر دو برای فروشگاه معمولی کار می‌کنند. اینجا مسیر پول (کیف پول، استرداد، تطبیق) و کار پس‌زمینه سنگین (همگام‌سازی کیان، صف خروجی) داریم؛ سیستم نوع قوی و هم‌روندی چندهسته‌ای ‎.NET خطای این مسیرها را کم می‌کند. Node تک‌رشته‌ای است و یک گزارش سنگین حلقه رویداد را معطل می‌کند.

  • Static typing
  • Multi-core async
  • Compile-time safety

چرا میکروسرویس نه؟ «اسنپ میکروسرویس است»احتمال پرسش زیاد

اسنپ ده‌ها میلیون کاربر و صدها مهندس دارد. با ۵ هزار کاربر روزانه، اوج واقعی ۳۵ تا ۵۵ درخواست در ثانیه است. میکروسرویس هزینه سرور، استقرار و عیب‌یابی را چند برابر می‌کند بی‌آنکه سودی بدهد. مرز ماژول‌ها از روز اول اجباری است: هر ماژول schema جدا، ارتباط فقط با رویداد، و تست معماری که اگر ماژولی به داده دیگری دست بزند build را می‌شکند. جدا کردن یک ماژول در آینده پروژه کوچکی است.

  • Modular Monolith
  • Bounded Context
  • Schema per module
  • Architecture tests
  • MonolithFirst (Fowler)
  • Shopify

اگر کاربران ده برابر شوند؟

برنامه وضعیتی روی سرور نگه نمی‌دارد: نمونه بیشتر پشت متعادل‌کننده بار، نسخه فقط‌خواندنی پایگاه داده برای گزارش، و جداسازی جستجو یا توزیع اگر بار ویژه گرفتند. ستون «رشد» جدول میزبانی دقیقاً همین است، بدون تغییر کد.

  • Stateless
  • Horizontal scaling
  • Read replica
  • PgBouncer

چرا Docker Compose و Kubernetes نه؟

برای ۵ سرور، Kubernetes یک لایه کنترل و تخصص نگهداری اضافه می‌کند که سودش در ده‌ها سرویس ظاهر می‌شود. Compose با CI/CD و دو نمونه برنامه پشت nginx به‌روزرسانی بدون قطعی می‌دهد. همه‌چیز کانتینر است، پس راه Kubernetes در آینده باز است.

  • Rolling deploy
  • Health checks
  • Zero-downtime

پیامی بین سفارش، درگاه و کیان گم نمی‌شود؟احتمال پرسش زیاد

الگوی Transactional Outbox: رویداد در همان تراکنشی ذخیره می‌شود که سفارش. کارگر پس‌زمینه آن را با تلاش مجدد و فاصله نمایی می‌فرستد، گیرنده با کلید یکتایی تکرار را نادیده می‌گیرد، و موارد ناموفق در صف خطای قابل مشاهده می‌مانند تا دوباره اجرا شوند. صف کارها روی خود PostgreSQL با FOR UPDATE SKIP LOCKED، بدون کتابخانه تجاری.

  • Transactional Outbox
  • Idempotency Key
  • Exponential backoff
  • Dead-letter queue
  • At-least-once

داده، کش و جستجو

چرا PostgreSQL؟احتمال پرسش زیاد

سه نیاز: سفارش، کسر موجودی و برداشت کیف پول با هم یا هیچ (تراکنش)؛ محدوده ارسال و نزدیک‌ترین سفیر (PostGIS)؛ و SQL کامل برای گزارش مالی و تطبیق. هر سه نقطه قوت PostgreSQL است، متن‌باز و بی‌لایسنس. ویژگی‌های متغیر کالا در JSONB با ایندکس GIN.

  • ACID
  • MVCC
  • PostGIS ST_Contains
  • KNN <->
  • JSONB + GIN
  • Window functions

کیان احتمالاً روی SQL Server است؛ چرا ما هم نه؟

لایسنس SQL Server به ازای هسته گران است و نسخه قانونی‌اش در ایران دردسر دارد؛ PostGIS هم استاندارد صنعت داده مکانی است. مهم‌تر: اتصال به کیان از مسیر API است، نه اشتراک پایگاه داده، پس انتخاب ما مستقل از کیان است. اگر API نبود، لایه مبدل از پایگاه کیان می‌خواند؛ باز هم بیرون از هسته.

  • Per-core licensing
  • Integration by API, not shared DB

MongoDB یا MySQL چرا نه؟

Mongo برای داده بی‌ساختار خوب است؛ تراکنش چندسندی و گزارش مالی در آن پیچیده‌تر است و لایسنس SSPL دارد. MySQL پشتیبانی مکانی و ایندکس JSON ضعیف‌تری دارد و تغییر ساختار جدول در آن تراکنشی نیست؛ مهاجرت نسخه در PostgreSQL امن‌تر است.

  • SSPL
  • Transactional DDL
  • Spatial index

نسخه ۱۷؟ الان ۱۸ هم هست.

در شروع پروژه جدیدترین نسخه‌ای را برمی‌داریم که PostGIS و ابزار پشتیبان رویش جاافتاده باشند؛ ۱۷ یا ۱۸. ارتقای نسخه اصلی کار روتینی است.

  • pg_upgrade
  • Extension compatibility

Redis برای چه؟ لایسنسش عوض نشد؟

شمارنده اتمی ظرفیت بازه (هیچ بازه‌ای بیش از ظرفیت فروخته نمی‌شود)، رزرو کوتاه‌مدت موجودی با انقضا، موقعیت زنده سفیران، محدودیت نرخ OTP، کش، و backplane برای SignalR تا با دو نمونه برنامه، پیام زنده به همه برسد. لایسنس: Redis 8 گزینه AGPLv3 دارد و Valkey (فورک بنیاد لینوکس با مجوز BSD) جایگزین کاملاً سازگار است.

  • Atomic INCR / Lua
  • TTL
  • GEO
  • SignalR backplane
  • Valkey

چرا Meilisearch و نه Elasticsearch؟

۲۵ هزار کالا برای Elasticsearch خیلی کوچک است: JVM، چند گیگ رم و نگهداری سنگین. Meilisearch یک فایل اجرایی است با تحمل غلط تایپی، فیلتر چندوجهی و پاسخ چند میلی‌ثانیه‌ای. پیش از ایندکس، متن فارسی نرمال می‌شود (ي و ك عربی، نیم‌فاصله، ارقام) و فهرست مترادف داریم. فینگلیش و جستجوی معنایی در پلن هوشمند است.

  • Typo tolerance
  • Faceted search
  • Synonyms
  • Persian normalization

تصاویر کالا کجا می‌روند؟

ذخیره‌ساز شیء سازگار با S3 روی ابر داخلی و CDN داخلی؛ تبدیل خودکار به WebP یا AVIF در چند اندازه هنگام بارگذاری؛ بارگذاری تنبل در فهرست‌ها.

  • S3-compatible
  • CDN
  • WebP / AVIF
  • Lazy loading

وب و پنل‌ها

چرا SvelteKit؟ React رایج‌تر است.احتمال پرسش زیاد

Svelte کامپایل می‌شود و DOM مجازی ندارد؛ باندل کوچک‌تر یعنی بارگذاری سریع‌تر روی گوشی میان‌رده و اینترنت ضعیف، که در سوپرمارکت یعنی فروش. رندر سمت سرور برای سئو. اگر برای تیم داخلی آینده React می‌خواهند، در فاز تحلیل بدون تغییر قیمت به Next.js عوض می‌شود؛ در خود پیشنهاد نوشته شده.

  • SSR
  • No virtual DOM
  • Bundle size
  • Core Web Vitals
  • Next.js

این پورتال Blazor است؛ چرا فروشگاه Blazor نه؟احتمال پرسش زیاد

ابزار هر جا متناسب با کاربرش. Blazor Server برای هر بازدیدکننده یک اتصال زنده روی سرور نگه می‌دارد؛ روی اینترنت ناپایدار موبایل قطع و وصل می‌شود و با هر کاربر حافظه سرور می‌خورد. Blazor WASM چند مگابایت runtime دانلود می‌کند. برای پورتالی با چند کاربر روی دسکتاپ عالی است؛ برای هزاران خریدار موبایلی نه.

  • Circuit per user
  • WASM payload
  • Right tool per audience

چرا سایت را هم با Flutter Web نسازیم؟

Flutter Web روی canvas رندر می‌کند: سئو و دسترس‌پذیری ضعیف و بارگذاری اولیه سنگین. برای فروشگاهی که از جستجو و ترب مشتری می‌گیرد، هزینه پنهان بزرگی است.

  • Canvas rendering
  • SEO
  • First load

اپلیکیشن‌ها و سخت‌افزار

چرا Flutter؟احتمال پرسش زیاد

سه اپ داریم: مشتری (اندروید)، سفیر، و آماده‌سازی. Flutter یعنی یک پایه کد مشترک: نظام طراحی، ورود، کلاینت API و ذخیره آفلاین یک بار ساخته می‌شوند. رندر روان با Impeller، راست‌چین خوب، افزونه‌های آماده برای موقعیت پس‌زمینه، دوربین و نقشه، و اتصال به اسکنر صنعتی با Platform Channel. نیروی Flutter در ایران فراوان است.

  • Impeller
  • Platform channels
  • Offline-first (SQLite / Drift)
  • Shared design system

حالا که iOS لازم نیست، چرا Kotlin بومی نه؟احتمال پرسش زیاد

Kotlin برای یک اپ گزینه خوبی است؛ برای سه اپ یعنی سه بار ساختن اجزای مشترک. Flutter در iOS را باز نگه می‌دارد بی‌آنکه الان هزینه‌اش را بدهند. هزینه هدف iOS در Flutter حاشیه‌ای است (آزمون، انتشار، چند افزونه)؛ حذفش حدود ۴۵ نفر-ساعت از اپ مشتری و حدود ۸ از انتشار کم می‌کند.

  • Code sharing
  • Marginal cost of iOS target

وب‌اپ روی iOS چه محدودیتی دارد؟ (خودشان خواسته‌اند در اقلام تحویل بیاید)

نصب از منوی Share و «Add to Home Screen» (پیام نصب خودکار ندارد)؛ اعلان وب فقط پس از نصب و از iOS 16.4؛ فضای ذخیره ممکن است پاک شود؛ کار پس‌زمینه ندارد. برای خرید مشتری مشکلی نیست؛ اپ سفیر و آماده‌سازی اندرویدی‌اند و درگیر این‌ها نیستند.

  • PWA
  • Web Push (iOS 16.4+)
  • Service Worker
  • Web App Manifest

بارکدخوان صنعتی را چطور پشتیبانی می‌کنید؟احتمال پرسش زیاد

دو حالت، هر دو در اپ: «شبیه‌ساز صفحه‌کلید» (Keyboard wedge) که روی همه دستگاه‌ها کار می‌کند، و دریافت اسکن با Broadcast Intent (مثل DataWedge زبرا) که مطمئن‌تر است. شرط: مدل دستگاه را پیش از خرید بدهند؛ اندروید خیلی قدیمی یا دستگاه بی‌مستند ریسک است. آزمون روی دستگاه واقعی جزو پذیرش است، که خودشان هم خواسته‌اند.

  • Keyboard wedge
  • Broadcast Intent
  • DataWedge
  • Zebra · Honeywell · Urovo · Sunmi

بارکد کالای وزنی چطور خوانده می‌شود؟

معمولاً EAN-13 با پیشوند ۲۰ تا ۲۹: کد کالا، سپس وزن یا مبلغ، سپس رقم کنترل. قالب هر مدل ترازو فرق دارد و در سامانه پیکربندی‌پذیر است. نمونه برچسب واقعی و مدل ترازو (R-11) پیش‌نیاز است.

  • EAN-13
  • Variable-measure prefix 2x
  • Check digit

اپ اندروید کجا منتشر می‌شود؟

کافه‌بازار و مایکت کانال اصلی‌اند، به‌علاوه دانلود مستقیم از سایت. گوگل‌پلی برای حساب ایرانی عملاً بسته است؛ قولش را نمی‌دهیم مگر حساب قانونی داشته باشند. کلید امضای اپ به نام و در اختیار کارفرماست؛ بدون آن هیچ‌کس نسخه بعدی را منتشر نمی‌کند.

  • AAB / APK
  • App signing key
  • Bazaar · Myket

اپ سفیر با اینترنت ضعیف و باتری؟

رخدادها روی گوشی صف می‌شوند و با برگشت اینترنت ارسال می‌شوند. ثبت موقعیت با Foreground Service و اعلان دائمی (الزام اندروید) و فاصله قابل تنظیم؛ بیرون از شیفت خاموش است. تماس مستقیم با مشتری از دکمه داخل اپ، بدون نمایش شماره.

  • Foreground service
  • Doze mode
  • Store-and-forward

پرداخت و مالی

کالای وزنی: پاسخ Q-16 متناقض استباید مطرح کنیم

درگاه شاپرکی «نگه‌داشت مبلغ» (pre-auth و capture) ندارد؛ پس «رزرو» یعنی دریافت واقعی مبلغ بیشتر. سه راه:

  1. الف: دریافت برآورد به‌علاوه حاشیه (مثلاً ۱۰٪)، بازگشت مابه‌التفاوت به کیف پول. خودکار و ساده؛ مبنای برآورد ما.
  2. ب: دریافت برآورد و تسویه اختلاف دم در. تطبیق پرداخت آنلاینِ تسویه‌شده با مابقی نقدی یا کارتخوان سخت‌تر است.
  3. ج: دریافت برآورد؛ آماده‌ساز وزن را تا حد برآورد با تلورانس کم نگه دارد و اضافه جزئی را فروشگاه جذب کند. بهترین تجربه مشتری و بی‌نیاز از کیف پول.

در پرداخت در محل مشکلی نیست: مبلغ قطعی پیش از ارسال معلوم است.

  • No pre-auth in IPG
  • Weight tolerance
  • Wallet refund

جریان درگاه و تراکنش‌های نامعلوم

توکن، هدایت به درگاه، بازگشت، و verify در مهلت PSP (وگرنه خودکار برمی‌گردد). verify یکتاست تا دوبار تأیید نشود؛ کار زمان‌بندی‌شده تراکنش‌های نامعلوم را پیگیری می‌کند؛ تطبیق روزانه با گزارش تسویه. هیچ داده کارتی به سامانه نمی‌رسد.

  • Verify / Reverse
  • Idempotent callback
  • Settlement reconciliation

کیف پول و روش استرداد (Q-15 از ما خواسته)

کیف پول بسته، بدون برداشت و انتقال؛ مجوز جدا نمی‌خواهد. دفتر دوطرفه: هر حرکت دو سطر، مانده همیشه از جمع حرکات، و گزارش مانده کل به‌عنوان بدهی. استرداد وجه درگاهی: به کیف پول فوری، یا به کارت با API استرداد اگر درگاه انتخابی داشته باشد، وگرنه واریز دستی مالی با ثبت در دفتر. انتخاب نهایی بعد از معلوم شدن درگاه.

  • Double-entry ledger
  • Closed-loop wallet
  • Liability report
  • Refund API

اسناد کیف پول و کش‌بک در کیان (Q-10)

سند تجمیعی روزانه که تا سفارش و تراکنش قابل ردیابی است: هر سطر سند به شناسه‌های مبدأ اشاره می‌کند. سرفصل‌ها را مالی تعیین می‌کند و نگاشت در پنل است.

  • Drill-down
  • Journal lines with source IDs

زیرساخت و عملیات

پیشنهاد میزبانی (Q-44 صریحاً خواسته)حتماً پرسیده می‌شود

ابر داخلی به نام کارفرما؛ مثلاً ابرآروان یا پارس‌پک، یا لیارا اگر سرویس مدیریت‌شده بخواهند. مرحله راه‌اندازی ۵ سرور: ۲ برنامه (۴ هسته، ۸ گیگ)، پایگاه داده (۸ هسته، ۱۶ گیگ، NVMe)، کش و جستجو (۴، ۸)، محیط آزمون (۴، ۸)؛ به‌علاوه ذخیره‌ساز شیء و CDN و پشتیبان نزد ارائه‌دهنده دوم. حدود ۱۵ تا ۲۵ میلیون تومان در ماه. رشد فقط افزودن منابع است.

  • IaaS
  • Object storage
  • Off-site backup
  • Staging

مسئولیت نگهداری سرور با کیست؟حتماً پرسیده می‌شود

پیشنهاد: جدول مسئولیت در قرارداد. ارائه‌دهنده ابر: سخت‌افزار، شبکه، مجازی‌ساز. ما: سیستم‌عامل و وصله امنیتی، Docker، پایگاه داده، پشتیبان و آزمون بازیابی، پایش و هشدار، استقرار؛ در دوره پروژه و ضمانت، سپس در قرارداد پشتیبانی. کارفرما: حساب‌ها، پرداخت و تأیید دسترسی‌ها.

  • RACI
  • Runbook
  • On-call

پشتیبان و بازیابی

پشتیبان کامل روزانه به‌علاوه آرشیو پیوسته WAL، یعنی بازیابی تا لحظه دلخواه؛ رمزنگاری‌شده و بیرون از سرور اصلی. آزمون عملی بازیابی جزو تحویل است. هدف: از دست رفتن داده در حد دقیقه و بازگشت در حد ساعت؛ این را «هدف» بگو، نه تعهد قراردادی.

  • PITR
  • pgBackRest
  • WAL archiving
  • RPO / RTO
  • 3-2-1

پایش

ردگیری با OpenTelemetry، سنجه‌ها با Prometheus و Grafana، لاگ با Loki؛ همه روی سرور کارفرما. هشدار به کشیک، و گزارش دسترس‌پذیری که مبنای سنجش سطح خدمت است.

  • Tracing
  • Metrics
  • Logs
  • SLO
  • Alerting

قطع اینترنت بین‌الملل و تحریماحتمال پرسش زیاد

همه وابستگی‌های زمان اجرا داخلی‌اند: سرور، CDN، پیامک، نقشه، درگاه. فونت و فایل‌ها خودمیزبان‌اند؛ هیچ Google Fonts یا CDN خارجی. بسته‌های ساخت (NuGet، npm، pub.dev، ایمیج‌های Docker) در رجیستری داخلی کش می‌شوند تا build در قطعی هم کار کند. مخزن کد روی Gitea یا GitLab خودمیزبان روی زیرساخت کارفرما. تنها چیزی که در قطعی می‌افتد اعلان مبتنی بر گوگل است؛ برای همین رخدادهای حیاتی پیامک هم دارند (Q-34).

  • Registry mirror
  • Self-hosted Git
  • No foreign runtime dependency

سرویس اعلان (Q-34 از ما خواسته)

ارائه‌دهنده داخلی اعلان به‌عنوان مسیر اصلی اپ، Web Push برای وب‌اپ، و پیامک برای تأیید و ارسال سفارش با ثبت گزارش تحویل پیام. انتخاب نهایی با مقایسه هزینه در فاز ۱.

  • Push provider
  • Web Push (VAPID)
  • SMS fallback
  • Delivery reports

سرویس نقشه (Q-26 از ما خواسته)

یک لایه انتزاعی (تبدیل آدرس، آدرس معکوس، مسیر، ماتریس فاصله) تا ارائه‌دهنده عوض‌شدنی باشد. در فاز ۱ مقایسه یک‌هفته‌ای نشان، بلد و Map.ir روی نشانی‌های واقعی مشهد و به‌ویژه گلبهار؛ داده شهرهای کوچک معمولاً ضعیف‌تر است. برای کم کردن هزینه، نمایش نقشه می‌تواند از تایل خودمیزبان باشد و فقط تبدیل آدرس و مسیر پولی.

  • Provider abstraction
  • Geocoding quality
  • Self-hosted tiles

پیامک و کد ورود

کد ورود از خط خدماتی و با الگو (Verify) تا به شماره‌هایی که پیامک تبلیغاتی را بسته‌اند هم برسد. دو ارائه‌دهنده برای جایگزینی خودکار، و ثبت گزارش تحویل.

  • Service line
  • Template / Verify API
  • Failover

امنیت

سوءاستفاده از OTP و تخلیه اعتبار پیامک

محدودیت نرخ برای هر شماره، IP و دستگاه؛ قفل تصاعدی؛ کپچای خودمیزبان (بدون reCAPTCHA گوگل)؛ و هشدار وقتی مصرف پیامک غیرعادی شد.

  • Rate limiting
  • SMS pumping
  • Proof-of-work captcha

داده شخصی و دسترسی کارکنان

TLS همه‌جا با HSTS و CSP؛ رمزنگاری فیلدهای حساس (موبایل، نشانی) با کلید بیرون از پایگاه داده؛ کارکنان هر محل فقط داده همان محل را می‌بینند و شماره‌ها ماسک‌شده‌اند (Q-43)؛ احراز دومرحله‌ای برای مالی و مدیران؛ تأیید دونفره برای استرداد بزرگ.

  • Least privilege
  • Field-level encryption
  • TOTP 2FA
  • Four-eyes approval

لاگ حسابرسی و تست نفوذ

لاگ قیمت، موجودی، تخفیف، استرداد و دسترسی‌ها فقط افزودنی و زنجیره‌ای با هش است، تا دست‌کاری ردیف قبلی معلوم شود. در جامع، رفع یافته‌های تست نفوذ (F-121) هست؛ هزینه آزمایشگاه مستقل با کارفرماست. در CI هم اسکن وابستگی و تحلیل ایستای کد اجرا می‌شود.

  • Append-only
  • Hash chain
  • OWASP ASVS
  • SAST
  • Dependency scanning

کارایی و مقیاس

عددهای بار از کجا آمده؟احتمال پرسش زیاد

۵ هزار کاربر روزانه، ۶٬۵۰۰ نشست، ۲۶۰ هزار درخواست در روز، حدود ۱۱ درخواست در ثانیه در ساعت اوج و ۳۵ تا ۵۵ در جهش‌ها. هدف طراحی ده برابر: ۳۰۰ تا ۵۰۰ در ثانیه، کمتر از یک‌پنجم ظرفیت یک سرور. کارفرما خواسته این‌ها «فرض آزمون بار» ثبت شوند (Q-03)؛ موافقیم.

  • p95 latency
  • Headroom
  • Load assumptions

۱۲۰ هزار مشتری کیان و کمپین راه‌اندازی

گلوگاه واقعی سرور نیست، ظرفیت بازه تحویل و سفیر است. پیشنهاد: پیامک دعوت پلکانی در چند روز، هم برای هزینه پیامک و هم تا سفارش‌ها از ظرفیت عملیات بیرون نزنند.

  • Staggered rollout
  • Capacity-bound, not CPU-bound

آزمون بار چرا فاز ۴؟

آزمون کامل وقتی معنا دارد که همه ماژول‌ها باشند. ولی پیش از راه‌اندازی عمومی یک آزمون پایه روی جستجو، سبد و پرداخت پیشنهاد می‌کنیم؛ کوچک است و در سخت‌سازی راه‌اندازی جا می‌شود.

  • k6
  • Baseline test
  • Soak test

کیفیت و فرایند

تست و کیفیت کد

آزمون واحد روی قواعد حساس (قیمت، دفتر کیف پول، ظرفیت بازه)، آزمون یکپارچه با پایگاه داده واقعی در کانتینر، آزمون سرتاسری مسیر خرید، و آزمون قرارداد برای مبدل کیان. CI اجازه ادغام کد شکسته را نمی‌دهد.

  • Testcontainers
  • Playwright
  • Contract tests
  • CI gates

مستندات

معماری در مدل C4، ثبت تصمیم‌های معماری با دلیل هر انتخاب، مستند خودکار API، راهنمای عملیات روزمره و راهنمای هر نقش.

  • C4 model
  • ADR
  • OpenAPI
  • Runbooks

پیشرفت کار را چطور می‌بینیم؟

تحویل ماهانه روی محیط آزمون با دسترسی کارفرما، جلسه نمایش، و مهلت ۱۰ روز کاری برای پذیرش هر فاز؛ سکوت یعنی تأیید.

  • Staging
  • Monthly demo
  • Acceptance window

هوش مصنوعی: جدولی که خواستند

در Q-46 برای هر قابلیت، خروجی قابل آزمون، داده و هزینه ساخت و مصرف خواسته‌اند. در جامع هوش مصنوعی نیست، ولی «پیشنهاد شخصی بر اساس خرید مشتری» در بخش ۲ سند نیازمندی خودشان هست.

پیشنهاد میانه: پیشنهاد شخصی بدون مدل یادگیرنده، حدود ۵۰ نفر-ساعت در جامع

«دوباره بخر» (در F-24 هست)، «معمولاً با هم خریده می‌شوند» از هم‌رخدادی اقلام سفارش‌ها، «پرفروش همین محل» و دسته‌های محبوب هر مشتری. خروجی قابل آزمون: نرخ افزودن به سبد و کلیک. هزینه جاری تقریباً صفر. همان داده رویدادها بعداً مدل F-98 را آموزش می‌دهد.

قابلیتخروجی قابل آزمونداده لازمنفر-ساعتم.تهزینه جاری
F-95 زیرساخت هوش مصنوعیپیش‌نیاز ردیف‌های مدل زبانی: دروازه مدل، حذف داده شخصی، پایش هزینه و کیفیتندارد۲۶۰۱۳۰ندارد
F-96 دستیار پشتیبانیدرصد گفت‌وگوی حل‌شده بدون انسان، زمان پاسخپرسش‌های پرتکرار، سیاست‌ها، وضعیت سفارش۳۲۰۱۶۰مصرفی (مدل زبانی)
F-97 جستجوی هوشمندکاهش جستجوی بی‌نتیجه، کلیک روی نتیجه اولکاتالوگ، لاگ جستجو۱۸۰۹۰کم
F-98 پیشنهاد شخصیدقت روی سفارش‌های کنارگذاشته، نرخ افزودن به سبدسابقه سفارش۲۴۰۱۲۰ناچیز، روی سرور خودی
F-99 تکمیل سبدنرخ پذیرش پیشنهاد، اندازه سبدسفارش‌ها۹۰۴۵ناچیز
F-100 دستیار خریدنرخ تبدیل گفت‌وگو به سفارشکاتالوگ و موجودی محل۲۶۰۱۳۰مصرفی
F-104 پیش‌بینی تقاضاخطای پیش‌بینی به تفکیک کالا و محل۱۲ تا ۲۴ ماه فروش روزانه۲۸۰۱۴۰ناچیز
F-105 زمان تحویلمیانگین خطا به دقیقهسوابق تحویل۱۴۰۷۰ناچیز
F-110 تقلب و سوءاستفادهدقت و بازیابی روی موارد برچسب‌خوردهسفارش، پرداخت، مرجوعی۱۵۰۷۵ناچیز
F-114 دستیار مدیریتیدرصد پاسخ درست روی مجموعه پرسش آزمونداده گزارش‌ها۲۰۰۱۰۰مصرفی
F-115 قیمت نزدیک انقضاکاهش ضایعات با حفظ حاشیهفروش و تاریخ انقضا۱۶۰۸۰ناچیز

دو مسیر مدل زبانی

دسترسی مستقیم به API مدل‌های خارجی از ایران رسماً پشتیبانی نمی‌شود؛ مسیر الف یعنی دروازه واسط با حذف داده شخصی پیش از ارسال. مسیر ب مدل متن‌باز روی سرور گرافیکی داخلی است. یک دروازه واحد، پس جابه‌جایی فقط یک تنظیم است.

  • LLM gateway
  • PII redaction
  • Self-hosted open model

هزینه مصرف را عدد نده

«در یک پایلوت دوهفته‌ای اندازه می‌گیریم و به ازای هر هزار گفت‌وگو اعلام می‌کنیم.» ردیف‌های تحلیلی (پیش‌بینی، تقلب، زمان تحویل) در هر دو مسیر روی سرور خودشان اجرا می‌شوند و هزینه مصرفی ندارند.

  • Pilot
  • Cost per 1k conversations

پرسش‌های تجاری و قراردادی

جایی که «اهرم» آمده، تصمیمش با خودت است؛ فقط برای اینکه غافلگیر نشوی.

«یک شرکت دیگر ۲۲۰ میلیون داده؛ شما بیش از دو میلیارد؟»احتمال پرسش زیاد

آن رقم لایسنس یک محصول آماده دوشعبه‌ای است: بدون سورس، مدل بازارگاه چندفروشنده، همگام‌سازی ۱۵ دقیقه‌ای «در صورت وجود وب‌سرویس»، بدون آماده‌سازی، جایگزینی، کالای وزنی، دفتر کیف پول و تطبیق حسابداری؛ و هر سفارشی‌سازی ساعتی با تعرفه باز. مقایسه منصفانه، پلن پایه ما با آن لایسنس به‌علاوه سفارشی‌سازی‌هاست. شما جامع را انتخاب کرده‌اید چون عملیات کامل می‌خواهید. نام شرکت را نبر.

«با این حذف‌ها قیمت جدید چقدر است؟»حتماً پرسیده می‌شود

«هر ردیف قیمت مستقل دارد و در پورتال دیده‌اید. حذف‌ها و افزوده‌ها با همان فرمول بازمحاسبه و ظرف سه روز کاری مکتوب می‌شود.» سناریوها در بخش دامنه؛ عدد قطعی در جلسه نه.

«چرا نرخ ۵۰۰ هزار تومان؟»

تعرفه پایه نظام صنفی ۱۴۰۴ پیش از ضرایب ۳۵۰ هزار تومان است؛ با ضرایب نیروی ارشد، نرخ مؤثر بازار ۵۰۰ هزار تا بیش از یک میلیون. نرخ ما ابتدای این بازه و برای کل تیم یکسان است. پیش از جلسه چک کن تعرفه ۱۴۰۵ منتشر شده یا نه؛ اگر شده، استناد به آن قوی‌تر است.

«پیش‌پرداخت ۳۰٪ زیاد است»

عرف بازار ۵۰٪ است، حتی در پیش‌فاکتورهای محصول آماده. سهم فاز ۱ بیشتر است چون بسیج تیم و معماری همین‌جاست. مرحله دوم فقط پس از باز شدن فروشگاه برای عموم پرداخت می‌شود. اهرم ممکن: ۲۰٪ هنگام قرارداد و ۱۰٪ پس از تأیید طراحی.

«ضمانت شما سه ماه است، دیگران شش ماه»

ضمانت ما پس از تحویل نهایی شروع می‌شود، ولی فروشگاه از ماه سوم زنده است و هر اشکالی در طول پروژه رایگان رفع می‌شود. یعنی ماژول‌های راه‌اندازی عملاً از ماه ۳ تا حدود ماه ۱۱ پوشش دارند. شش ماه ضمانت یک محصول آماده، ضمانت کدی است که برای شما نوشته نشده.

«پشتیبانی سالانه ۲۰٪ زیاد است»

عرف نگهداری نرم‌افزار سفارشی ۱۵ تا ۲۵٪ سالانه است. شامل پاسخ شبانه‌روزی به اختلال بحرانی، وصله امنیتی، سازگاری با نسخه‌های تازه اندروید، پایش و گزارش. با کف تازه جامع، رقم سال اول هم پایین می‌آید (۲۰٪ کف). اهرم ممکن: سطح پایه فقط ساعات اداری با درصد کمتر.

«مدت را کوتاه کنید؛ تیم را بزرگ‌تر کنید»

راه‌اندازی عمومی در ماه ۳ ثابت است. افزودن نفر به پروژه در جریان، سرعت را خطی بالا نمی‌برد. بیشترین شتاب از آماده بودن پیش‌نیازهای خودشان می‌آید: API کیان، دامنه، اینماد، درگاه.

  • Brooks's law
  • Critical path

«اگر روزی بخواهیم بدون شما ادامه دهیم؟»

سورس از روز اول در مخزن خودشان، مستند ساخت و استقرار از صفر، کلید امضای اپ، و حساب‌های ابر، پیامک و نقشه همه به نام خودشان. هیچ لایسنس تجاری پنهانی در مسیر نیست.

«با تورم، قیمت ثابت می‌ماند؟»

مبلغ قرارداد برای دامنه توافق‌شده ثابت و سقف‌دار است. فقط افزوده‌های پس از قرارداد با نرخ روز (فرمول تورم رسمی) و پشتیبانی سال‌های بعد با فرمول تعدیل.

«تیم ۸ نفره چه کسانی‌اند؟ نمونه‌کار؟»

ترکیب پیشنهادی برای پاسخ (با واقعیت تطبیق بده): مدیر پروژه و تحلیلگر، طراح تجربه کاربری، دو برنامه‌نویس ‎.NET، یک برنامه‌نویس وب، دو برنامه‌نویس Flutter، تست و کیفیت؛ به‌علاوه DevOps پاره‌وقت. رزومه و نمونه‌کار در پورتال نیست؛ همراه ببر.

«مالیات؟ تا کی این قیمت معتبر است؟»

ارقام بدون ارزش افزوده‌اند. اعتبار ۱۵ روز از تاریخ ارائه است؛ تاریخ دقیق انقضا را چک کن و اگر نزدیک است، تمدید مکتوب را خودت پیشنهاد بده.

آنچه ما باید مطرح کنیم

این‌ها را منتظر نمان تا بپرسند. هر کدام از یک پاسخ یا یک شکاف در پاسخ‌ها درآمده است.

  • حتماً

    «فاز اول» شما یعنی چه؟

    کیان، درگاه و کالای وزنی را در نخستین نسخه خواسته‌اند؛ در برنامه ما کیان ماه ۴ و ۵ است. ترتیب تازه را پیشنهاد بده و شرطش را بگو.

    Q-06، Q-13، Q-14، Q-16
  • حتماً

    کالای وزنی را ببندیم

    پاسخ Q-16 الف و ب را با هم آورده. یکی از الف، ب یا ج را همین‌جا انتخاب کنند.

    Q-16
  • حتماً

    مشتری تازه در کدام کیان ساخته شود؟

    و وقتی شماره جدید در کیان مال مشتری دیگری است، چه کسی تصمیم می‌گیرد؟

    Q-07، Q-40
  • حتماً

    ثبت در کیان: رزرو یا فاکتور، و کِی؟

    تا فاکتور ثبت نشده، صندوق حضوری همان کالا را می‌فروشد. این پنجره را کوچک کنیم.

    Q-09
  • حتماً

    spike دوهفته‌ای کیان

    برآورد اتصال پس از دیدن API تثبیت شود. تاریخ تحویل مستند و نسخه آزمایشی هر دو کیان، و یک جلسه سه‌جانبه با پشتیبانی کیان.

    Q-06، R-12، R-13
  • حتماً

    دفتر تصمیم

    ۲۴ پاسخ موکول‌اند. هر کدام یک مالک و یک موعد؛ تصمیمی که بعد از موعد برسد، درخواست تغییر است.

    برچسب «موکول» در جدول پاسخ‌ها
  • حتماً

    اینماد زودهنگام

    دامنه همین هفته. سایت حداقلی با صفحات لازم در ماه اول تا بررسی اینماد شروع شود؛ قرارداد درگاه موازی. اگر نرسید، راه‌اندازی با پرداخت در محل.

    Q-37، Q-45، R-16، R-17، R-25
  • مهم

    چندشهری را حذف نکنید

    گلبهار شهر جداگانه‌ای است؛ همین امروز دو شهرند. F-11 گزارش و دسترسی به تفکیک شهر می‌دهد و «رشد شهر» در سند خودشان است.

    Q-01، F-11
  • مهم

    پیشنهاد شخصی در سند خودشان است

    در جامع فقط «دوباره بخر» هست. گزینه قاعده‌محور حدود ۵۰ نفر-ساعت را پیشنهاد بده.

    سند نیازمندی بخش ۲، Q-46
  • مهم

    هویت بصری: دو گزینه

    الف: نسخه دیجیتال لوگوی موجود، رنگ، فونت، کیت رابط و صفحات نمونه با دو دور بازنگری (حدود ۵۰ نفر-ساعت). ب: طراحی لوگو از صفر با طراح هویت، جداگانه. رنگ #390094 را خودشان در پورتال زده‌اند؛ بپرس رنگ برند است یا سلیقه.

    Q-36، R-31
  • مهم

    داده راهرو و قفسه

    مرتب‌سازی فهرست آماده‌سازی به «راهرو و قفسه» هر کالا در هر محل نیاز دارد. چه کسی وارد می‌کند؟ تا آن موقع با ترتیب دسته‌بندی شروع می‌کنیم.

    Q-31، F-48
  • مهم

    اسکنر را پیش از خرید هماهنگ کنند

    مدل و نسخه اندروید را بدهند؛ یک دستگاه نمونه برای توسعه لازم است.

    Q-29، R-29
  • مهم

    «رضایت قبلی» در جایگزینی

    آیا گزینه «جایگزین مشابه را قبول دارم» هنگام خرید، رضایت قبلی حساب می‌شود؟ اگر نه، هر جایگزینی منتظر پاسخ مشتری می‌ماند.

    Q-30
  • مهم

    مرجوعی بی‌محدودیت

    پیش‌فرض باز، ولی مهلت، سقف و بررسی موردی باید قابل تنظیم باشد تا سوءاستفاده کنترل شود. متن سیاست مکتوب (R-18) لازم است.

    Q-32
  • مهم

    تماس مستقیم سفیر و حریم خصوصی

    دکمه تماس بدون نمایش شماره، و بسته شدن دسترسی پس از تحویل.

    Q-25
  • اگر وقت شد

    کمپین پلکانی برای ۱۲۰ هزار مشتری

    تا سفارش‌ها از ظرفیت بازه و سفیر بیرون نزنند و هزینه پیامک کنترل شود.

    Q-03، Q-40
  • اگر وقت شد

    گوگل‌پلی را قول نمی‌دهیم

    بازار و مایکت و دانلود مستقیم؛ گوگل‌پلی فقط با حساب قانونی خودشان.

    Q-33، R-19
  • اگر وقت شد

    آزمون بار پایه پیش از راه‌اندازی

    کوچک و ارزان؛ اطمینان شب اول را می‌دهد.

    F-12

آنچه باید مکتوب تحویل بدهیم

در پاسخ‌ها صریحاً از ما خواسته‌اند. در جلسه برای هر کدام تاریخ بده.

  • پیشنهاد بازنگری‌شده دامنه و قیمتحذف‌ها، افزوده‌ها، ترتیب تازه ماه‌ها، کف و سقف تازه
    ۳ روز کاری
  • پیشنهاد میزبانیارائه‌دهنده، مشخصات، هزینه ماهانه، ظرفیت اولیه، افزایش منابع، محیط آزمون، پشتیبان بیرونی، پایش، جدول مسئولیت (Q-44)
    همراه پیشنهاد
  • خروجی‌های هویت دیجیتالفهرست تحویلی‌ها و تعداد دورهای بازنگری (Q-36)
    همراه پیشنهاد
  • فهرست اقلام تحویلروش انتشار اندروید، امکانات و محدودیت‌های وب‌اپ روی iOS (Q-33)
    همراه پیشنهاد
  • جدول هوش مصنوعیخروجی قابل آزمون، داده، هزینه ساخت و روش سنجش هزینه مصرف (Q-46)
    همراه پیشنهاد
  • دفتر تصمیم۲۴ مورد موکول، با مالک و موعد
    همراه پیشنهاد
  • پیشنهاد سرویس اعلان و طرح مقایسه نقشهبا هزینه، مسیر پیامکی پشتیبان (Q-34، Q-26)
    فاز ۱
  • سند اتصال کیانجهت هر فیلد، حل تعارض، جلوگیری از مشتری تکراری، نگاشت انبارها (Q-07، Q-08)
    پس از دیدن API
  • رفتار سبد ناقص و قاعده محدوده هم‌پوشان(Q-05، Q-22)
    فاز ۱

از کارفرما چه بخواهیم

یازده نیازمندی مسدودکننده. در جلسه تیک بزن و مالک و تاریخ را بنویس؛ روی همین مرورگر ذخیره می‌ماند.

مهم، نه مسدودکننده

اعداد دم دست

همه ارقام مالی به میلیون تومان و بدون مالیات.

پلن‌ها (کف تا سقف، تیم، مدت)

پایه
۵۲۰ تا ۶۴۰ · ۴ نفر · ۲٫۵ تا ۳ ماه
حرفه‌ای
۱٬۳۵۰ تا ۱٬۷۰۰ · ۶ نفر · ۵ تا ۶ ماه
جامع
۲٬۳۰۰ تا ۲٬۸۵۰ · ۸ نفر · ۷ تا ۸ ماه
هوشمند
۳٬۹۵۰ تا ۴٬۹۰۰ · ۱۰ نفر · ۹ تا ۱۰ ماه

جامع در یک نگاه

قابلیت
۹۹ از ۱۲۱
نفر-ساعت قابلیت و مجموع
۴٬۹۴۰ و ۵٬۵۳۳
ارزش فهرستی و تخفیف
۲٬۷۶۶ و ۴۶۶ (۱۷٪)
پشتیبانی سال اول
۴۶۰

مدل قیمت

نرخ نفر-ساعت
۵۰۰ هزار تومان
سربار مدیریت و کیفیت
۱۲٪
پشتیبانی
۲۰٪ کف، پس از ۳ ماه ضمانت
تعدیل پشتیبانی
× (۱ + تورم) × ۱٫۱
اعتبار قیمت
۱۵ روز

پرداخت و پذیرش

چهار مرحله
۳۰ / ۲۳٫۳ / ۲۳٫۳ / ۲۳٫۴ درصد
مرحله دوم
فقط پس از راه‌اندازی عمومی
مهلت بررسی هر فاز
۱۰ روز کاری؛ سکوت یعنی تأیید
ایراد
فقط مغایرت با دامنه، نه تغییر دامنه

بار و ظرفیت

کاربر فعال روزانه
۲ تا ۵ هزار (فرض)
سفارش روزانه
۵۰۰ تا ۱٬۰۰۰ (فرض)
اوج واقعی
۳۵ تا ۵۵ درخواست در ثانیه
هدف طراحی
۳۰۰ تا ۵۰۰ درخواست در ثانیه
موقعیت سفیران
۶۰ نفر، هر ۵ ثانیه: ۱۲ نوشتن در ثانیه

میزبانی (با کارفرما، خارج از مبلغ)

راه‌اندازی، تا ۵ هزار کاربر
۵ سرور · ۱۵ تا ۲۵ در ماه
رشد، تا ۲۰ هزار
۷ سرور · ۳۰ تا ۵۰ در ماه
مقیاس بزرگ، تا ۱۰۰ هزار
۱۱ سرور · متناسب با مصرف

سطح خدمت (بازه، نه عدد قطعی)

بحرانی
پاسخ ۱ تا ۲ ساعت شبانه‌روزی · رفع ۴ تا ۱۲ ساعت
بالا
۴ تا ۸ ساعت کاری · ۱ تا ۳ روز کاری
متوسط
۱ تا ۲ روز کاری · ۵ تا ۱۰ روز کاری
پایین
۵ تا ۱۰ روز کاری · نسخه بعدی

رقیب (فقط برای ذهن خودت)

مبلغ
۲۲۰ + ۱۰٪ ارزش افزوده
لایسنس
دوشعبه‌ای، بدون سورس
تحویل و ضمانت
۱۰ روز کاری · ۶ ماه
پرداخت
۵۰ / ۵۰

چه نگوییم

پررنگ‌ها تازه‌اند و از پاسخ‌های این دور درآمده‌اند.

  • قیمت تازه را در جلسه قطعی نکن
  • زمان‌بندی کیان را پیش از دیدن API قول قطعی نده
  • انتشار در گوگل‌پلی یا اپ‌استور را تضمین نکن
  • هزینه مصرف مدل زبانی را عدد نده
  • RPO و RTO را تعهد قراردادی نکن؛ «هدف» بگو
  • حداقل دامنه اجرایی را به‌صورت عدد نگو
  • نام رقیب را نبر و پیش‌فاکتورش را نشان نده
  • نگو سند یا پیشنهاد شرکت دیگری را دیده‌ایم
  • هیچ پلنی را «پیشنهاد ما» نکن؛ بپرس تاریخ راه‌اندازی مدنظر کی است
  • عدد قطعی سطح خدمت نده؛ بازه‌ها در بخش ۱۲ هست
  • سرور، پیامک و نقشه را جزو مبلغ پروژه نشان نده