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