چطور یک نرم افزار تولید کنیم؟

1. طراحی ایدههر نرم افزاری با یک ایده شروع می‌شه. لازم نیست ایده بزرگ یا هوشمندانه ای باشه، فقط یک ایده ساده کافیه.ایدتون رو با قلم و کاغذ طراحی کنید. یک خودکار و یک دفترچه کافیه. طراحی رو شروع کنید، یک لیست از ویژگی ها طراحی کنید و ببینید ایده چطور میتونه روی کاغذ شکل واقعی به خودش بگیره.من دوست دارم ویژگی های نرم افزار رو به دو گروه تقسیم کنم: ویژگی هایی که باید وجود داشته باشن و ویژگی هایی که بهتره وجود داشته باشن. ویژگی هایی که باید وجود داشته باشن به بخش هایی از نرم افزار گفته میشه که اگه نباشن، نرم افزار کار نکنه، و اونایی که بهتره وجود داشته باشن بخش هایی هستن که وجودشون به جذابیت اپ اضافه می‌کنه ولی نبودشون مشکلی ایجاد نمی‌کنه.وقتی شما یک نرم افزار طراحی می‌کنین، در واقع شما می‌خواین یک اپلیکیشن یا سایتی طراحی کنین که فقط کار کنه. به این نوع محصول (که برای ما نرم افزار هست) حداقل محصول قابل استفاده یا MVP (Minimum Viable Product) گفته میشه، و این مراحل اولیه کار هست، ساده ترین شکل نرم افزار شما. وقتی شما روی اینکه چه چیزی بیشتر اهمیت داره تمرکز می‌کنید، درواقع سرعت توسعه نرم افزارتون رو افزایش می‌دین و نرم افزار شما در برابر مشکلات احتمالی مقاوم تر میشه، یعنی ویژگی های کم اهمیت جلوی دید شمارو نمی‌گیره.چند سوال که می‌تونید از خودتون بپرسید:• چه ویژگی هایی رو میتونم نادیده بگیرم؟• چه ویژگی هایی نکته اختصاصی فروش نرم افزار هستن؟ یا به عبارتی چه نقاطی پول ساز هستن؟• چه ویژگی هایی سرعت توسعه نرم افزار رو کم می‌کنن؟ آیا وجودشون لازمه؟یک نرم افزار خوب، کارش رو به خوبی انجام می‌ده. مثلا:• یک نرم افزار یادداشت برداری مثل "دفترچه یادداشت حرفه ای" برای نوشتن یادداشت ها کارش عالیه.• یک نرم افزار حمل و نقل مثل(اسنپ، تپ سی و...) که به مردم کمک می‌کنن از نقطه الف به نقطه ب سفر کنن – ویژگی های دیگه اهداف جانبی هستن.• یک بازی مثل کوییز اف کینگز به خوبی تونسته مردم رو سرگرم کنه، و تلاشی برای خدماتی به جز سرگرمی انجام نمی‌ده.خیلی وسوسه انگیزه که بخوایم یک نرم افزار با یک عالمه ویژگی باحال طراحی کنیم. این اتفاق فقط کاربر هارو سردرگم می‌کنه که هدف اصلی نرم افزار شما چیه؟ یا اینکه نرم افزاری که طراحی کردین در چه زمینه ای قراره بهشون کمک کنه؟مطمئن بشید که نرم افزارتون فقط یک کار انجام بده، و اون یک کار رو به بهترین شکل انجام بده.برای طراحی ایدمون چه بهایی می‌پردازیم؟زمان: صرف چند ساعت الی چند روز برای طراحی نرم افزار روی کاغذ.هزینه:رایگان اهمیت ایده هارو بیش از حد ارزیابی نکنید. طراحی نرم افزاری که به بهترین شکل کار کنه خیلی مهم تر از یک ایده خیلی خفن هست.2. تحقیقات بازارتوسعه دهنده ها معمولا تبلیغات بازار رو نادیده می‌گیرن، درحالیکه این بخش، یکی از مهم ترین بخش های تولید یک نرم افزار هست.قبل از اینکه یک نرم افزار تولید کنید، باید بدونید که ایده شما کاربردی هست؟ برای اینکه جواب این سوال رو پیدا کنید می‌تونید چند سوال بپرسید:• چه نرم افزار های جایگزین یا رقیب هایی برای نرم افزار شما وجود داره؟• مشتریان بالقوه شما چه چیزهایی می‌خوان؟ نیاز هاشون چیه؟• چقدر باید برای نرم افزارم هزینه کنم؟• بهترین بیزنس مدل من چیه؟تحقیق بازار قبل از شروع به تولید نرم افزار می‌تونه شمارو از اشتباهات زیادی نجات بده. با تحقیق کردن شما فرضیات رو اعتبار سنجی و نیاز مشتری های بالقوه خودتون رو ارزیابی می‌کنید.دو نوع تحقیق بازار مفید وجود داره:• پیدا کردن اشتباهات رقبا• فهمیدن این موضوع که آیا افراد قابل توجهی به دنبال نرم افزاری مثل چیزی که شما می‌خواید تولید کنید وجود داره؟درسته! شما می‌تونید بدون اینکه نرم افزار رو تولید کنید، متوجه بشید که نرم افزار می‌تونه فروش خوبی داشته باشه یا نه؟در یک پست دیگه توضیح می‌دم چطور از Google Trends و کلمات کلیدی برای تحقیق استفاده کنید.یکی دیگه از راه های تحقیق، مصاحبه با مشتریان بالقوه هست، می‌خواین بینش مشتری هارو پیدا کنین؟ از جلوی کامپیوتر بلند شید و برید بین مردم و باهاشون صحبت کنید.نرم افزار شما برای چه کسی تولید شده؟ چطور می‌تونه به حل کردن مشکلی که کاربرها باهاش مواجه هستن کمک کنه؟ مشتری ها درحال حاضر چطور مشکلشون رو حل می‌کنن؟ نرم افزار شما چه چیزی رو آسون می‌کنه؟بر اساس تحقیقات، شما می‌تونید مسئله ای رو که نرم افزار شما حل می‌کنه و کسانی که به نرم افزار شما نیاز دارن رو به راحتی مشخصد کنید. شما از این اطلاعات استفاده می‌کنید تا یک نرم افزار کاملا بهینه برای کاربران تولید کنید.برای تحقیقات بازار چه بهایی می‌پردازیم؟زمان: صرف چند روز برای کشف اطلاعات مناسب و شاید تغییراتی در ایده.هزینه: شما می‌تونید رایگان این کار رو انجام بدید، ولی با مقداری هزینه کردن می‌تونید از ابزار پیشرفته کمک بگیرید.بعضی اوقات شما فقط می‌خواید یک نرم افزاری برای خودتون طراحی کنید، مشکلی نیست می‌تونید تحقیق بازار رو به عنوان یک بخش جانبی در نظر بگیرید و نرم افزار رو برای بیشتر شدن توانایی هاتون تولید کنید.ولی به طور کلی اهمیت تحقیق، به دست آوردن و آماده کردن اطلاعات موردنیاز رو دست کم نگیرید.3. ایجاد موکاپ (قالب گرافیکی) نرم افزاربهتره که قبل از شروع برنامه نویسی، موکاپ نرم افزارتون رو آماده کنید. موکاپ مدل سازی یک طرح کلی از نرم افزار شماست. رابط های کاربری و ارتباطات و عملکرد آنها.تصویر زیر یک مثال هست:در تصویر بالا شش صفحه از یک اپلیکیشن حمل و نقل رو می‌بینید که با نرم افزار Adobe XD طراحی شده. این فقط یک طرح هست و خود نرم افزار نیست و خیلی راحت تر از تولید نرم افزار طراحی میشه.موکاپ ها به شما نشون میده که نرم افزارتون قراره چه شکلی باشه، بدون اینکه درگیر برنامه نویسی نهایی بشید.همچنین موکاپ ها باید نحوه عملکرد نرم افزار رو بیان کنن، به این شکل که وقتی روی دکمه ثبت نام کلیک می‌کنید، صفحه ای شامل ورودی های موردنیاز برای ثبت نام نمایش داده بشه. البته که این صفحات قرار نیست به عنوان مثال عمل ثبت نام رو انجام بدن، فقط به صورت نمایشی به شما نشون می‌دن که جایگاه هر عنصر به چه شکل نمایش داده میشه.با توجه به محبوبیت و همه گیر شدن نرم افزار Adobe XD پیشنهاد می‌کنم از این نرم افزار برای طراحی رابط کاربری استفاده کنید، نرم افزار شامل نمونه های خوبی هست و به زیبایی می‌تونه عملکرد های نرم افزارتون رو شبیه سازی کنه.وقتی شما یک نرم افزار رو برای مشتری یا کارفرما تولید می‌کنید، ایجاد موکاپ به شما کمک می‌کنه قبل از شروع برنامه نویسی نتیجه نهایی رو بهشون نشون بدید که اگر تغییراتی لازم هست بهتون بگن، درحالیکه اگه مستقیم سراغ برنامه نویسی برید ممکنه با یک تغییر زمان زیادی رو از دست بدید. می‌تونید با موکاپ ها نشون بدید که نرم افزار قراره به چه شکلی پیاده سازی بشه.برای ایجاد موکاپ چه بهایی می‌پردازیم؟زمان: بین چند روز تا یکی دو هفته، به پیچیدگی های نرم افزار شما بستگی داره.هزینه: از اونجایی که ما ایران زندگی می‌کنیم و می‌تونیم نرم افزار هارو رایگان داشته باشیم، هزینه ای نداره. ولی اگه بخواید خریداری کنید هم نسخه رایگان داره هم پلن 99.9$ در ماهایجاد موکاپ رو نادیده نگیرید. موکاپ ها می‌تونن به شما کمک کنن در پایه ای ترین مرحله مشکلات رابط کاربری و تجربه کاربری رو حل کنید، همچنین کمک می‌کنن بتونید تیمتون رو هماهنگ کنید و تغییرات مدنظر کارفرما یا مشتری رو اعمال کنید.4. ایجاد بخش گرافیکی نرم افزارحالا نرم افزار شما شکل گرفته، وقت ساخت بخش گرافیکی نرم افزارتون هست. این بخش شامل عناصر، افکت های گرافیکی، تصاویر و در بعضی مواقع انیمیشن هاست.پیشنهاد می‌کنم یکی از دو رویکرد زیر رو برای بخش گرافیکی در نظر بگیرید:• خودتون با یک نمونه از پیش آماده شده گرافیکی که در اینترنت وجود داره انجام بدید• یک متخصص گرافیک رو استخدام کنیدمتخصص های گرافیک معمولا تجربه زیادی در این بخش دارن و تمام توجه و توانشون روی این بخش متمرکز بوده پس می‌تونن در زمینه گرافیک خیلی به شما کمک کنن و قطعا نتیجه نهایی خیلی بهتر میشه نسبت به طرح خودتون یا کسی که تخصصی در زمینه گرافیک نداره.به عنوان یک توسعه دهنده، شما باید روی نقاط قوت خودتون تمرکز کنید، در نتیجه برون سپاری بخش گرافیکی نرم افزار می‌تونه ایده خوبی باشه. پلتفرم هایی مثل پونیشا، پارس کدرزو پلتفرم های مشابه می‌تونن در پیدا کردن گرافیست به شما کمک کنن.اگه می‌خواید تنهایی انجامش بدید، چرخ رو دوباره اختراع نکنید! از نمونه های آماده که در اینترنت وجود داره استفاده کنید تا زمانتون رو ذخیره کنید. برای هر بخش مثل دکمه ها، باکس ها و یا به طور کلی تر فرم ها و قالب ها می‌تونید نتایج خوبی از بین چندین میلیون نتیجه ای که گوگل در کمتر از یک ثانیه به شما نمایش می‌ده پیدا کنید و بنا به سلیقه خودتون اون هارو شخصی سازی کنید.برای ایجاد بخش گرافیکی نرم افزار چه بهایی باید بپردازیم؟زمان: با توجه به نرم افزار شما بین یک تا چند هفته. از گرافیست بپرسید.هزینه: نمونه های رایگان زیادی در اینترنت وجود داره. از گرافیست بپرسید.همیشه متخصص ها می‌تونن رایگاناز توصیه های همدیگه استفاده کنن، مخصوصا گرافیست ها، برنامه نویس ها و بازاریاب ها. ولی از روانشناس ها یا دندون پزشک ها بخواید بهتون مشاوره رایگان بدن!!! از منشی وقت بگیرید بعد صحبت می‌کنیم ?پس برای تولید نرم افزارتون از انجمن ها یا گروه های متخصص بهره ببرید.5. ساخت صفحه معرفی نرم افزار (Landing Page)توسعه دهنده ها معمولا بازاریابی رو دست کم می‌گیرن، فقط به خاطر اینکه نرم افزار فوق العاده ای طراحی کردین به این معنی نیست که مردم می‌تونن پیداش کنن.شما حداقل باید یک صفحه معرفی یا Landing Page برای نرم افزارتون طراحی کنید و در ایده الش اینه که قبل از تولید نرم افزار این صفحه رو طراحی کنید.صفحه معرفی نرم افزار توضیح می‌ده که نرم افزار شما برای چه کاری تولید شده، چه کسانی می‌تونن ازش استفاده کنن و چرا مخاطب ها باید این نرم افزار رو انتخاب کنن.همچنین این صفحه می‌تونه یک فرم ثبت نام برای افرادی داشته باشه که می‌خوان نرم افزار رو قبل از انتشار تست کنن.به عنوان یک توسعه دهنده شما باید یک پل ارتباطی بین خودتون و مشتری هایی که پیش بینی می‌کنید داشته باشید تا بتونید با اون ها صحبت کنید و ایرادات و پیشنهادات رو برای بهتر شدن نرم افزار پیدا کنید.لندینگ پیج شما باید بخش های زیر رو داشته باشه:1. یک عنوان واضح در بالای پیج2. یک پاراگراف مختصر به عنوان مقدمه برای توضیح کاربرد نرم افزار شما، یا یک ویدئو3. یک عکس از نرم افزارتون ( یا درواقع Screenshot )4. فرم ثبت نام یا لینک دانلود و نصب نرم افزار5. لیستی از قابلیت های نرم افزار و فواید استفاده از اون6. یک داستان راجع به تولید کننده های نرم افزار یا یک بخش با عنوان "درباره ما"شما می‌تونید بخش هایی مرتبط با موضوعاتی که گفته شد اضافه کنید. بهتره که عنوان و دکمه ثبت نام یا دانلود نرم افزار در بخش ابتدایی صفحه شما باشه، اولین جایی که کاربر موقع بارگزاری صفحه می‌بینه.این صفحه می‌تونه یک بخش مهم برای معرفی نرم افزارتون باشه، اگه مردم علاقه مند باشن بیشتر از توضیحات شفاهی با نرم افزار شما آشنا بشن، می‌تونید این صفحه رو بهشون معرفی کنید. زمانی که هنوز نرم افزار رو تولید نکردید و در مراحل ساخت نرم افزار هستید این صفحه می‌تونه ارتباط شما رو با مردم حفظ کنه.همچنین وقتی شما نرم افزار رو منتشر می‌کنید (برای اپلیکیشن های موبایل در گوگل پلی یا اپ استور) نمی‌تونید توضیحات کاملی در صفحه مارکت نرم افزارتون بنویسید، اخبار رو منتشر کنید یا از مشتریان زودهنگام بخواید نظرشون رو برای رفع اشکالات بهتون بگن. (بخشی که در صفحه معرفی برای ثبت نام مشتری هایی که می‌خوان نرم افزار رو تست کنن دارید)یک صفحه ساده وب کار های زیادی رو برای شما انجام می‌ده تا ارتباطتون رو با مخاطب ها حفظ کنید و بیشتر راجع به نرم افزار و به روز رسانی ها توضیح بدید. اگه ایمیل یا شماره موبایل رو از مشتری ها بگیرید می‌تونید اونارو از اخبار مهم نرم افزارتون باخبر کنید.شما می‌تونید از وردپرس برای ساخت صفحه معرفی استفاده کنید که امکانات خیلی خوبی رو به راحتی در اختیارتون قرار می‌ده و حتی اگه با طراحی سایت آشنا نیستید، با کمی مطالعه می‌تونید صفحه موردنظر رو با تمام امکاناتی که نیاز دارید ایجاد کنید.در سال 2020 خیلی از توسعه دهنده ها ( مخصوصا اپلیکیشن های موبایل ) فقط از صفحه مارکت (مثل بازار، گوگل پلی و...) به عنوان کانال ارتباطی با کاربر هاشون استفاده می‌کنن که باعث میشه فرصت های زیادی رو برای بهبود عملکرد نرم افزار و گرفتن بازخورد از دست بدن. خیلی از اون هام کارشون با وبسایت خوبه پس در نظر داشته باشید که بعد از تولید نرم افزار حتما یک صفحه معرفی ایجاد کنید تا به بهتر شدن و معرفی بیشتر نرم افزار کمک کنه.برای ایجاد صفحه معرفی (Landing Page) چه بهایی باید بپردازیم؟زمان: چند روز، احتیاجی نیست خیلی پیچیده و جذاب باشه، محصول شما نرم افزار شماست!هزینه:معمولا رایگان، ولی اگه بخواید صفحه معرفیتون جذاب تر باشه بین 80.000 تا 200.000 تومان برای صفحه و حدود 6.000 تومان برای دامنه .ir و در نهایت بین 50.000 تا 70.000 تومان برای هاست های سه ماهه.6. ساخت نرم افزار با کد نویسیبالاخره رسیدیم، وقت بازی با کیبورد رسید.حالا که زمینه رو برای ساخت نرم افزار فراهم کردیم، نوبت شروع فرایند تولید هست که حالا خیلی راحت تر شده، موکاپ ها آماده شدن، بخش گرافیکی نرم افزار طراحی شده و اولین قدم ها برای بازاریابی نرم افزار با یک صفحه وبسایت انجام شده.نرم افزار شما می‌تونه یک اپلیکیشن برای موبایل باشه، یا یک نرم افزار دسکتاپ، شایدم یک اپلیکیشن وب باشه. هرکدوم از عنوان هایی که گفته شد IDE و زبان برنامه نویسی خودشون رو دارن.IDE مخفف کلمه Integrated Development Environment هست، در دنیای فناوری اطلاعات به برنامه نویس توسعه دهنده و به محیطی که برنامه نویس در اون برنامه نویسی می‌کنه محیط توسعه یا Development Environment گفته میشه. بنابراین IDE یک محیط برنامه نویسی هست که معمولا شامل ویرایشگر کد (Code Editor)، کامپایلر (Compiler)، دیباگر (Devugger) و در نهایت رابط گرافیکی یا GUI هست تا بتونه ذهن برنامه نویس رو فقط روی تولید نرم افزار متمرکز کنه و برنامه نویس مجبور نشه دنبال ابزار برای تصحیح کد هاش، یا رفع اشکال بگرده.زبان های برنامه نویسی مختلفی وجود داره که هرکدوم برای هدف خاصی انتخاب میشن، نرم افزار های اندروید معمولا از جاوا، نرم افزار های دسکتاپ از ASP.Net و وبسایت ها از PHPاستفاده میشه. البته که گزینه های خیلی بیشتری وجود داره ولی هدف این مقاله آشنایی با برنامه نویسی نیست و ما با علم اینکه شما با برنامه نویسی آشنا هستید، مراحل تولید نرم افزار رو توضیح می‌دیم.توسعه نرم افزار شامل دو بخش هست:1. سمت کاربر یا Client-Side: این بخش از نرم افزار رو کاربر شما می‌تونه ببینه. این بخش شامل چیدمان عناصر، منو، بخش های گرافیکی و انیمیشن هاست.2. سمت سرور یا Server-Side: این بخش از دید کاربر پنهانه و کاربر شما متوجه نمیشی در این بخش چه اتفاقی می‌افته. این بخش شامل پایگاه داده، ارتباطات و پردازش هاست.وقتی شما بخش سمت کاربر رو ایجاد می‌کنید درواقع رابط کاربری نرم افزار رو طراحی کردید و مشخص می‌کنید که وقتی کاربر با نرم افزار شما در تعامل هست چه اتفاقی باید بیافته.در بخش سمت سرور شما مشخص می‌کنید وقتی دیتایی از سمت کاربر دریافت میشه چه اتفاقی بیافته، می‌تونید دیتارو پردازش کنید و به اطلاعات جدیدی برسید و یا داده های دریافتی رو در پایگاه داده ذخیره کنید.به عنوان یک توسعه دهنده شما باید فرانتند و بکند رو به هم مرتبط کنید، فرض کنید شما نرم افزار تویتر رو ساختید، بخش فرانت که برای ایجاد و نمایش تویت هاست آماده شده و شما این صفحات رو به بکند متصل می‌کنید تا بتونید تویت های جدید رو ذخیره و تویت های ذخیره شده رو نمایش بدید.یک سری از ابزار ها هستند که سرعت توسعه شمارو افزایش می‌دن، پس لازم نیست همه چی رو از صفر کدنویسی کنید، به لطف جامعه متن باز (Open Source Community) و افزایش ابزار تجاری تولید شده توسط توسعه دهنده ها شما به ابزار ها، کتابخونه ها و فریمورک (Framework) های زیادی دسترسی دارید که کارتون رو خیلی راحت تر و سریع تر می‌کنن.یاد گرفتن برنامه نویسی چالش بزرگیه، مثل یاد گرفتن هر مهارت دیگه ای. ولی ابزار های امروزی و دسترسی به اینترنت یادگیری هر چیزی رو نسبت به قبل خیلی راحت تر کرده، پس مقداری صبر و حوصله و انگیزه جمع کنید و برید سراغ یادگیری.پیشنهاد می‌کنم برای یادگیری هزینه کنید و کتاب یا آموزش هایی که در سطح اینترنت هست رو خریداری کنید به دو دلیل، اول اینکه وقتی برای چیزی هزینه کنید بیشتر تلاش می‌کنید ازش استفاده کنید و دوم اینکه آموزش های پولی دقیق تر، کامل تر و بهتر توضیح می‌دن.یادگیری فقط با آموزش رویکرد خوبی نیست، آموزش ها فقط به شما می‌گن چه کارهایی می‌تونید انجام بدید، برای اینکه توانایی انجام اون کارهارو بدست بیارید باید کار و تمرین کنید.برای ایجاد نرم افزار چه بهایی باید بپردازیم:زمان: 2-3 هفته برای نمونه اولیه (MVP)، یا چند هفته/ماه برای نرم افزار کامل.هزینه: بستگی به نوع پروژه داره و متفاوت هست، ممکنه ابزاری رو خریداری کنید و قطعا فضایی برای میزبانی کد ها نیاز دارید.7. انتشار نرم افزاربرای راه اندازی و انتشار نرم افزارتون آماده این؟ حالا که نرم افزار آماده شده باید به مرحله اجرا برسونید.با توجه به نوع نرم افزارتون مراحل انتشار متفاوت هست، اگه نرم افزارتون، اپلیکیشنی برای موبایل های اندرویدی هست باید دنبال مارکت هایی مثل بازار و گوگل پلی باشید.وب اپلیکیشن ها که نیازی به مارکت ندارن و فقط باید با اپلود در هاست یا سرور و اتصال به دامین در دسترس عموم قرار بگیرن، مارکت شما گوگل هست که البته باید سئوی سایت رو قوی کنید تا گوگل شما رو در موضوعات مرتبط با هدف سایتتون در دسترس مخاطب ها قرار بده.برای نرم افزارهای دسکتاپ مثل موبایل مارکت خاصی در ایران وجود نداره و اغلب نرم افزارها مستقیما برای نهاد یا سازمانی طراحی می‌شن ولی سایت هایی مثل سافت98 ، دانلودها و... نرم افزارهای زیادی از جمله نرم افزارهای دسکتاپ رو در سایتشون قرار می‌دن که اکثرا رایگان و کرک شده هستن، پس اگه نرم افزار دسکتاپ تولید کردید بخش بعدی رو مطالعه کنید.قدم بعدی چیه؟وقتی نرم افزارتون رو منتشر کردید به این معنی نیست که کار تموم شد، درواقع این تازه شروع کار شماست! وقتی شما از مشتری های زودهنگامتون بازخورد گرفتید باید برگردید به تخته طراحی و برای به روز رسانی بعدی آماده بشید.حالا باید راجع به محصولی که منتشر کردید تحقیق کنید ولی به روشی جدید، این بار باید سراغ نرم افزارتون برید، آمار هارو ببینید، ضعف هارو پیدا کنید و اوضاع بازار رو بسنجید. موکاپ ها و طراحی های گرافیکی رو بازبینی کنید و ویژگی های جدیدی رو اضافه کنید. نسخه جدید نرم افزار منتشر میشه و فرآیند بالا تکرار میشه. این روند هرچند وقت یک بار باید تکرار بشه.تکرار شدن این مورد یک ضعف در تولید نرم افزار نیست، صاحب رستوران، پزشک ها و حتی نیروهای نظامی برای پیش برد هدفشون به طور کلی یک روند تکرار شونده دارن، اگه این اتفاق نیفته درآمدشون قطع میشه. تولید نرم افزار هم به همین شکل هست، اگه پشتیبانی قطع بشه نهایتا تا چند هفته به کارش ادامه می‌ده مگر اینکه چندین به روزرسانی گذشته باشه و نرم افزار به کامل ترین شکل ممکن در بازار قرار بگیره که البته بسته به نوع نرم افزار ممکنه همچنان نیاز به پشتیبانی کاربرها وجود داشته باشه.چند ایده برای ادامه کار:• در سایتی که برای معرفی نرم افزار ایجاد کردید، یک بلاگ اضافه کنید و بازاریابی محتوایی یا Content Marketing رو شروع کنید تا مخاطب هارو از امکانات و به روزرسانی های نرم افزار مطلع کنید.• با توسعه دهنده های دیگه راجع به نرم افزارتون صحبت کنید و اجازه بدید نرم افزار رو بررسی و پیشنهادات خودشون رو ارائه بدن.• در ابتدا برای به دست آوردن 1 کاربر تلاش کنید، سپس 10 و بعد 1.000 و 10.000 و این کار رو ادامه بدید، در ابتدا برای پیدا کردن صدها کاربر تلاش نکنید.• کلمات کلیدی رو بهینه سازی کنید و هیچوقت سئو رو در سایت معرفی نرم افزارتون فراموش نکنید.• با کاربرها در ارتباط باشید و راه هایی برای به اشتراک گذاری نرم افزارتون در شبکه های اجتماعی مختلف ایجاد کنید.• در شبکه های اجتماعی مثل اینستاگرام (که با توجه به تحریم شبکات دیگه، بیشترین مخاطب هامون در این فضا هستن) فعال باشید و کمپین هایی رو راه اندازی کنید.هر روشی برای ادامه انتخاب کردید، بهش پایبند باشید. برای انجام هرکدوم از روش هایی که برای جذب مخاطب انجام میشه برنامه ریزی کنید و در بازه های زمانی مختلف انجام بدید.برای انتشار نرم افزار چه بهایی باید بپردازیم:زمان: با توجه به نوع نرم افزار متفاوت هست، از یک روز تا یک هفته می‌تونه زمان بر باشههزینه:باتوجه به نوع نرم افزار متفاوت هست، ممکنه هزینه ای که برای لندینگ پیج پرداخت کردید کافی باشه و یا مارکتی که مدنظر دارید هزینه ای به صورت ماهیانه یا سالیانه دریافت کنه.8. بازاریابی برای پیدا کردن مشتری واقعیتوسعه دهنده های نرم افزار، حلال مشکلات هستن، نرم افزاری که شما طراحی کردید، یک مشکل رو حل کرده و این چیزیه که مردم رو متقاعد می‌کنه از نرم افزار شما استفاده کنن. اما این کافیه؟بازاریابی کمک می‌کنه بیشتر دیده بشید. باعث میشه راه حل های قبلی تبدیل بشن به راه حلی که شما تولید کردین، کار شما به عنوان توسعه دهنده کمک به مردم برای تغییر عقیده از راه حل سنتی به راه حل امروزی هست.بازاریابی شهرت بدی در ذهن مردم داره، شرکت هایی که برای افزایش فروش بازاریاب هایی رو استخدام کردن تا به صورت هرمی محصولاتشون رو بفروشن باعث این ذهنیت شده.توسعه دهنده ها معمولا فکر می‌کنن محصول خوب نیازی به بازاریابی نداره. زمانی که شما به یک خودکار نیاز دارید، خودکار مدنظر خودتون رو خریداری می‌کنید، منطقیه مگه نه؟ پس بازاریابی برای چیه؟اکثر محصولاتی که ما خریداری می‌کنیم مثل خودکار سرراست نیستن. چه چیزی باعث میشه مردم به جای گوشی های اندروید از ایفون استفاده کنن؟ چرا لپ تاپ ایسوس فروش بیشتری نسبت به سونی داره؟بازاریابی صداییه که به مردم میگه شما کی هستید، چه کار می‌کنید و چه چیزی شمارو از جایگزین های موجود متمایز می‌کنه. بازاریابی راجع به اعتماده، ایجاد ارتباطی همراه با اطمینان بین شما و مردم.درباره متواضع بودن کسب و کاریه که به بخشی از مخاطب هاش می‌گه محصول شما ممکنه برای اونا بهترین راه حل نباشه و در مورد داشتن شجاعت صحبت با کسانی که با دانش کمی که در مورد شما دارن هنوز متقاعد نشدن که محصول شما می‌تونه سودمند باشه.شما به عنوان توسعه دهنده نرم افزار به بازاریابی احتیاج دارید؟ معلومه که آره! می‌خواید ایده شما الهام بخش باشه درسته؟ محصول شما خیلی بهتر میشه وقتی که افراد درست ازش سود ببرن. بازاریابی راهی برای پیدا کردن افراد درست هست. عاقلانه ازش استفاده کنید و پشت منطق مخفی نشید. بازاریابی سوالیه که شما نمی‌تویند با منطق بهش جواب بدید – تنها راه پیش رو برقراری ارتباط دوستانه با مردم هست.چه وقتی باید شروع کنید؟ به این 3 سوال جواب بدید:· نرم افزار شما چه مشکلی رو حل می‌کنه؟· نرم افزار شما برای چه کسانی طراحی شده؟· چطور می‌تونید این افراد رو پیدا کنید؟از تکنیک هایی استفاده کنید که زودتر شمارو به جواب برسونه، مثل نوشتن موضوعات مرتبط با نرم افزارتون، یا ایجاد یک کمپین تبلیغاتی، یا مانور دادن روی کاربرهای جدید (مثل ارسال کد تخفیف، راهنمایی برای استفاده بهتر و دادن امتیاز هایی مختص تازه وارد ها و... ). به مخاطب ها کمک کنید متوجه بشن نرم افزار شما برای اون ها ساخته شده.برای بازاریابی چه بهایی باید بپردازیم:زمان: تا جایی که می‌تونید به مردم کمک کنید به سمت نرم افزارتون بیان.هزینه:بهترین بازاریابی اینه که کمترین هزینه رو داشته باشه!ساخت نرم افزار فقط کدنویسی نیست – درباره ایجاد تغییر هست!9. بهره مندی از بازخورد نرم افزاربازخورد کاربرهای واقعی برای یک نرم افزار خیلی مهمه. شما از تجربه های کاربر و بازخورد ها استفاده می‌کنید تا نرم افزارتون رو بهتر کنید. خب چطور این کار انجام میشه؟· از آنالیزور ها برای جمع آوری داده ها استفاده کنید· از مصاحبه و نظرسنجی برای جمع آوری داده ها استفاده کنید· مستقیما با تعدادی از کاربرها صحبت کنید و یک رابطه شخصی باهاشون برقرار کنیددر کشور های خارجی آسون ترین راه برای دریافت بازخوردها ارسال ایمیل از طرف خودتون هست، ایمیلی که ازشون راجع به نرم افزارتون بپرسید و اینکه چطور از نرم افزار استفاده می‌کنن.ولی در کشور ما شاید تعداد افرادی که از ایمیل استفاده می‌کنن خیلی کم باشه، مخصوصا افرادی که تنها تعاملشون با تکنولوژی استفاده از شبکه های اجتماعی هست. پس شاید بهتر باشه لینک یک فرم رو از طریق پیامک ارسال کنیم و یا داخل نرم افزار ازشون بخوایم که راجع به کار با محصولمون توضیح بدن.شاید بهترین کلمه برای گرفتن بهترین جواب "چطور" باشه. شما نمی‌پرسید که آیا از محصول ما راضی هستید؟ یا به نظر شما چطوری نرم افزارمون بهتر میشه؟ البته که شما می‌تونید این سوال هارو بپرسید ولی جواب ها اکثرا مفید نیستن. چیزی که شما نیاز دارید تجربه کاربر در رابطه با استفاده از نرم افزار شماست.در کتاب مرا مجبور به تفکر نکن، استیو کروگ گفته که چیزی که شما نیاز دارید ببینید تماشا کردن کاربر های واقعی هست وقتی که از نرم افزار شما استفاده می‌کنن. شما می‌تونید بپرسید چه چیزی اون هارو مشتاق می‌کنه از نرم افزار شما استفاده کنن، یا چه چیزی به عنوان نتیجه استفاده از نرم افزار شما انتظار دارن، ولی نباید طوری بپرسید که برای جواب دادن مجبور به تفکر عمیق بشن.اینکه از نظرسنجی های جمعی استفاده کنید تا بدونید کاربرها در سناریوی استفاده از نرم افزار شما چه واکنشی نشون میدن، اون هارو مجبور می‌کنه به فکر کردن راجع به اینکه چه تفکری نسبت به نرم افزار شما دارن. خیلی بهتر میشه اگه در تحقیقاتتون اون هارو وارد سناریو کنید و تماشا کنید چطور از نرم افزار استفاده می‌کنن!وقتی که یک سری از راه های بالا رو برای گرفتن بازخورد استفاده کردید، شما قسمتی از تعاملات نرم افزارتون که باعث میشه محصولتون متفاوت باشه رو پیدا می‌کنید. حالا می‌تونید چیزی که انتظار داشتید رو با چیزی که درواقع اتفاق میافته باهم مقایسه کنید و ببینید چقدر تفاوت داشت. اگه تفاوت زیادی وجود داشت، شاید بهتره انتظاراتتون رو تغییر بدید، یا نرم افزار رو تغییر بدید.یک لیست از پیشرفت های بالقوه تهیه کنید و موارد موجود در این دو دسته رو اصلاح کنید:· مواردی که اشتباهات واضحی هستن (مثل ایراد در عملکرد)· مواردی که به راحتی قابل رفع هستنخیلی پیچیدش نکنید، قرار نیست موشک هوا کنیم! بخش هایی رو بهتر کنید که نیاز می‌بینید باید بهتر بشن. لازم نیست عمیقا راجع به نرم افزار فکر کنید که یک اتفاق خارق العاده درش رخ بده.برای اینکه بیشترین استفاده رو از بازخوردها ببینید باید بخش هایی که درخواست شده و امکانش هست رو تغییر بدید و نتیجه رو بررسی کنید. هیچ کس نمی‌دونه چه چیزی بهتره تا وقتی که تغییرات رو تست و نتیجه رو تحلیل کنید.هرچقدر زمان چرخش شما در تست ها و تحلیل ها بیشتر باشه، برنامه شما سریع تر رشد می‌کنه.برای جمع آوری بازخوردها و اعمال تغییرات چه بهایی باید بپردازیم:زمان: جمع آوری بازخوردها چند ساعت و اعمال تغییرات چند روزهزینه:رایگان اگر از کاربرها بخواید، یا می‌تونید برای تست های بهتر به کاربر ها پول پرداخت کنید.امیدوارم این مقاله مورد استفادتون قرار بگیره، نظراتتون رو با ما به اشتراک بزارید و از تجربه هاتون بگید.