پلن جامع را انتخاب کردند، ولی نه همهاش را.
در پورتال هیچ ردیفی حذف نشد، اما پاسخها هفت ردیف جامع (۶۰۰ نفر-ساعت) را کنار گذاشتند، پنج کار تازه خواستند و تعریف «فاز اول» را جابهجا کردند.
- «فاز اول» آنها با فاز ۱ ما یکی نیست. اتصال کیان (مشتری، کالا، قیمت، موجودی، اسناد)، درگاه و کالای وزنی را در نخستین نسخه میخواهند؛ در برنامه ما کیان ماه ۴ و ۵ است.
- کیان دو نسخه جداست و CRM کیان مرجع مشتری است. همگامسازی دوطرفه ۱۲۰ هزار مشتری، با تغییر موبایل، در برآورد ما نیست.
- یازده مورد را صریحاً از ما خواستهاند: پیشنهاد میزبانی و مسئولیت نگهداری، هویت بصری با دورهای بازنگری، سرویس اعلان، مقایسه نقشه، جدول هوش مصنوعی و فهرست اقلام تحویل.
- ۲۴ پاسخ بخشی از تصمیم را به «تحلیل» یا «اعلام بعدی» سپردهاند. بدون دفتر تصمیم با مالک و موعد، دامنه شناور میماند.
- هیچکدام از ۳۶ نیازمندی تأمین نشده؛ ۱۱ تا مسدودکنندهاند. مسیر بحرانی راهاندازی دست خودشان است: دامنه، سپس اینماد، سپس درگاه؛ و API کیان.
«هر ۴۸ پاسخ را خواندیم. پیش از بازمحاسبه، سه موضوع را باید امشب با هم ببندیم: تعریف فاز اول، اتصال کیان بهویژه مشتری، و کالای وزنی.»
ترتیب پیشنهادی جلسه
این جلسه دنباله بازبینی است، نه ارائه تازه. هدف: بستن تصمیمهای کلیدی و گرفتن مالک و موعد برای بقیه.
- ۵ دقیقه
آنچه از پاسخها فهمیدیم
هفت ردیف کنار رفته و پنج کار تازه را خودمان بگوییم، پیش از آنکه بپرسند. نشان میدهد همه را خواندهایم.
- ۱۵ دقیقه
تعریف مشترک «فاز اول» و ترتیب تازه راهاندازی
کیان، کالای وزنی و کیف پول به راهاندازی ماه ۳ نزدیک میشوند، به شرط API کیان تا پایان ماه ۱.
- ۱۵ دقیقه
کیان: دو نسخه، مرجع مشتری، زمان ثبت اسناد
کدام کیان مشتری تازه را میسازد، رزرو یا فاکتور، و spike دوهفتهای روی نسخه آزمایشی.
- ۱۰ دقیقه
تصمیمهای باز، با Q-16 در صدر
کالای وزنی را همینجا ببندیم؛ بقیه به دفتر تصمیم با مالک و موعد.
- ۱۰ دقیقه
آنچه از ما خواستهاند
میزبانی، هویت بصری، اعلان، نقشه، هوش مصنوعی و اقلام تحویل؛ قول تحویل مکتوب با تاریخ.
- ۱۰ دقیقه
نیازمندیهای مسدودکننده
برای هر کدام از ۱۱ مورد یک نام و یک تاریخ؛ چکلیست پایین همین برگه.
- ۵ دقیقه
گام بعد
پیشنهاد بازنگریشده ظرف سه روز کاری، سپس قرارداد. اعتبار ۱۵ روزه قیمت را هم یادآوری و در صورت نیاز تمدید مکتوب کنیم.
۴۸ پاسخ، یکییکی
خلاصه هر پاسخ و کاری که از آن درمیآید. نوار رنگی کنار کد، اولویتی است که خودمان به آن مورد داده بودیم.
| کد | موضوع | پاسخ کارفرما در یک خط | برچسب | اثر / اقدام ما |
|---|
اثر روی دامنه و قیمت
نفر-ساعت ردیفهای حذفی از کاتالوگ است. افزودهها برآورد اولیه این برگهاند و پیش از اعلام باید با تیم تأیید و در 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 تعیین کردهاند؛ تصویر زیر همان تصمیم است.
کیان مشهد
حسابداری، قیمت، موجودی انبارهای مشهد، CRM
کیان گلبهار
حسابداری، قیمت، موجودی محل گلبهار، CRM
لایه مبدل کیان: یک اتصال برای هر نسخه، جدول نگاشت محل، کالا و مشتری، صف خطا و تلاش مجدد
سامانه مردمی
مرجع سبد، سفارش، آمادهسازی و تحویل، آدرسهای اپ، گردش کیف پول، و (پیشنهاد ما که رد نکردند) تصویر، توضیح و دستهبندی فروشگاهی
معماری اتصال با دو کیاناحتمال پرسش زیاد
یک لایه مبدل (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) ندارد؛ پس «رزرو» یعنی دریافت واقعی مبلغ بیشتر. سه راه:
- الف: دریافت برآورد بهعلاوه حاشیه (مثلاً ۱۰٪)، بازگشت مابهالتفاوت به کیف پول. خودکار و ساده؛ مبنای برآورد ما.
- ب: دریافت برآورد و تسویه اختلاف دم در. تطبیق پرداخت آنلاینِ تسویهشده با مابقی نقدی یا کارتخوان سختتر است.
- ج: دریافت برآورد؛ آمادهساز وزن را تا حد برآورد با تلورانس کم نگه دارد و اضافه جزئی را فروشگاه جذب کند. بهترین تجربه مشتری و بینیاز از کیف پول.
در پرداخت در محل مشکلی نیست: مبلغ قطعی پیش از ارسال معلوم است.
- 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 را تعهد قراردادی نکن؛ «هدف» بگو
- حداقل دامنه اجرایی را بهصورت عدد نگو
- نام رقیب را نبر و پیشفاکتورش را نشان نده
- نگو سند یا پیشنهاد شرکت دیگری را دیدهایم
- هیچ پلنی را «پیشنهاد ما» نکن؛ بپرس تاریخ راهاندازی مدنظر کی است
- عدد قطعی سطح خدمت نده؛ بازهها در بخش ۱۲ هست
- سرور، پیامک و نقشه را جزو مبلغ پروژه نشان نده