در این نوشتار برآنیم شیوهای را برای ارزش گذاری نرم افزار با توجه به درآمد حاصل از آن نرمافزار ارائه دهیم. در این روش از اصول شناخته شده ارزیابی اموال فکری کمک گرفته میشود، منتها مشکلی که در این زمینه وجود دارد و صرفاً در مورد نرمافزارها صدق میکند این است که نرمافزار دائماً در حال بهبود یافتن است. سادهترین راهحلی که در این خصوص به ذهن میرسد، محاسبه استهلاک است. در اینصورت استهلاک تنها در مورد خریداران اعمال شده و مشخص نمیشود ارزش نرم افزار اولیهای که به تدریج بهبود یافته، چه میزان کم شده است؛ کاهش ارزشی که بر فروشنده تحمیل میشود.
کتابها و مقالات بسیاری در مورد هزینه تولید نرم افزار نوشته شده، اما در هیچ کدام از آنها به منافع حاصل از نرمافزار اشاره نشده است. از این رو هرگاه که محاسبه این منافع در تجارت ضرورت پیدا کرده است، انجام این مهم به وکلا، اقتصاددانان، فروشندگان نرمافزار و نه پدیدآورندگان نرمافزار واگذار شده است؛ بدیهی است نتایج کار آنها نیز متناقض خواهد بود.
چرا پدید آورندگان نرم افزار باید از محصولات خود مراقبت کنند و آگاهیهای لازم را در این خصوص دارا باشند؟ در رشتههای دیگر، پدیدآورندگان به ارزش محصولات خود آگاه هستند. برای مثال یک معمار میداند طرحهای وی در بازار چقدر میارزد یا یک سفالگر از قیمتی که ظروف باید به فروش برسد آگاه است؛ به همین ترتیب دوچرخهساز و سایر تولیدکنندگان اموال فیزیکی و مادی. اما یک نرمافزار وقتی نوشته میشود امکان کپی کردن آن با هزینه بسیار ناچیز وجود دارد.
برای قیمت گذاری نرم افزار باید میزان فروش احتمالی آن را پیشبینی کرد؛ کاری که چندان ساده نیست و نیاز به تخصص دارد؛ مثلا نویسنده یک کتاب میتواند در این زمینه از یک ناشر کمک بگیرد. وقتی کتاب وارد بازار شد، نویسنده ذینفع میتواند میزان درآمد حاصل از فروش کتاب را با توجه به گزارش سالانه ناشر دنبال کند.
قیمتی که خریدار کتاب یا نرمافزار میپردازد، ربطی به میزان تلاش و هزینه صورت گرفته برای خلق اثر ندارد. برای نمونه یک متن چندخطی بسیار زیبا یا یک کد نرمافزاری کوتاه ممکن است بسیار باارزش باشد. در حالیکه یک کد چند میلیون خطی که گزارشی را ارائه میدهد، ارزش ناچیزی دارد. لذا اگر پدیدآورنده به ارزش بالقوه کار خود آگاه باشد، بهتر میتواند تصمیم بگیرد چه میزان وقت و هزینه صرف آن کند.
متون بسیاری در خصوص حمایت از اموال فکری وجود دارد. چند سال پیش مطالعاتی در مورد حمایت از اموال فکری در قالب اختراع یا کپیرایت انجام شد، اما به نتایج این تحقیقات اعتراض شد! با این توضیح که تا زمانیکه موضوع تحت حمایت مشخص نیست ،تمرکز بر شیوههای حمایت در واقع پاسخ به سؤالی است که در درجه دوم اهمیت قرار دارد. هنوز هم حمایت در قالب کپیرایت بسیار بحثبرانگیز است و در عمل، کپیرایت و اختراعات حمایت محدودی را به عمل میآورند؛ چرا که حمایت از نرم افزارها با وجود ارتباطات سریع و ناشناس دنیای کنونی بسیار دشوار است. تعیین اینکه در اثر کپی کردن نرم افزار چه میزان از ارزش آن کاهش مییابد کار آسانی نیست و همین، برقراری تعادل بین حمایت و دسترسی آزاد را نیز مشکل میسازد.
ارزش گذاری نرم افزار برای چه کسانی یک ضرورت است؟
مطمئناً برای مهندسین نرمافزار بسیار راهگشا خواهد بود اگر علاوه بر هزینه تولید نرم افزار ، به مصارف اقتصادی آن نیز آگاه باشند. در دنیای کنونی که در حال گذار از اموال مادی به اموال غیرمادی است، دانستن ارزش این اموال یک ضرورت است. در سال ۲۰۰۳ سرمایهگذاری شرکتهای امریکایی در حوزه اموال غیرمادی ۹% و در حوزه اموال مادی حدود ۸% تولید ناخالص ملی را تشکیل میداد. البته بخش ناچیزی از سرمایهگذاری هزار میلیارد دلاری در این حوزه به نرمافزار اختصاص یافته بود و بیشتر آن در حوزههای مربوط به بازاریابی، بهبود کسب و کار، آموزشهای شغلی و تحقیق و توسعه هزینه شده بود.
نرمافزار ماهیت منحصر به فردی دارد به گونهای که شیوههای سنتی ارزشگذاری حتی آنهایی که در خصوص سایر اموال فکری همچون موسیقی، اختراع و کپیرایت اعمال میشود، در مورد نرمافزار نتایج گمراهکنندهای را به دنبال دارد. حوزههایی که درآنها ارزش گذاری نرم افزار یک ضرورت است عبارتند از:
- اتخاذ تصمیم در خصوص سرمایه گذاری در حوزه نرم افزار. در بیشتر صنایع ۱۰% سرمایهگذاریها به حوزه نرمافزار اختصاص مییابد که این مقدار، در برخی کسب و کارها همچون بانکداری بیشتر و در برخی همچون حوزه سلامت و آموزش کمتر است،
- تصمیمگیری در خصوص به دست آوردن یک نرم افزار به طرق مختلف اعم از خرید، اجاره، بهرهگیری از خدمات ارائه شده در خصوص نرمافزار در وبسایتهای مربوطه و …،
- تصمیمگیری در مورد خرید یک شرکت نرمافزاری. میدانیم بخشی از عملیات راستیآزمایی (مطالعه دقیق تمام جنبههای یک سرمایهگذاری) ارزیابی تمام اموالی است که قرار است خریداری شود و نرمافزارها بخش مهمی از این پروسه را تشکیل میدهند. در جریان حباب دات کام ، اموال شرکتها بیش از ارزش واقعی آنها ارزیابی میشد که نهایتاً این حباب ترکید و نتیجه آن چیزی نبود جز کاهش شدید ارزش اموال خریداری شده و سلب اعتماد سهامداران.
- شرکت های صادر کننده نرم افزار به عنوان بخشی از جریان برون سپاری ، باید بدانند ارزش صادرات آنها چقدر است و با چه قیمتی محصولات خود را انتقال دهند (برون سپاری در مفهوم اولیه خود بدین معناست که بخشی از فعالیتهای یک شرکت به بیرون سپرده شده و در حقیقت خود شرکت از فرایند خارج شود و کارها توسط شخص ثالث انجام گیرد، شخصی که در صنعت مورد نظر از تخصص کافی برخوردار است).
نکته: حباب دات کام اصطلاحی است که برای اشاره به حباب اقتصادی سالهای بین ۱۹۹۵ تا ۲۰۰۰ به کار میرود. در این سالها فناوریهای اینترنتی که تازه سربرآورده بودند، آیندهای درخشان را نوید میداد. جذابیت فناوریهای ارتباطی به ویژه بازار سهام را مجذوب خود کرده بود. شرکتهایی که به فعالیتها و کسب و کارهای اینترنتی رو میآوردند، ارزش سهامشان رشد پرشتابی به خود میگرفت. اما این رشد پرشتاب در سال ۲۰۰۰ به یکباره متوقف شد و حباب اقتصادی شکل گرفته را ترکاند. جذابیت و اقبال اینترنت باعث شکل گرفتن مجموعه زیادی از شرکتهای اینترنتی شد که به دات کام معروف بودند. بیشتر شرکتها به این نتیجه رسیده بودند که اگر به اول نام خود یک E و به انتهای آن یک. com اضافه کنند، ارزش سهامشان در بورس رشد تصاعدی به خود خواهد گرفت؛ دست اندرکاران بازار هم انتظار داشتند شرکتهایی که وارد فعالیتهای اینترنتی میشوند سود کلانی به دست آورند؛ به همین دلیل اقبال بیشتری به این شرکتها نشان میدادند. این روند تا جایی ادامه داشت که ارزش سهام این شرکتها در بورس از ارزش واقعی آنها بالاتر رفت. در این نقطه بود که رشد ارزش سهام متوقف میشد و چه بسا رو به کاهش مینهاد و حباب شرکتهای دات کام هم از بین میرفت.
اصول ارزش گذاری اموال فکری
همانطور که پیشتر نیز گفته شد، با توجه به اینکه وابستگی به اموال فیزیکی و مادی روز به روز کاهش یافته و دنیا در حال حرکت در مسیری است که در آن دانش و استعداد نقش کلیدی داشته و به کمک آنها میتوان اموال غیرمادی مورد نیاز را خلق کرد، ارزش گذاری اموال غیرمادی روز به روز مهمتر میشود؛ شیوههای مختلفی نیز برای این ارزش گذاری پیشنهاد شده است.
معمولاً نقش عامل انسانی در میزان ارزش شرکتها نادیده گرفته شده و بسیار ناچیز است. حتی امروزه نیز در دفاتر حساب شرکتها و گزارشات سالانه آنها ارزش اموال، تسهیلات، تجهیزات و سرمایه شرکت به تفکیک مشخص نمیشود؛ بلکه حاصلجمع آنها ذکر میشود. بنابراین یک سرمایهگذار از دفاتر شرکت نمیتواند پی به ارزش شرکت در حوزه نرمافزار ببرد. برای مثال ارزش شرکت SAP در گزارش سال ۲۰۰۳، ۳/۶ میلیارد یورو برآورد شده بود، اما در بازار قیمت هر سهم ۱۰۰ یورو و تعداد سهام شرکت ۳۱۵ میلیون سهم بود. در نتیجه ارزش واقعی این شرکت ۵/۳۱ میلیارد یورو بوده که دلیل این تفاوت – ۲/۲۵ میلیارد یورو – عدم محاسبه اموال غیرمادی شرکت و سهامدارن است. ارزش برند SAP در سال ۲۰۰۴، ۸/۶ میلیارد یورو برآورد شد که از همینجا میتوان ارزش دانش و نرمافزار شرکت را محاسبه کرد: ۴/۱۸ میلیارد یورو.
نمونههای بسیاری از شرکتهای با تکنولوژی بالا را میتوان ذکر کرد که در گزارش سالانه آنها ارزش اموال غیرمادی به تفکیک و با جزئیات مشخص نمیشود.
اموال غیرمادی شرکت SAP یا هر شرکت دانش بنیان دیگر شامل موارد ذیل میشود:
- دانش فنی پرسنل،
- مهارت نیروی فروش،
- دانش مدیران در حوزه کسب و کار،
- ارزش علامت تجاری،
- شهرت و اعتبار شرکت،
- ارزش سرمایه نرمافزاری شرکت.
شهرت یک شرکت نرم افزاری از طریق تبلیغات و ارزش نرمافزار آن با تحقیق و توسعه افزایش مییابد. این دو مؤلفه (شهرت و نرمافزار) جزو اموال فکری شرکت در نظر گرفته میشود؛ البته نرم افزار متن باز از این قاعده مستثنی است.
ارزش گذاری اموال فکری زمانی ضرورت پیدا میکند که خط تولید نرم افزار خریداری شده یا انتقال داده میشود؛ اما اگر کل شرکت انتقال داده شود در این صورت نیروی کار را نیز میتوان ارزش گذاری کرد. گاهی کل اموال غیرمادی در سبدی به نام «سرقفلی» قرار داده میشود اما بدیهی است در چنین ظرف مشبکی تنوع و اهمیت اجزا نادیده گرفته میشود.
ارزش گذاری اموال فکری زمانی ضرورت پیدا میکند که خط تولید نرم افزار خریداری شده یا انتقال داده میشود
ارزش اموال فکری بستگی به درآمد حاصل از آنها در طول زمان دارد
در این روش میزان درآمد اکتسابی در آینده پیشبینی شده و با نرخ مناسبی تنزیل میشود تا ارزش آن در حال حاضر مشخص شود. در این مقاله صرفاً بر روی نرمافزار که شاید بزرگترین بخش از اموال فکری هستند، تمرکز میشود.
مالکیت نرم افزار به شرکتهای تولیدکننده نرمافزار ختم نمیشود. بسیاری از کسبوکارهای جدید نرمافزار طراحی میکنند، میخرند، ارتقا میدهند و از طریق آنها سود کسب میکنند. مثلاً بانکها بدون نرمافزار نمیتوانند به حیات خود ادامه دهند، زیرا در اینصورت امکان تشخیص موعد پرداخت مشتریان و میزان بدهی آنها وجود ندارد. کار تولیدکنندگان نیز بدون نرمافزار مختل میشود: کار طراحی، تخصیص منابع، مدیریت جریان کار، فرستادن محصولات به خارج از کشور همگی وابسته به نرمافزار است. شرکتهایی که از نرمافزارهای بهتری استفاده میکنند، سودآوری بیشتری خواهند داشت.
پیشبینی درآمد
در ابتدا این نکته را متذکر میشویم که برای پیش بینی درآمد حاصل از نرم افزار ، ابتدا باید طول عمر نرمافزار محاسبه شود. در سال ۲۰۰۰ در کشور امریکا میزان درآمد حاصل از فروش نرمافزار به مشتریان جزء ۱۲۰ میلیارد دلار بود. شرکتها نیز ۱۲۸ میلیارد دلار صرف ارتقای نرمافزارهای داخلی خود کرده بودند.
از آنجا که ما در این مقاله به ارزیابی نرمافزار از نقطه نظر فروشنده میپردازیم، میدانیم زمانیکه نسخه جدیدی از یک نرمافزار آماده شده و روانه بازار میشود، فروش نرمافزار قبلی به شدت کاهش مییابد. این موضوع به این دلیل است که هزینه کپی و بستهبندی نرمافزار بسیار ناچیز است، از لحاظ اقتصادی به صرفه نیست فروش نسخه قدیمی نرمافزار ادامه پیدا کند و این ویژگی اموال غیرمادی است؛ حتی در میان اموال غیرمادی نیز نرمافزارها در این خصوص منحصر به فرد هستند.
اگر یک کتاب دو سال پیش نوشته و چاپ شده باشد، در حال حاضر حتی اگر به ۸۰% قیمت جدید فروخته شود، باز هم مقرون به صرفه خواهد بود؛ در حالیکه چنین فرضی برای فروشندگان نرمافزار هیچ مفهومی ندارد. حمایت از نسخههای قدیمی به منظور حفظ مشتریان موجود که تمایلی به آپدیت نرمافزار خود ندارند یا نمیتوانند، برای فروشنده ضرر خالص است. این عدم تطابق برای مشتری نیز مشکلساز است و نرمافزار کارایی لازم را برای آنها نیز نخواهد داشت. به علاوه اگر اشکالات موجود (bug) در نسخه جدید برطرف شده باشد، مطمئناً نسخه جدید بهتر خواهد بود.
استفاده از نرمافزارهای متروک و از کارافتاده برای خریدار نیز هزینههایی را در پی دارد و پس از مدتی مجبور است مبلغی را صرف به روز کردن نرمافزار خود کند. از آنجا که بسیاری از کدها و کارکردهای نرم افزار قبلی در نسخه جدید به کار گرفته میشود، لذا بخشهای اساسی و مهم نرمافزار بین ۱۰ تا ۱۵ سال عمر کرده و به تبع درآمدزا خواهد بود.
برای پیشبینی درآمد شرکتی که از یک نرمافزار استفاده میکند و به تبع آن ارزش گذاری نرم افزار ، میتوان وضعیت شرکت را در دوران قبل از استفاده از نرمافزار و پس از نصب آن مقایسه و با توجه به تفاوت این دو دوره سود حاصل از نرمافزار را محاسبه کرد. قاعدتاً پس از نصب نرمافزار کارایی شرکت افزایش مییابد؛ بدین صورت که میزان تولید محصول یا کیفیت ارائه خدمات یا مهارت نیروی کار افزایش مییابد یا هزینه تولید محصول کمتر میشود لذا ارزش گذاری با توجه به این موارد و پس از کسر هزینههای مربوط به نرمافزار صورت میگیرد.
امروزه به ندرت اتفاق میافتد یک شرکت مجموعهای از نرمافزارهای جدید را نصب کند. معمولاً نسخههای موجود خود را ارتقا میدهد یا گاهی یک زیرسیستم اصلی را تعویض میکند. معمولاً سیستمهای بزرگ و پیچیده را به قسمتهایی تقسیم میکنند که هر کدام را میتوان به عنوان سیستم کوچکتر به نام زیر سیستم در نظر گرفت. برای مثال یک شرکت تجاری ممکن است دارای قسمتها، یا بخشهایی مانند بخش خرید، بخش فروش، بخش بازاریابی و غیره باشد که هر کدام از بخشها یا قسمتها یک زیر سیستم را در درون سیستم شرکت تشکیل میدهد. حال برای محاسبه سود حاصل از این نرمافزارهای اضافه شده میتوان عملکرد شرکتی که نرمافزارهای خود را ارتقا داده با شرکتی که هنوز این کار را انجام نداده مقایسه کرد؛ هرچند یافتن دو موردی که قابل مقایسه باشند دشوار است.
در شرکتهای بزرگ نمیتوان درآمد قابل انتساب به نرمافزار را با قطعیت تعیین کرد، چرا که مجموعهای از عوامل برای تولید درآمد به کار گرفته میشود: هزینههای معمول اجرایی، مخارج صرف شده برای ایجاد اموال فکری مانند نگهداری و ارتقای نرمافزار، تبلیغات محصولات جدید و شناساندن شرکت، کنترل کیفیت و غیره. راهحلی که در این موارد به ذهن میرسد آن است که مدیریت شرکت سود قابل انتساب به هر بخش را مشخص کند.
درآمد و سود ناخالص
معمولاً تولید محصول هزینهبر بوده و همین عامل باعث کاهش درآمد کسبوکارهاست و این یکی از وجوه تمایز نرم افزار و اموال فکری با اموال مادی است. در هر دو مورد، ساخت اولین واحد از یک محصول بیشترین هزینه را به خود اختصاص میدهد؛ اما در اموال مادی، هر تولید متوالی دیگر نیز هزینهبر است. در حالیکه در نرمافزار و سایر اموال غیرمادی این هزینه بسیار ناچیز است و اگر توزیع نرمافزار از مجرای اینترنت صورت گیرد، عملاً فروش آن هیچ هزینه مستقیم و افزایشیای نخواهد داشت.
با توجه به توضیحات بالا، باید گفت درآمد پس از کسر بهای تمام شده کالای فروش رفته، معادل سود ناخالص خواهد بود که هر دو شاخصهای مالی متداولی هستند. در حالیکه این شاخصها چندان راهگشا نیستند و نمیتوانند مبنای تصمیمگیری برای سرمایهگذاری قرار گیرند؛ اما اگر هزینههای تحقیق و توسعه ابتدایی، نگهداری، بهای تمام شده کالای فروش رفته بین هر واحد محصول سرشکن شود، در این صورت میتوان بر اساس مابهالتفاوت حاصل تصمیمگیری کرد. البته این اقدامات مستلزم آن است که میزان فروش آینده پیشبینی شود. حال آنکه در اموال فکری هرینههای اولیه نادیده گرفته میشود و بر اساس ارزش گذاری اولیه نرمافزار میتوان مشخص کرد آیا سرمایهگذاری موفقیتآمیز بوده یا خیر؟
از آنجا که ما در این نوشتار به ارزش گذاری نرمافزار موجود میپردازیم، هزینههای تحقیق و توسعه ابتدایی و هزینه ناچیز تولید نادیده گرفته میشود. لذا درآمد حاصل از فروش هر نرمافزار سود به حساب میآید؛ البته هزینههایی لازم است تا نرم افزار قابل فروش باقی بماند. بنابراین میتوان اینگونه نتیجه گرفت مخارجی که صرف امکانسنجی نرمافزار میشود، هزینه است؛ در حالیکه هزینههای صورت گرفته برای ارتقای نرمافزار نوعی سرمایهگذاری است.
تقویت نرم افزار
پیش از آنکه بتوانیم از میزان درآمد حاصل از نرم افزار به میزان ارزش آن پی ببریم، باید ببینیم در طول زمان چه اتفاقاتی برای نرمافزار رخ میدهد که میتواند درآمدزا باشد. اینجاست که بین نرمافزار و سایر اموال غیرمادی تفاوت اساسی وجود دارد. کتاب و موسیقی ضبط شده در طول حیات خود ثابت و بدون تغییر میمانند، در حالیکه تعداد اندکی از نرمافزارها اینگونه هستند.
شیوههایی که در آنها اموال مادی و غیرمادی بهتدریج مستهلک میشوند، بر این فرض استوارند که یک کالا در طول زمان به دلایل مختلف کم ارزش میشود؛ از جمله به دلیل فرسوده شدن، منسوخ شدن و از رواج افتادن یا تغییر سلیقه مشتری. با این وجود اگر نرمافزار خوب نگهداری شود، از رده خارج نشده و کماکان باارزش باقی میماند. به طور معمول طول عمر یک نرمافزار اصلی (نه نسخههای جدید آن) بین ۱۰ تا ۱۵ سال است که احتمالاً به تدریج این مدت نیز افزایش مییابد تا زمانیکه نرمافزار جدیدی جایگزین آن شود. نسخه جدید معمولاً زمانی ارائه میشود که ایجاد یک سری تغییرات ضرورت یابد و در سوی دیگر، کاربران تحمل کار کردن با نسخههای آپگرید شده را داشته باشند.
هزینه نگهداری نرمافزارهای یک شرکت حدود ۶۰% تا ۹۰% کل هزینههاست که در این میان نرمافزارهای نظامی کمترین سهم را دارند؛ شاید به این دلیل که کاربران نرمافزارهای نظامی نمیتوانند خیلی اعتراض کنند و بازخوردهای آنها نیز معمولاً نادیده گرفته میشود؛ لذا نتیجه این خواهد بود که این نرمافزارها پس از مدتی باید کلاً تعویض شوند.
بهبود و ارتقای مستمر
انواع نگهداری از نرم افزار عبارتند از:
1. نگهداری اصلاحی
تغییراتی که روی تولیدات نرم افزاری بعد از تحویل سیستم برای رفع خطاهای کشف شده انجام میگیرد؛ شامل همه تغییراتی است که موجب حذف فعالیتهای معیوب در نرم افزار میشود. اگر این اصلاحات به درستی صورت نگیرد، محصول در بازار پذیرفته نشده و چندان عمر نخواهد کرد. مقالات بسیاری در خصوص اهمیت نرمافزار باکیفیت نوشته شده است؛ مانند اینکه میتوان مکرراً از آن استفاده کرد و نرمافزار طول عمر بیشتری خواهد داشت. لکن در این مقالات تأکید بر کاهش هزینههاست تا کسب درآمد.
2. نگهداری تطبیقی
تغییراتی است که روی تولیدات نرم افزاری بعد از تحویل، برای حفظ قابل استفاده بودن برنامه در محیطهای تغییر یافته یا در حال تغییر صورت میگیرد؛ شامل تغییرات مورد نیاز برای تطبیق سیستم با محیطی که سیستم باید در آن فعالیت داشته باشد، برای مثال تغییرات یک سیستم برای کار آن بر روی پلتفرم سخت افزار جدید، سیستم عامل جدید. مقررات دولتی نیز ممکن است ایجاد چنین تطابقاتی را ایجاب کند، مثلاً قوانین مالیاتی جدید بر نرمافزارهای مالی تأثیر میگذارد یا تکنولوژی جدید پزشکی بر نرمافزارهای مربوطه در این زمینه.
3. نگهداری تکاملی
تغییراتی است که روی تولیدات نرم افزاری بعد از تحویل برای بهبود کارایی یا قابل تعمیر بودن صورت میگیرد و تغییراتی که از جانب درخواستهای کاربر سازماندهی میشود؛ برای مثال میتوان به مواردی چون اضافه کردن، حذف و اصلاح توابع، بازنویسی مستندات، بهبود کارایی یا بهبود سهولت استفاده اشاره کرد. حالت ایدهآل این است که عملیات تعمیر نباید قابلیت اطمینان و قابلیت تعمیر را کاهش دهد یا ساختار اجزای سیستم را به هم زند، در غیر این صورت تغییرات آینده به تدریج مشکلتر و فاصله هزینه پیاده سازی آنها بیشتر و گرانتر خواهد شد .
نگهداری اصلاحی معمولاً ۱۰%، نگهداری تطبیقی ۱۵% تا ۵۰% و نگهداری تکاملی نیمی از هزینههای نگهداری را تشکیل میدهد. پرسنل بازاریابی معمولاً نتایج نگهداری تکاملی خود را در صورتیکه جدید و مبتکرانه باشد، بازتاب گسترده میدهند حتی اگر کارکرد اصلی نرمافزار تغییری نکرده باشد.
اگر یک سیستم خوب طراحی شده باشد، ارتقای آن راحتتر و سریعتر است، اما در عین حال هزینه بیشتری را باید صرف نگهداری آن نمود که ماحصل این نگهداری طول عمر بیشتر سیستم است. برعکس اگر طراحی نرمافزار ضعیف باشد امکان نگهداری مؤثر وجود نخواهد داشت و تبعاً عمر نرمافزار کوتاه خواهد بود.
دلایلی که باعث میشود عرضهکننده محصول خود را در بالاترین کیفیت ممکن نگهدارد، متعدد است از جمله اینکه با هر نسخۀ جدید، محصول بهتر شده و آسانتر به فروش میرسد. برای اینکه بتوان مشتریها را حفظ کرد، نگهداری مستمر یک ضرورت است. میدانیم که حفظ مشتری قدیمی آسانتر از به دست آوردن یک مشتری جدید است؛ بنابراین با نگهداری نرمافزار میتوان درآمد ثابتی را کسب نمود.
اطلاعات لازم برای انواع نگهداری از نرمافزار را چگونه میتوان کسب کرد؟
- نگهداری اصلاحی با توجه به بازخورد کاربران و مشتریان انجام میگیرد. یک گروه متخصص گزارشات واصله در مورد خطاها را ثبت میکند. آنهایی که به دلیل سوءتفاهم یا عدم آشنایی کامل با نرمافزار بوده حذف میشود، آنهایی که همگی یک خطای خاص را گزارش میدهند ادغام میشوند، در صورت امکان کاربران را راهنمایی میکنند، اگر امکانپذیر باشد روش دیگری را برای اجتناب از مشکل تعبیه میکنند [مثلاً اگر کلید Tab بر روی یک صفحه کلید کار نمیکند، یک راه احتمالی، استفاده از Ctrl-l است که همان کد را منتقل میکند]. آنچه که باقی میماند برای کادر مهندسی ارسال میشود.
- نگهداری تطبیقی اطلاعات لازم در این خصوص از مراجع تدوین استاندارد، فروشندگان سختافزار، فروشندگان نرمافزاری که محصولات آنها در تعامل با نرمافزار موضوع نگهداری است و از منابع دولتی به دست میآید. عرضهکنندگان بزرگ نرمافزار در سایر سازمانها و نزد سایر فروشندگان نمایندگانی دارند که از راهنماییهای آنها استفاده میکنند. تشخیص تطابقات لازم برای حفظ مشتریان نیاز به مهارت بالایی دارد.
- نگهداری تکاملی،همواره با اندک تغییری در نرمافزار میتوان کاربری جدیدی را به آن اضافه کرد؛ اطلاعات به دست آمده از نیروی فروش بهترین منبع در این خصوص است. توجه به بازخوردها پس از تحویل نرمافزار بسیار مهم است؛ هر چند غالباً نادیده گرفته میشود. البته آپدیتهای تکاملی نباید کاربران را اذیت کند، بدین معنی که کاربری نرمافزار آنقدر گسترده شود که کاربران سردرگم شوند. پس این نوع نگهداری باید با توجه به انتظارات کاربران انجام گیرد و نه برای متقاعد کردن برنامهنویس.
ارزیابی اقدامات جانبی و تاثیر آنها بر ارزش نرمافزار
دو روش عمده برای ارزیابی تاثیر تحقیق و توسعه و نگهداری بر ارزش نرمافزار در طول زمان عبارتاند از:
- این اقدامات را در کنار یکدیگر قرار داده و ارزش آنها را در طول زمان با هم جمع کنیم،
- خروجی یعنی خود نرمافزار را ارزیابی کنیم.
در روش اول باید تحقیق و توسعه را در طول حیات آن ارزشگذاری کنیم، در اختراعات این ارزیابی تا زمان اعتبار اختراع صورت میگیرد. در سایر موارد طول دوره ارزیابی بستگی به مدت حمایت از اسرار تجاری، کپیرایت و غیره دارد. تمام اقداماتی که در زمان امکان سنجی نرم افزار و پیش از آنکه نرمافزار به درآمدزایی برسد، صورت گرفته، باید منظور شود که میتوان آن را در قسمت تحقیق و توسعه گنجاند. استفاده از این روش مستلزم محاسبه دقیق اقدامات اولیه، تعیین بازه زمانی برای ارزیابی تحقیق و توسعه و نگهداری و پیشبینی تاثیر هر یک از این موارد بر درآمدزایی است. بنابراین اطلاعات زیادی لازم است، اطلاعاتی که تا زمان بهبود نرمافزار به دست آوردن آن دشوار است.
در روش دوم، خروجی یعنی نرمافزاری که در نتیجه این اقدامات به دست آمده ارزیابی میشود که این ارزیابی به طرق مختلف صورت میگیرد. لکن در این روش صرفاً نرمافزار نهایی ملاک قرار میگیرد و برای ارزشگذاری نمونه اولیه نرمافزار کارایی نخواهد داشت.
منظور از محصول خروجی، نرمافزاری است که در نتیجه اقدامات به دست آمده ارزیابی میشود
ارزش مربوط به کد قدیمی نرمافزار و کد جدید
یک نظر مطروحه در این زمینه آن است که آخرین کد بیانگر آخرین نوآوری صورت گرفته است و بنابراین ارزش آن بیشتر است. مخالفان اما معتقدند کد اولیه است که کارکرد اصلی نرمافزار را مشخص میکند. معمولاً کدهای جدید در خلال نگهداری و برای رفع خطاهایی که پیشبینی نشده بودند، اضافه میشود. لذا ارزش این کدها از آن روست که کار کردن با نرمافزار را آسانتر و مطمئنتر میسازد وگرنه کارکرد اصلی نرمافزار که مشتریان با توجه به آن اقدام به خرید میکنند، توسط کد اصلی مشخص میشود. اگر کارایی اصلی مشتری را راضی نکند، قطعاً به سراغ نسخههای بعدی نخواهد رفت؛ حتی اگر در کد جدید انطباقها و تکاملاتی صورت گرفته باشد.
از آنجا که کد جدید و قدیمی هر یک مزایا و معایبی دارد، برای ایجاد تعادل میتوان ارزش یکسانی را به هر کدام اختصاص داد.
کد نرمافزار تا چه اندازه میتواند بزرگتر شود؟
نگهداری نرمافزار به منظور تقویت آن خواهناخواه موجب بزرگتر شدن اندازه نرمافزار میشود، امّا تا چه میزان؟
Hennessy و Patterson معتقدند کد نرمافزار در هر سال میتواند یک و نیم تا دو برابر بزرگتر شود؛ به عبارت دیگر به تعداد خطوط آن اضافه شود که به نظر منطقی نیست.
Phil Bernstein از شرکت مایکروسافت پیشنهاد میکند کمتر از ۳۰% نسخه جدید نرمافزار دربرگیرنده کد جدید باشد؛ چون در غیر این صورت (بیش از ۳۰%) نمیتوان به نسخه جدید اعتماد کرد و هزینهها نیز بیرویه افزایش پیدا میکند. Fred Brook نیز در مقالات خود بر لزوم وجود یک سقف در این خصوص تاکید میکند. وی معتقد است اگر نرمافزار بیش از اندازه بزرگ شود، امکان پشتیبانی از آن در عمل وجود نخواهد داشت. به اعتقاد David Roux که به نظر منطقی نیز میآید، رشد نرمافزار در هر نسخه باید معادل اندازه نمونه اولیه منتشر شده باشد. در این صورت اگر نمونه اولیه را نسخه یک بنامیم – البته در عمل همیشه اینگونه نیست – رشد نسخه دو نسبت به نسخه یک ۱۰۰%، نسخه سه نسبت به نسخه دو ۵۰%، نسخه چهار نسبت به نسخه سه ۳۳% و الی آخر خواهد بود. بنابراین میزان کد جدید در نسخه دو ۵۰%، در نسخه سه ۳۳% و در نسخه چهار ۲۵% خواهد بود. اگر از نظر Bernstein پیروی کنیم تنها نسخه سه مفید و کاربردی خواهد بود.
پاک سازی کدهای نرم افزاری
در طول نگهداری نرم افزار، برخی کدها پاکسازی میشود بدین معنی که حذف شده و کد جدیدی جایگزین آن میشود. به ندرت اتفاق میافتد کدی حذف شود ولو اینکه عملاً هیچ کاربردی نداشته باشد، معمولاً به حال خود رها میشود و کد دیگری جایگزین آن میگردد؛ چرا که در سالهای اخیر مشکلی از نظر حافظه سیستمها وجود ندارد. دلیل این امر آن است که حذف کد با ریسک بالایی مواجه است! شاید یک کاربر هنوز از کد کنار گذاشته شده استفاده میکند. همچنین زمانی که لازم است یک کد حذف شود، معادل زمانی است که برای نوشتن کد جدید لازم است. غالباً در هر سال ۵% کدها حذف میشود و ۸% آن مصرانه با اینکه در عمل به کار نمیآید، حفظ میشود.
به نظر نگارنده مقاله پیش رو، اگر شرایط خاصی پیش نیاید، در هر سال ۵% کد باید جایگزین شود و چه بسا بهتر است بازنویسی شود تا اینکه حذف گردد. هر چند در صورت بازنویسی ممکن است کاربران حاضر نتوانند خود را وفق دهند.
بنابراین با توجه به اضافه شدن کدهای جدید از یک سو و حذف کدهای قدیمی از سوی دیگر، میتوان اینگونه نتیجه گرفت که اگر نسخههای جدید نرمافزار هر هجده ماه یک بار ارائه شود، در این صورت میزان کد جدید در نسخه دو ۵۳%، در نسخه سه ۷۱% و در نسخه چهار ۷۹% خواهد بود.
هزینه نگهداری
هزینه نگهداری معمولاً بیشتر از هزینه افزودن کدهای جدید است. با اضافه شدن کدهای جدید در هر نسخه، پرسنل باید از این کدها نگهداری کنند؛ بنابراین به زعم Brooks هزینه نیروی کار نیز افزایش پیدا میکند. فاکتوری که از اهمیت به سزایی برخوردار بوده اما اندازهگیری آن تقریباً غیرممکن است، کیفیت نیروی کاری است که وظیفه نگهداری از نرمافزار را بر عهده دارد. اگر برنامهنویسان اصلی به دلایل مختلف از جمله ارتقا رفته باشند و نگهداری از کدها به اشخاص مبتدی واگذار شده باشد، در این صورت کارایی لازم را نخواهند داشت و چه بسا مواردی را به عنوان خطا معرفی کنند در حالی که واقعاً خطا نبوده. هزینه تحمیل شده از ناحیه نیروی کار بیتجربه بسیار بالاست.
کاهش بهای نرم افزار
تجربه نشان داده است که قیمت نرمافزار معمولاً ثابت باقی میماند؛ با اینکه روز به روز بر کدهای آن افزوده شده و بزرگ میشود تا جایی که افزایش قیمت بسیار کمتر از نرخ تورم است. برای این موضوع چند دلیل وجود دارد: از نظر مشتری در نسخه جدید، کارایی دیگری اضافه نمیشود و تنها استفاده از آن را آسانتر و مطمئنتر میسازد؛ کاری که از همان ابتدا باید انجام میشد. بنابراین قیمت یک نرمافزار تا زمانی که کارایی آن تغییر نکرده ولو اینکه بهبود یافته باشد، ثابت باقی میماند. همچنین به منظور به دست آوردن سهمی از بازار قیمت واقعی را کنترل شده نگه میدارند به این امید که زیانهای اولیه با به دست آوردن سود بیشتر در آینده جبران شود.
پس از تبدیل شدن به قدرت برتر در مورد یک کالا، فروشندگان میتوانند قیمتگذاری کنند و قیمت هر واحد کالا را به منظور جبران زیانهای اولیه افزایش دهند – با این حال فروشندگان عمده لزوم رعایت یک سقف در این خصوص را درک کردهاند – وقتی فروشندهای قیمت نرمافزار شناخته شده خود را افزایش میدهد، انگیزهای میشود برای سایر رقبا چرا که اگر قیمت این نرمافزار پایین باقی بماند و افزایش نیابد دیگران انگیزهای برای ورود به رقابت نخواهند داشت.
برخی محصولات به طرق مختلف به فروش میرسند: خردهفروشی یا ارائه مستقیم به سازندگان تجهیزات اصلی (شرکت یا سازمانی که کامپیوترها و تجهیزات دستگاه جانبی را به منظور استفاده آنها در محصولات و تجهیزاتی که بعداً به مشتریان فروخته خواهد شد خریداری میکند). در این صورت همه کانالهای فروش باید لحاظ شود تا بتوان قیمت واقعی فروش را به دست آورد.
در مجموع باید گفت هر چه مدل سادهتر باشد، قابلاعتمادتر خواهد بود؛ اصلی که به تیغ اوکام معروف است. در قرن ۱۴ میلادی ویلیام اوکام اصلی را مطرح کرد که به نام اصل «تیغ اوکام» شناخته شد. طبق این اصل، هر گاه درباره علت بروز پدیدهای دو توضیح مختلف ارائه شود، آن توضیحی که پیچیدهتر باشد، احتمال بروز اشتباه بیشتر است و بنابراین در شرایط مساوی توضیح سادهتر، احتمال صحیح بودنش بیشتر است. بررسی بسیاری از نرمافزارها نشان میدهد قیمت آنها در طول زمان ثابت باقی مانده با اینکه قابلیتها و اندازهٔ آنها چندین برابر شده است.
نگهداری از نرمافزارهای سازمانی
نرمافزار سازمانی مانند مدیریت رابطه با مشتریان که به صورت نرمافزار کاربردی سازمانی (EAS) نیز نامیده میشود، نرمافزار رایانهای است که در سازمانهایی مانند شرکتهای تجاری یا دولت مورد استفاده قرار میگیرد؛ درست برعکس نرمافزار انتخابی توسط یک شخص برای اهداف شخصی.
متداولترین استراتژی ارائهدهندگان نرمافزارهای سازمانی در خصوص پشتیبانی از محصولات خود این است که متعهد میشوند نسخههای بعدی نرمافزار را به مشتریان حال حاضر خود تحویل دهند، مادام که هزینه نگهداری سالانه آن را پرداخت کنند. چنین طرحی برای مشتری نیز جذاب است، چرا که میتواند مخارج آینده خود را پیشبینی کند. هزینهای که از مشتریان برای ارائه خدمات پس از فروش دریافت میشود، معمولاً ۱۵% قیمت فروش محصول اصلی است. سهم کوچکی از این مقدار برای پشتیبانی فروش اختصاص مییابد، بخشی که سعی میکند مشتریان را با نسخههای جدید همگام سازد. بخش بزرگتری از آن برای ارائه خدمات از طریق مرکز تماس (Call – Center) اختصاص مییابد و مابقی حدود ۶ تا ۱۰ درصد در اختیار مهندسین قرار میگیرد تا بتوانند نگهداریهای لازم را انجام دهند. همچنین از محل این درآمد میتوان موجبات بهبود نرمافزار را فراهم کرد تا در نتیجه آن مشتریان جدیدی جذب شود.
نگهداری از نرمافزارهای بستهبندی شده (Shrink – Wrapped)
استراتژیای که در خصوص این نرمافزارها به کار میرود، متفاوت از نرمافزارهای سازمانی است. در اینجا نسخهای از نرمافزار با قیمت حدود ۵۰۰ دلار به مشتری فروخته میشود و مشتری تا زمانی که نرمافزار پاسخگوی نیازهای وی باشد، آن را نگه میدارد. زمانی که نسخه جدید ارائه میشود، تولیدکننده سعی میکند مشتری را توجیه نماید تا نسخه جدید را جایگزین نسخه مورد استفاده کند. برای این منظور بازاریابها بر نوآوریهای صورت گرفته در نسخه جدید تأکید میکنند.
معمولاً قیمت نسخه جدید همانند نسخه قبلی است، مگر اینکه کارایی جدید و مهمی به آن اضافه شود. حال برای اینکه مشتریان حاضر را راضی به خرید نسخه جدید کنند، آن را به نصف قیمت میفروشند. البته مشتریان هم میتوانند از این به روز رسانیها استفاده نکنند تا زمانی که نسخه مورد استفاده آنها دیگر کارایی نداشته و مجبور شوند نسخه جدیدی را خریداری کنند. مشتریانی که با آنها قراردادی در خصوص نگهداری از نرمافزار امضا نشده، توقعی در خصوص ارائه خدمات از طریق مرکز تماس و غیره ندارند و این خود باعث کاهش هزینهها میشود.
در آخر باید گفت الگوی هزینه و درآمد نرمافزارهای سازمانی و بستهبندی شده مشابه است. اما نرمافزارهای درون سازمانی از الگویی منحصر به فرد تبعیت میکنند.
درآمد حاصل از نرم افزار
گفتیم درآمد حاصل از فروش هر نسخه نرمافزار ثابت است، بنابراین افزایش درآمد زمانی اتفاق میافتد که فروش بیشتر شود. افزایش فروش نیز تا زمانی امکانپذیر است که بازار از محصولات مورد نظر اشباع شود.
متداولترین شیوه برای پیشبینی میزان فروش آینده عبارت است از به کارگیری اطلاعات مربوط به محصول قبلی، تعداد کسب و کارهایی که به محصول جدید نیاز دارند، تعداد مشتریانی که از عهده خرید محصول برمیآیند و …
اگر محصولی فقط افراد متخصص را به خود جذب کند، در این صورت باید ویژگیهای بیشتری به آن اضافه شود؛ نسبت به محصولی که افراد بیشتری از اقشار مختلف را به خود جذب کرده است. چنین نرمافزاری باید به گونهای طراحی شود که کار کردن با آن آسان بوده و خیلی گیجکننده نباشد.
نفوذ در بازار
اقتصاددانان سرعت نفوذ محصول جدید در بازار را مدلسازی کردهاند. اما این مدلها زمانی به کار میآید که بازار نامحدود بوده و هیچگاه اشباع نشود، در حالی که در عمل همواره موانع و محدودیتهایی بر سر راه رشد و توسعه وجود دارد.
محصولی که مؤثر بوده و خوب بازاریابی شده را میتوان از طریق اینترنت به سرعت به مشتریان شناساند. بدین معنی که توزیع نرمافزار و تحویل آن به مشتریان به سرعت و سهولت انجام میگیرد. در نتیجه نفوذ در بازار ظرف مدتی کوتاه امکانپذیر است.
از آنجا که قیمت تمام شده نرمافزار ناچیز است، درآمد حاصل از فروش تقریباً مساوی است با سود ناخالص. همیشه هزینههای اجرایی از جمله هزینه نگهداری نرمافزار، بازاریابی، تبلیغات، جذب سرمایه و غیره از محل سود ناخالص تأمین میشود چرا که بدون این هزینهها درآمدی ایجاد نمیشود لذا سود حاصل از نرمافزار اولیه به دلیل وجود این هزینهها کاهش مییابد.
هزینه مربوط به سرمایه
غالباً روال بدین گونه است که سهامداران سرمایه اولیه را فراهم میکنند، زمانی که شرکت به مرحله فروش محصولات رسید، آنگاه سرمایهگذاران سهم خود را مطالبه میکنند؛ اعم از سود سهام یا عواید حاصل از کسب و کار که برای سرمایهگذاری مجدد کنار گذاشته شده است. از آنجا که در صورت تقسیم سود مالیات بر درآمد آن باید پرداخت شود، به منظور اجتناب از پرداخت مالیات بهتر است تقسیم سود به حداقل برسد و بیشتر صرف رشد و توسعه شرکت گردد و در این حوزه سرمایهگذاری شود.
در صنعت نرمافزار معمولاً سرمایه کمی مورد نیاز است. سرمایهگذاران خطرپذیر سرمایه اولیه برای برنامهریزی، طراحی و توسعه را پرداخت کرده سپس با فروش سهام خود سود به دست میآورند.
در مجموع این شرکت است که تصمیم میگیرد سود خود را صرف توسعه شرکت بکند یا سود سهام سهامداران را پرداخت کند یا میزان سهام آنها را افزایش دهد. معمولاً شرکتهای نرمافزاری سرمایه خود را صرف توسعه و بازاریابی نرمافزار میکنند در نتیجه مالیاتی نیز بدان تعلق نمیگیرد.
نتیجهگیری
در مقام جمعبندی باید گفت نگهداری از نرمافزار اگرچه هزینهبر است، اما ارزش هزینه کردن را دارد. نگهداری مستمر نرمافزار را به روز نگه میدارد. به نظر نگارنده هزینههای مربوط به نگهداری نباید در مخارج مربوط به تحقیق و توسعه منظور شود، بلکه باید جزو بهای تمام شده کالای فروش رفته محاسبه شود؛ زیرا در این صورت متوجه میشویم فعالیتهای تحقیق و توسعه شرکت دقیقاً چه بوده، همچنین مشخص میشود شرکت برای بقای محصولات خود تلاش میکند. اما علم حسابداری هنوز آمادگی پذیرش چنین تغییری را ندارد.
اگر اقدامات نگهدارنده از کیفیت بالایی برخوردار باشد، با درآمد به دست آمده از این طریق شرکت از مدل فروشنده به مدل ارائه دهنده خدمت تغییر مییابد. مدل خدماتی برای شرکتهای بزرگ و باثبات از جذابیتهای بیشتری برخوردار است، زیرا در غیر این صورت باید دائماً محصولات جدید ارائه کنند تا بتوانند فروش خود را در سطح مطلوب نگهدارند. همچنین از طریق اقدامات نگهدارنده میتوان وقفهای را که معمولاً در روند نوآوری شرکتها ایجاد میشود، پر کرد.
بهبود مستمر نرمافزار منحصر به برنامهنویسان نمیشود بلکه نیروی فروش و بازاریاب نیز باید اطلاعات لازم را برای انواع نگهداری فراهم کنند.
منابع:
- نوشته جیو واندرهولد استاد دانشگاه استانفورد-2007