引言
在当今数字时代,企业越来越多地依赖于可靠、高性能的服务器来支持其业务流程。拥有和维护自己的服务器基础设施可能是一项昂贵的投资。因此,租用服务器已成为许多企业的一个有吸引力的选择。租用服务器可以提供许多好处,包括灵活性、可扩展性、安全性、托管支持和成本效益。在考虑租用服务器时,至关重要的是要了解涉及的财务因素,以便进行明智的预算编制和成本优化决策。
预算编制
在预算编制时,您需要考虑以下因素:
1. 硬件成本
这是租用服务器的最大费用之一。硬件成本将根据您所需的服务器类型和规格而有所不同。
2. 带宽成本
带宽是连接服务器与互联网或其他网络的速度。更高的带宽速度将产生更高的成本。
3. 软件成本
除了硬件成本之外,您还需要考虑运行服务器所需的任何软件的成本。这可能包括操作系统、数据库和应用程序。
4.托管费用
托管提供商将为您提供的服务收取费用。这些服务可能包括服务器管理、监控和支持。
5. 维护成本
服务器需要定期维护,以确保其正常运行。这些成本可能包括维修、升级和更换零件。
成本优化策略
在制定预算后,您可以采取以下策略来优化租用服务器的成本:
1. 选择正确的服务器类型
对于您的业务需求而言,选择合适的服务器类型至关重要。避免为不需要的额外功能付款。
2. 选择合适的托管提供商
比较不同托管提供商的成本和服务,以找到最适合您需求和预算的提供商。
3. 协商价格
在可能的情况下,与托管提供商协商较低的价格。如果您承诺长期使用,他们可能愿意提供折扣。
4. 利用折扣和促销活动
留意托管提供商提供的折扣和促销活动。这些可以维护成本: 服务器需要定期维护、修复和升级,这会产生持续的成本。
结论
租用服务器可以为企业提供许多好处,包括灵活性、可扩展性、安全性、托管支持和成本效益。在做出租用服务器的决定之前,了解涉及的财务因素并制定预算非常重要。考虑以下提示可以帮助您优化成本并做出明智的决策:选择正确的服务器类型选择合适的托管提供商协商价格利用折扣和促销活动优化带宽使用考虑云计算定期监控成本通过仔细考虑租用服务器的财务因素,企业可以做出明智的决定,满足其业务需求并保持预算内。
什么是财务软件
财务软件是指专门用于完成会计工作的电子计算机应用软件,包括采用各种计算机语言编制的一系列指挥计算机完成会计工作的程序代码和有关的文档技术资料。
它用于配合计算机完成记账、算账、报账,以及部分的会计管理和会计辅助决策等工作,如日常核算工作、量本利分析、投资决策等工作。
因此,学好、用好财务软件是会计信息化工作的重要前提。
财务软件的分类按照不同的划分标准,财务软件分为不同的类型。
1.按硬件结构划分,可分为单用户财务软件和多用户(网络)财务软件。
单用户财务软件是指将财务软件安装在一台计算机上,计算机中的财务软件单独运行,生成的数据只存储在本台计算机中,各计算机之间不能直接进行数据交换和共享。
多用户(网络)财务软件是指将财务软件安装在一个多用产系统的主机(计算机网络的服务器)上,系统中各终端(工作站)可以同时运行主机上的财务软件,不同终端(工作站)上的会计人员能够共享会计信息。
2.按适用范围划分,可分为通用财务软件和定点开发财务软件。
通用财务软件是指在一定范围内适用的财务软件。
通用财务软件的特点是不含或含有较少的会计核算规则与管理方法。
其优点是由用户自己输入会计核算规则,可以使财务软件突破空间上和时间上的局限性。
其缺点是:由于通用,初始化工作量越大,个别用户的会计核算工作的细节就越难被兼顾。
定点开发财务软件也称为专用财务软件,是指仅适用于个别单位会计业务的财务软件,如某企业针对自身的会计核算和管理的特点而开发研制的软件。
定点开发财务软件特点是把适合本单位特点的会计核算规则与管理方法编入财务软件,如将报表格式、工资项目、计算方法等在程序中固定。
其优点是比较适合使用单位的具体情况,使用方便。
其缺点是受到空间和时间上的限制,只能在个别单位、一定的时期内使用。
3.按提供信息的层次划分,可分为核算型财务软件、管理型财务软件和决策型财务软件。
它们分别用于实现会计信息系统的核算、管理和决策职能。
财务软件的选择因素随着软件市场的逐步发展和成熟,软件品种越来越多,更多的企业会选择购买通用财务软件。
通常,在选购财务软件时可以考虑以下几个方面:1.比较财务软件的价格在选择软件时,价格是最先要考虑的因素之~。
通常情况F,软件公司有适应于不同规模企业的不同价位的软件,选择适用于本企业的业务特征并适当考虑未来业务发展的软件即可。
购买软件之前应充分调查软件市场情况,对多个软件提供商进行询价,要比较不同软件的功能和价格情况。
影响财务软件价格的主要因素有企业规模、购买模块数、企业站点数、实施费用等。
另外,除了初始购买软件的投资,软件每期的运行维护费用、员工培训费用、软件的升级费用等运行费用,也要在选择软件时了解清楚。
2.根据企业业务量和规模选择财务软件的网络体系结构企业应根据每月业务量以及业务票据的多少选择特定结构体系的网络财务软件。
对单一企业而占,如果企业规模较大,业务量和凭证量较多,应考虑选择基于大型数据库开发的软件和客户/服务器(C/S)结构体系的网络版软件。
对于跨地区经营的集团型企业,为了实现财务数据的集中化管理,在选择软件时还要考虑软件是否支持互联网技术,可选择基于广域网浏览器/服务器(B/S)结构体系的会计软件。
如果企业规模很小,业务量很少,可选用基于小型数据库或采用文件/服务器(F/S)结构体系的会计软件。
3.明确财务软件的运行环境在确定了某个价位的某些软件的某些功能模块后,企业要了解这些软件的运行环境,包括硬件环境和软件环境。
硬件环境主要应了解软件运行所要求的硬件应达到的标准如计算机的硬件型号、硬盘的容量、显示器的型号、内存的大小、打印机的要求等。
软件环境要了解该财务软件需要什么样的操作系统进行支持,财务软件所使用的数据库管理系统的要求等。
4.财务软件是否符合财经法规要求我国的会计工作,必须遵循全国统一的会计制度和相关财经法规中的有关规定,所以,对于商品化财务软件,必须符合国家会计制度的要求。
《会计电算化管理办法》规定,为了保证商品化会计软件的质量,财务软件必须经过省级以上财政部门评审后,才能在市场上销售。
不经过评审的软件的功能和质量不能保证,也不可能满足企业的使用要求。
所以,要选择通过了财政部门评审的财务软件。
5.考查财务软件的灵活性、开放性和可扩展性财务软件的选择还需要考虑信息技术的飞速发展引起的商业活动方式的变化对企业经营管理方式提出的要求,包括机构变革和业务流程重组,以及随着经营活动范围的扩大和经营方式的多样化,产生的更多的市场机会。
同时,随着我国越来越融入到国际竞争的舞台,会计的国际趋同化也是未来财务软件的发展趋势。
这就需要考虑软件的灵活性、开放性和可扩展性。
一方面,当业务扩展时或者会计制度变化时,软件能否轻松升级以适应业务变革和会计制度的需要;另一方面,当企业投资其他业务系统或变更其他业务系统时,财务软件与其他信息系统进行数据交换或者进行二次开发方面的功能能否轻松实现。
6.了解财务软件公司的信誉和售后服务情况财务软件不是投入使用就万事大吉了。
实际上,软件一旦投入运行,就需要不断进行后期维护和服务。
这些后期的维护以及故障解决大多需要由软件公司进行。
所以,财务软件的售后服务体系是否健全、服务水平高低以及服务态度如何将影响到软件能否顺利投入使用。
售后服务主要包括对用户的操作培训和应用指导、财务软件的日常维护与维修、软件版本的更新等。
财务软件的发展趋势1.会计信息系统与ERP系统的融合ERP系统通过业务流程重组(Business Process Reengineering,BPR)全面地改造了企业的业务流程,使企业的物流、资金流、信息流、业务流整合为一体,实现了业务处理和财务处理在逻辑上的统一。
因此,会计信息系统不可避免地要与ERP系统融合,作为ERP系统中的一个重要的有机组成部分,由部门级的信息系统上升为企业级的信息系统。
2.采用开放式架构,全面支持电子商务随着信息技术的发展,国内外很多企业都开展了网上交易,但大多数只是实现了前端交易的网络化,而企业的内部管理系统与前端系统是脱节的,因此,前端的电子订单无法直接进入后端的会计信息系统,也就不能及时地对经济业务进行反应,当然,也不能及时地安排生产等一系列企业资源的配置。
所以,面向ERP环境的会计信息系统应充分考虑到企业问的交流和应用,在系统的开放性方面全面考虑,包括对各种网络平台、网络协议、数据库、公共软件接口、语言等的适用性。
只有具备了全方位开放体系,才能在网络迅猛发展之际,很好地支持电子商务的应用。
通过基于供应链管理思想的ERP系统,新的会计信息系统将企业的传统业务与电子商务联结起来,使之成为整个交易链的中枢。
3.满足企业国际化经营的需要全球经济一体化的过程中,企业可能在世界的任何一个地方进行投资或经营,而企业的股东、债权人、银行、客户、供应商等也都可能来自世界上不同的地方。
因此,要求会计信息系统能够支持多国和国际会计准则,为分布在世界各地的分支机构、投资者、客户等提供一个统一的会计核算和财务管理平台,具有多语言、多币种会计处理能力,支持各币种问的转换以及多国会计实体的财务报表合并,提供具有国际可比的财务信息,满足企业国际化经营的需要。
4.进一步加强财务决策支持功能会计信息系统应用的根本目的是要提高企业的竞争力,其关键是要提高决策的质量。
传统的财务软件中利用财务指标和财会数据能进行简单的财务决策,但其重点在于为决策提供基础信息,而不能支持决策的全过程。
ERP的环境实现了企业业务管理与财务管理的集成,会计信息系统不再是企业内的“信息孤岛”。
作为ERP环境中的核心子系统,会计信息系统应能够提供充分的决策支持,不仅能够预测风险,还能够提出适应不同环境的风险解决方案,实现财务系统智能化。
智能化有两个发展方向:①向智能化财务决策支持系统发展,即利用先进的信息技术和神经网络模型实现财务决策智能化;②向群体财务决策支持系统发展,即未来的会计信息系统将通过群体决策支持系统功能为企业发挥集体智慧进行财务决策提供充分的环境支持。
5.充分利用先进的信息技术首先,会计信息系统的体系结构将以B/S(浏览器/服务器)模式为主,通过Internet/Extranet/Intranet实现企业与客户、合作伙伴的无缝联结,在供应链上实现包括财务计划在内的协同计划,进一步加强财务预测、决策的准确性;其次,会计信息系统的开发技术更为先进,它采用跨平台开发工具,使系统的适应性更好、集成度更高;再次,采用多媒体技术,使系统的功能更为全面,信息输出形式更加丰富。
6.高可靠性和安全性大规模系统、分布式应用、广泛的网络连接需要系统具有更高的可靠性和更强的安全控制。
远程通信线路故障、多用户操作冲突、共享数据的大量分发与传递,需要会计信息系统有超强的稳定性,并能够对出现的各种意外情况作出正确处理。
黑客入侵、越权操作等现象需要会计信息系统有健全的安全防线。
对系统内部数据记录的存取及删改权限的管理,系统操作日志的建立都是必不可少的安全措施。
7.面向个性化的设计软件所面对的是。
个充满个性化的世界,不能要求所有企业都按同一模式运作。
因此,新一代的会计软件需要有非常灵活的设计。
在输出界面(包括文字、图像、声音、图形等)、运算公式、业务逻辑、业务关联等诸多方面都能留给用户足够的空间,允许用户通过设置和增值开发建立符合自己需求的应用系统。
财务软件的功能结构1.核算型财务软件的主要功能模块核算型财务软件的应用是财务软件系统运用的基础,核算型财务软件用于完成会计核算工作,主要包括账务处理、工资管理、固定资产管理、成本核算、应收款管理、应付款管理、存货管理以及会计报表处理等模块。
一个模块通常又称为一个子系统,通用核算型软件主要包含以下一些子系统:(1)账务处理子系统。
这是财务软件的核心,对所有财务软件来说都是必不可少的。
账务处理系统完成全部记账、算账、对账、转账、结账工作,生成总账、明细账、日记账以及各类辅助账,并负责接收工资、固定资产等模块发送的数据以及向报表、成本等子系统传送数据。
通用账务系统一般还具备银行对账、往来账项管理和通用项目辅助管理等功能。
(2)工资薪酬管理子系统。
主要完成工资的计算、工资费用的汇总与分配等工作,生成工资发放表、工资条、工资汇总表、工资费用分配表等表单,并自动编制工资结转凭证传递给账务处理子系统。
(3)固定资产管理子系统。
主要完成固定资产卡片管理、固定资产增减变动处理、折旧计提与费用分配等工作,生成固定资产卡片、固定资产统计信息表、固定资产登记簿、固定资产增减变动表、固定资产折旧费用分配表等表单,并自动编制转账凭证以供账务处理子系统使用。
(4)成本核算子系统。
主要完成对生产费用的归集、分配和对产品制造成本的计算。
包括从账务处理子系统和存货管理子系统接收数据,经归集、计算、分配和汇总处理后计算出产品成本,并将相关数据传递至账务处理子系统和销售管理子系统。
成本核算是财务软件中数据流程最为复杂的子系统之一。
(5)应收款管理子系统。
主要核算销售所取得的收入,计算相关的税金,确认与管理应收账款,管理有关票据。
(6)应付款管理子系统。
主要核算采购业务所形成的应付款,包括:登记价款,按适用税率计算税金,确认和核销应付款项。
(7)存货管理子系统。
主要从采购管理子系统取得存货增加的成本和金额,从销售管理子系统取得存货出库的数量,自动计算出库存货的成本,并以生成凭证的方式将销售成本结转到账务处理子系统。
(8)货币资金(出纳)子系统。
主要功能是核算收款付款业务,管理各类结算票据,登记现金、银行存款日记账,进行银行对账管理。
(9)会计报表处理子系统。
能够规范地编制资产负债表、利润表和现金流量表,具有自定义报表的功能,使用户可以根据自身的需要自行设计各种报表,并具有报表汇总功能。
2.管理型财务软件的功能拓展管理型财务软件利用会计核算业务所提供的信息以及其他生产经营活动资料,采用各种管理模型、方法,对经营状况进行分析和评价。
它不仅使用财务会计的核算方法和原理,而且运用管理会计的模型和方法,以及科学的决策思想与管理技术,将业务处理中的核算结果提升至管理信息系统控制的高度。
所以,管理型财务软件具有事前预测和事中控制功能。
同时,管理型财务软件的目标是提高企业的经济效益,对企业生产经营过程中人、财、物和供、产、销以及其他经营活动进行全面管理。
它的使用对象不仅包括会计人员,还包括企业各业务部门的人员乃至企业最高层管理者。
在核算型财务软件完成会计核算基本任务的基础上,管理型财务软件具有如下扩展功能:(1)分析功能。
包括对各种财务报表和预算报表的比较与分析,提供各种资源的结构、比率数据,具有对主要财务指标的绝对数趋势、定基、环比等多种技术分析功能。
(2)预算功能。
提供从一般科目到投资、筹资、资本支出、销售收入、成本乃至现金流量的全面预算。
(3)控制功能。
能通过保本点分析,通过对固定成本、变动成本、预计流动比率、预计投资报酬率等指标的计算来实施相应的控制,通过预算报表与实际执行情况的反馈结果进行预算控制。
财务软件各个功能模块之间的关系财务软件各个功能模块之间不是独立的,而是相互作用、相互依赖,共同完成会计信息系统的反映、控制和临督功能。
其中总账系统模块处于核心地位,它与其他各个模块之间都有十分密切的联系,它不仅可以直接进行记账凭证的输入,而且可以接收来自各核算子模块的凭证,进行总分类核算。
同时它还为会计报表和会计分析等子模块提供有关数据和信息,以便编制会计报表和进行会计分析,满足投资者、债权人、企业管理人员和政府有关部门等企业内外各方面对会计信息的需要。
财务软件模块间关系如图所示。
参考文献孙万军主编.财务软件应用技术(用友财务通版).清华大学出版社,.0 2.1 2.2 齐莲花,康莉主编.财务软件应用.机械工业出版社,2010张有峰,郑楼英主编.会计信息化基础与实务.浙江大学出版社,2009
软件项目的管理流程
导语:关于软件项目的管理流程,相关人员来了解一下吧。
下面是我收集整理的软件项目管理流程,供各位阅读和参考。
一、 风险评估
软件项目风险是指在整个项目周期中所涉及的成本预算、开发进度、技术难度、经济可行性、安全管理等各方面的问题,以及由这些问题而对项目所产生的影响。
项目的风险与其可行性成反比,其可行性越高,风险越低。
软件项目的可行性分为经济可行性、业务可行性、技术可行性、法律可行性等四个方面。
而软件项目风险则分为产品规模风险、需要风险、相关性风险、管理风险、安全风险等六个方面:
1. 产品规模风险
项目的风险是与产品的规模成正比的,一般产品规模越大,问题就越突出。尤其是估算产品规模的方法,复用软件的多少,需求变更的多少等因素与产品风险息息相关:
(1) 估算产品规模的方法
(2) 产品规模估算的信任度
(3) 产品规模与以前产品规模平均值的偏差
(4) 产品的用户数
(5) 复用软件的多少
(6) 产品需求变更的多少
2. 需求风险
很多项目在确定需求时都面临着一些不确定性。
当在项目早期容忍了这些不确定性,并且在项目进展过程当中得不到解决,这些问题就会对项目的成功造成很大威胁。
如果不控制与需求相关的风险因素,那么就很有可能产生错误的产品或者拙劣地建造预期的产品。
每一种情况对产品来讲都可能致命的,这些的风险因素有:
(1) 对产品缺少清晰的认识
(2) 对产品需求缺少认同
(3) 在做需求分析过程中客户参与不够
(4) 没有优先需求
(5) 由于不确定的需要导致新的市场
(6) 不断变化需求
(7) 缺少有效的需求变化管理过程
(8) 对需求的变化缺少相关分析等
3. 相关性风险
许多风险都是因为项目的外部环境或因素的相关性产生的。控制外部的相关性风险, 能缓解策略应该包括可能性计划,以便从第二资源或协同工作资源中取得必要的组成部分,并觉察潜在的问题,与外部环境相关的因素有:
(1) 客户供应条目或信息
(2) 交互成员或交互团体依赖性
(3) 内部或外部转包商的关系
(4) 经验丰富人员的可得性
(5) 项目的复用性
4. 技术风险
软件技术的飞速发展和经验丰富员工的缺乏,意味着项目团队可能会因为技巧的原因影响项目的成功。
在早期,识别风险从而采取合适的预防措施是解决风险领域问题的关键,比如:培训、聘请顾问以及为项目团队招聘合适的人才等。
关于技术主要有下面这些风险因素:
(1) 缺乏培训
(2) 对方法、工具和技术理解的不够
(3) 应用领域的经验不足
(4) 对新的技术和开发方法应用不熟悉
5. 管理风险
尽管管理问题制约了很多项目的成功,但是不要因为风险管理计划中没有包括所有管理活动而感到惊奇。
在大部分项目里,项目经理经常是写项目风险管理计划的人,他们有先天性的不足——不能检查到自己的错误。
因而,使项目的成功变得更加困难。
如果不正视这些棘手的问题,它们就很有可能在项目进行的某个阶段影响项目本身。
当我们定义了项目追踪过程并且明晰项目角色和责任,就能处理这些风险因素:
(1) 计划和任务定义不够充分
(2) 对实际项目状态不了解
(3) 项目所有者和决策者分不清
(4) 不切实际的承诺
(5) 不能与员工之间的进行充分地沟通
6. 安全风险
软件产品本身是属于创造性的产品,产品本身的核心技术保密非常重要。
但一直以来,我们在软件这方 面的安全意识比较淡薄,对软件产品的开发主要注重技术本身,而忽略了专利的保护。
软件行业的技术人员流动是很普遍的现象,随着技术人员的流失、变更,很能会导致产品和新技术的泄密,致使我们的软件产品被它公司窃取,导致项目失败。
而且在软件方面关于知识产权的认定目前还没有明确的一个行业规范,这也是我们 软件项目潜在的风险。
7. 回避风险的方式
(1) 以开发方诱导能保证需求的完整,使需求与客户的真实期望高度一致。
再以书面方便形成《用户需求》这一重要的文档,避免疏漏造成的损失在软件系统的后续阶段被逐步地放大。
(2) 设立监督制度,项目开发中任何较大的决定都必须有客户参与进行的,在该项目中项目监督由项目开发中的质量监督组来实施。
(3) 需求变更需要经过统一的负责人提出,并且要用户需求的审核领导认可,需求变更应该是定期而不是随时的提出,而且开发方应该做好详细的记录,让客户了解需求变更的实际情况。
(4) 控制系统的复杂程度,过于简单的系统结构,对用户来使用比例会有明显的折扣,甚至造成软件寿命过短。
反之,软件结构的过于灵活和通用,必然引起软件实现的难度增加,系统的复杂度会上升,这又会在实现和测试阶段带来风险。
适当控制系统的复杂程度有利于降低开发的风险。
(5) 从软件工程的角度看,软件维护费用约占总费用的55%~70%,系统越大,该费用越高。
对系统可维护性的轻视是大型软件系统的最大风险。
在软件漫长的运营期内,业务规则肯定会不断发展,科学的解决此问题的做法是不断对软件系统进行版本升级,在确保可维护性的前提下逐步扩展系统。
(6) 设定应急计划,每个开发计划都至少应该设定一个应急预案去应对出现突发情况和不可遇知的风险。
二、 成本预算
1. 成本预算方式
(1) 自上而下的预算方法
自上而下的预方法主要是依据上层、中层项目管理人员的管理经验进行判断,对构成项目整体成本的子项目成本进行估计,并把这些判断估计的结果传递给低一层的管理人员,在此基础上由这一层的管理人员对组成项目的子任务和子项目的成本进行估计,然后继续向下一层传递他们的成本估计,直到传递到最低一层。
使用此预算方式,在上层的管理人员根据他们的经验进行的费用估计分解到下层时,可能会出现下层人员认为上层的估计不足以完成相应任务的情况。
这时,下层人员不一定会表达出自己的真实观点,不一定会和上层管理人员进行理智地讨论,从而得出更为合理的预算分配方案。
在实际中,他们往往只能沉默地等待上层管理者自行发现问题并予以纠正,这样往往会给项目带来诸多问题。
自上而下更适用于项目启动的前期,与真实费用相差在30% ~ 70%之间。
Scrum使用自上而下的成本预算方式,它不会立即精确地确定成本,而是以最大限度容纳客户对未来产品要求所产生的变更。
(2) 自下而上的预算方法
自下而上方法要求运用WBS(Work Breakdown Structure,工作分解结构)对项目的所有工作任务的时间和预算进行仔细考察。
最初,预算是针对资源(团队成员的工作时间、硬件的配置)进行的,项目经理在此之上再加上适当的间接费用(如培训费用、管理费用、不可预见费等)以及项目要达到的利润目标就形成了项目的总预算。
自下而上的预算方法要求全面考虑所有涉及到的工作任务,更适用于项目的初期与中期,它能准备地评估项目的成本,与真实费用相差在5% ~ 10%之间。
注解:WBS
WBS是面向提交成果对项目的分解,从提交成果的列表可以确定每个提交成果需要执行的活动。
Scrum会对WBS进一步细化,把一个迭代分解为一个或多个的工作包,再把工作包分解为细小的开发任务(一般开发任务的开发周期在15个工作小时以内)。
2. 确定项目支出
总体成本预算就是结合下列多个成本预算方式综合计算的开发成本:
(1) 零基数预算
在成本预算的初期应该使用零基数的计算原则,而不可以使用类似于:以上一年总体费用加上20% 这样粗略的方式计算项目成本。
(2) 软硬件成本、物品成本
物品成本是指类似于:服务器(RAM 硬盘 CPU NIC卡 RAID簇)成本、维护成本、机房租金、光纤通讯成本、软件成本等的成本。
计算成本时需要考虑组装硬盘需时的长短,技术人员需要具备的质素,产品供应商能否提供保证质量,管理时是否需要额外的管理人员这些多方因素。
(3) 软件许可证成本
(4) 外包成本
当使用类似:视频、短信、移动电信类服务、门户网站等子项目时可以考虑以外包形式完成,以降低开发成本。
(5) 人力资源成本
计算人力资源成本时应该使用以最高和最低的工作效率估算平均效率的方式,计算出人力资源的平均成本。
(6) 维修保养成本
三、 客户沟通的过程
从客户沟通的方向出发来看,软件项目可分为:需求识别、方案定制、项目实施、项目结束等4个不同的阶段,各个阶段都具有不同的沟通重点。
1. 需求识别阶段
(1) 文本沟通
在需求识别的前期,应该通过问卷、原型展示、界面展示、逻辑处理展示、准化文档模板等方式进行全方位多角度的分析,随时将不明确之处反馈给客户,以期待客户解答。
并以文本记录的方式建立需要分析书,并要求客户审核需求分析书,以达到需要分析与客户的真实期望高度一致的结果。
(2) 业务逻辑沟通
在进行业务沟通时,应该了解客户的行业语言,以促进业务分析的过程,越过应用需求和开发之间的鸿沟。
沟通过程提倡以草图或者可视信息化的方式进行, 针对不同层面的企业用户提供最适合的操作界面。
以多角度的方式思考问题,要抓住需求重点,尤其是客户方领导所关注的创新类和实用类需求。
(3) 需求变更的规范化管理
需求变更在软件开发类项目中是可以理解的,但必须对需求变更做好规范化的管理,以避免出现需求无止境变更的风险。
需求变更必须由统一的负责人提出,并且由用户需求的审核领导者认可。
需求变更的提出应该是定期而不是随时的,开发方应该做好详细的文本记录,让客户了解需求变更的实际情况和开发方为之所付出的成本代价。
2. 方案定制阶段
该阶段项目的主要任务是与客户共同制定一个以前期明确的需求、双方的资源、项目开始的阶段、实施的时间约定、项目费用限制等为基础的具有可操作性的项目计划,从本阶段开始争取客户全面参与项目的管理,并以双方的共同利益考虑项目实施的具体计划与风险规避。
3. 项目实施阶段
在该阶段,软件项目团队应该与客户共同领导项目的实施。
同时,项目团队应实时评估客户满意度,并通过持续改进的方式提高客户满意度,还应要求客户参加必要的培训,以及在必要时检查项目产品。
在出现客户的需求变更前,应主动与客户沟通交流,使客户充分了解项目的每个环节,以及变更带来的影响,减少需求变更。
如果出现客户需求变更,应与客户一起共同解决由变更引起的成本、进度、质量变化。
4. 结束阶段
该阶段主要进行项目成果的移交,并把系统交付给维护人员,帮助客户实现商务目标,结清各种款项。
完成这些工作后应该进行项目评估,审核此项目的成果并总结项目经验。
5. 售前人员注意事项
在产品型项目作为开发成果时,相关销售人员应该注意:对产品的推销不应该过分承诺。
如果过分承诺,会给后续的项目实施带来困难;一旦承诺没有兑现,也会降低客户满意度,影响今后合作。
如果有附加承诺,一定要以文本形式记录,让实施项目经理知晓并传达给项目组成员。
注解:在软件项目中,需要明确以下四种客户角色
A.要明确最终使用部门和用户,要去了解他们现有的工作方式,要让他们知道项目的目标框架,知道项目要解决他们的哪些困难,但绝对不是全部困难,这样可以较好的控制项目范围。
B.要明确需求的提出者,他或者他们要能够代表最终客户群体。
提出产品需求的这类客户要具有一定的技术、业务能力和权威,能够真正代表最终客户团队的意愿和想法,最好有IT基础,能够用IT语言描述问题和需求,以利于双方的沟通、协作,避免产生歧义。
C.要明确做需求确认的中层领导,他要把握方向。
软件开发项目是解决实际生产或者管理问题,同时 也是领导系统建设的具体实现,做需求确认的客户领导,既要了解高层领导的系统建设要点和方向,又要谙熟具体业务和生产管理实际。
如果是这样的客户领导来把 握和决策,对企业软件开发项目的顺利进展作用非凡。
D.要明确谁来对成品提意见,谁来验收。
项目验收环节,是项目的收尾环节,如果验收的人对项目初期的需求目标不了解,会从态度和产品实际使用效果上对验收产生负面的影响,对提供产品的企业关闭项目非常不利。
根据实践总结,由需求提出人和确认人来做项 目的验收工作,能够促进项目的顺利完成,避免延期。
四、 需求分析
1. 需求分析的过程
需求过程包括需求开发和需求管理2个部分:
(1) 需求开发就是对开发前期的管理,与客房的沟通过程,可以分为4个阶段:需求获取、需求分析、编写需求和需求验证。
(2) 需求管理:就是软件项目开发过程中控制和维持需求约定的活动。
包括:变更控制、版本控制、需求跟踪、需求状态跟踪。
2. 需求的层次
需求的层次包括:业务需求、用户需求、功能需求、非功能需求等4个方面。
3. 需求开发阶段的重点
(1) 提取业务对象
业务对象是指系统使用的真实对象,例如一个供应链管理 (Supply Chain Management ,简称SCM) 业务对象主要包括:生产批发商、零售商、送货商、顾客多个层次。
(2) 提取业务流程
在了解业务逻辑的过程中,应该列举出所开发软件模块的各自职能,并细化每个工作流程,深入分析业务逻辑。
(3) 性能需求
在分析的前期应该注意客户对所开发软件的技术性能指标,如存储容量限制、运行时间限制、安全保密性等。
(4) 环境需求
环境需求是指软件平台运行时所处环境的要求,如硬件方面:机型、外部设备、数据通信接口;软件方面:系统软件,包括操作系统、网络软件、数据库管理系统方面;使用方面:使用部门在制度上,操作人员上的技术水平上应具备怎样的条件。
(5) 可靠性需求
对所开发软件在投入运行后发生故障的概率,应该按实际的运行环境提出要求。
对于重要的软件,或是运行失效会造成严重后果的软件,应提出较高的可靠性要求。
(6) 安全保密要求
在需求分析时应当在这方面恰当地做出规定,对所开发的软件给予特殊的设计,使其在运行中,其安全保密方面的性能得到必要的保证。
(7) 用户界面需求
为用户界面细致地规定到达的要求。
(8) 资源使用需求
开发的软件在运行时和开发时所需要的各种资源。
(9) 软件成本消耗与开发进度需求
在软件项目立项后,根据合同规定,对软件开发的进度和各步骤的费用提出要求,作为开发管理的依据。
(10) 开发目标需求
预先估计以后系统可能达到的目标,这样可以比较容易对系统进行必要的补充和修改。
4. 需求分析的任务
需求分析的主要任务是借助于当前系统的逻辑模型导出目标系统的逻辑模型,其流程如下:
(1) 确定对系统的综合需求(功能、性能、运行、扩充需求)
(2) 制作产品需求文档 (PRD)
(3) 分析系统的数据需求(概念模型、数据字典、规范化)
(4) 导出目标系统的详细的逻辑模型(数据流图、数据字典、主要功能描述)
(5) 开发原形系统
(6) 从PRD提取编制软件需求规格说明书(SRS)
注解:SRS格式
1.引言 2系统概述(项目背景、系统目标、核心业务流程) 3.术语说明 4.系统结构(架构图、功能图)
5.主体功能与业务逻辑(重点) 6.接口需求(内部、外部接口、) 7.网络总体设计(拓扑网络、主机、组网)
8.运行环境(Linux、Windows、IIS、 WebLogic、Tomcat、OLAP、OLTP、JDK 8.0 、 Framework 4.0等)
五、 面向对象程序设计(略)
1. 设计原则
(1) SRP单一职责链
每个类都应该只负责做一件事。
(2) OCP开封闭合原则
软件的实体(类、模块、函数等)应该是可以扩展的,但是不可修改的。
(3) LSP替换原则
子类必须能替换他们的基类型。
(4) DIP依赖倒置原则
高层模块不应该依赖于低层模块,二者都应该依赖于接口与抽象类。
抽象不应该依赖于细节,细节应依赖于对象。
(5) ISP接口隔离原则
不应该强迫客户依赖于并未使用的接口,而应该把胖接口分离。
2. 实现UML建模
(1) 业务对象的提取
(2) 根据SRS、CRC等实现用况建模
(3) 实现业务顺序图
(4) 建立类图,根据用况图建立对象之间的关联
(5) 绘制活动图、实现协作图、状态图
六、 开发管理
1. 建立项目计划
(1) 设计总体架构
针对系统的实施需要,采取适当的且成熟的框架结构。
(2) 控制可扩展度
扩展度过大,将提高系统的复杂程度,延长开发时间;扩展度过低,会直接影响系统的二次开发与维护。
控制系统的可扩展性,能提高开发效率,降低系统维护的难度。
(3) 建立基础设施
合理分配部署软、硬件等基础设施所需要的时间与成本(例如:服务器的订购安装、光纤接入、软件平台订购)。
(4) 划分开发任务
利用WBS(Work Breakdown Structure,工作分解结构)对可交付结果进行分类与划分。
每个项目都能划分为多个不同阶段,每个阶段又可以分为多个工作包(Work Package),工作包是WBS里最小的可交付结果,最后从工作包中分解出多个开发任务列表。
(5) 部署开发进度
一个项目应该按进度划分为多个开发阶段,每个阶段的开发周期一般在30~60个工作日以内。
在此阶段内应该与客户举行协商会议,制定产品路线图,在开发过程中邀请客户积极参与并提出反馈意见。
然后把该时段内的开发任务按照开发难度,依赖性,重要性等多方条件划分为多个迭代周期。
在Scrum 敏捷软件开发原则中,应该把每个迭代任务进一步细分为多个开发任务列表,再开发任务分配给组员各自负责,而开发时间应该控制在15个工作小时以内。
如果开发时间超出15个工作小时,应该考虑把开发任务再度细化。
开发任务建议应该由组员自主选择,而不要使用强制分配的方式。
(5) 测试项目成果
每个工作包都应该同步部署测试工作,提高项目的质量。
对出错BUG的工作包应该由测试人员以文本方式记录,向开发人员展示错误所在,让开发人员及时进行修改。
2. 管理开发团队
(1) 组建团队
按照工作任务与项目时间的前提条件建立团队,按团队职责分配人员,一般团队人数应该控制在8~12人之间。
当团队人数超过15人时,应该考虑把团队分解成2个独立团队,负责不同的开发任务。
(2) 分配开发任务
在每个迭代周期内(一般是15~30个工作日),应该把每个工作包进一步细分为多个开发任务,再开发任务分配给组员各自负责,开发时间应该控制在15个工作小时以内。
如果开发任务的开发时间超出15个工作小时,应该考虑把任务再度细化。
而开发任务应该以自由选择的方式分配给每个组员。
(3) 监督开发进度
在迭代的前期举行一次会议,让组员了解开发的进展及流程,并以自主选择的方式分配开发任务。
期间可使用Microsoft Project等工具记录开发流程的进展,在每个工作包完成开发后应该进行性功能的测试,并以文本方式记录测试结果。
每天举行一次15分钟的站立会议,让组员交待昨天已完成的开发任务,当天将要做的任务,与开发过程中所遇到的问题。
并在每周末举行一次例行会议,交待总体进程。
在迭代末期举行一次冲刺会议,总结项目的进展,交行已完成的任务,回顾该迭代周期内所遇到的问题,为下一个迭代做好准备。
(4) 系统测试
对每个已完成的工作包进行适时的测试,保证系统质量与性能。
对测试结果进行文本的记录,并把测试结果与绩效工资收入挂钩,并以真实数据计算组员的绩效收入。
(5) 解决开发中所遇到的问题
对开发人员进行前期培训,可适当按工作能力分配任务,指导组员的开发。
当遇到问题时应该在当天的站立会议时即时提出,并在15个工作小时内解决所遇到的问题以防止问题进一步扩大。
3. 监管产品质量
(1) 质量需要的是计划、设计而并非审查的。
在产品建立的初级,必须与“质量保证”(QA)的部门进行协商,以正式文档的方式,决定恰当的质量策略和标准。
(2) 在开发过程中使用TDD(测试驱动开发)的模式,提高开发质量。
测试人员应该以文本方式记录bug,并与开发人员共同工作的,把突出的缺陷演示给开发人员,以提高修改的效率。
(3) 在每个迭代的结束时进行一次产品效果的演示,从客户、使用者、高层领导中收集反馈信息。
在团队内部举行评审会议,分析测试结果,了解产品性能,为下次迭代所需要做的改进做好计划。
4. 修改项目计划
(1) 在产品需要识别阶段,应该以文档形式记录产品功能与开发流程,在开发计划需要修改时,应该与客户共同探讨,让客户了解计划修改对项目进度所造成的影响。
(2) 项目计划的修改应该由统一的负责人提出,并且由用户需求的审核领导者认可。
需求变更的提出应该是定期而不是随时的。
(3) 计划的变更应该做好详细的文本记录,让客户了解需求变更的实际情况和开发方为之所付出的成本代价。
七、 产品交付
1. 项目的后期审核
在项目开发最终完成后,对开发人员来说可算是放下工作的重担,但对项目经理来说这往往是项目的关键时刻。
前期的风险评估、成本预算、需求分析、软件设计都是为了引导项目走向这一时刻,此时所有的目光都将投向项目管理人员。
你可能发现大量而琐碎的工作将要在几个小时内完成,此刻项目经理更需要保持清醒与镇定,把最后的工作视为微型项目来对待。
细致地对项目进行后期的审核,分析项目成果、项目团队的效率、可交付产品的价值,以此审核结果可作为项目管理经验总结的一部分。
2. 质量评审
在项目交付前,应该把项目交给相关的“质量保证”(QA)部门进行质量评审,并邀请典型用户感受产品的质量。
3. 项目的最终交付
正常情况下在项目的前期就会订立项目交付的协议,项目交付方式分为非正式验收与正式验收两种。
一般在项目完成后都会先进行非正式验收,让客户体会项目的质量并提出反馈意见,最后在客户肯定产品质量后再以书面协议的形式进行正式的产品验收。
4. 项目的最终报告
在项目的最后,应该制定项目的最终报告,此报告可以视为是对该项目一个记录,但报告不必包含项目的所有方面。一般最终报告应该包含以下方面:
(1) 最初引进项目时的初期项目视图
(2) 对该项目的价值评估及支持性信息
(3) 项目的范围
(4) 项目的开发流程及WBS
(5) 项目的会议记录
(6) 项目变更的报告及变更的理由
(7) 与项目相关的沟通过程文件
(8) 项目的审核报告与客户验收报告
(9) 项目成员的表现报告
(10) 项目的最终成果
项目计划书要怎么写
项目计划书主要分为“项目书名称、目录、项目介绍、计划书摘要、项目背景、项目成员、市场前景、营销策略、财务分析、投资分析、风险评估”,那么这十几点应该怎样书写才能博人眼球,使整个项目脱颖而出呢?下面让我们一起来学习一下吧!
第一部分:项目书摘要
对本项目书进行整体性概括陈述(要求简明扼要,重点突出)。
①项目主题 ②实施对象(目标人群)③实施区域 ④项目期限 ⑤希望解决的问题和预期达到的目标
第二部分:项目背景
1、项目背景分析 对该项目相关的背景进行简要分析(包括项目的起因和必要性、实施项目的条件)以前类似项目实施经验教训及相关政策环境等。
2、项目问题分析①通过项目的实施希望解决什么根本问题?
②导致这些问题的关键因素?
③问题造成的不良后果有哪些?
第三部分:项目的市场前景
项目所希望达到的目标是什么?1、对本项目所希望达到的目标的精确陈述。
2、应当尽量符合具体可测量,可达到,有时限的原则。
3、项目目标可划分为总目标和分目标,总目标是对项目整体目标较为宏观的描述,分目标则是为实现总目标而形成的一系列具有严密逻辑关系的具体目标。
4、可行性分析(从实验材料的可靠性、实验方法、设计的可行性、理论的预见性等角度写。)
第四部分:营销策略
1、策划目的与概述。
根据市场特点策划出一套行销计划。
2、分析当前的营销环境状况。
(一)市场状况分析及市场前景预测①产品的市场性、现实市场及潜在市场状况。
②市场成长状况 。
③消费者的心理。
(二)影响产品的不可控因素进行分析①宏观环境 ②政治环境③居民经济条件(消费者收入水平、消费结构的变化、消费心理等,对一些受科技发展影响较大)
3、营销战略(具体行销方案)(一)营销宗旨以强有力的广告宣传攻势顺利拓展市场,为产品准确定位,突出产品特色,采取差异化营销策略。
(二)产品策略
透过前面产品市场机会与问题分析,提出合理的产品策略推荐,构成有效的组合,到达最佳效果。
(三)价格策略①定价目标 ②确定需求 ③估计成本 ④选择定价方法 ⑤选定最终价格。
第五部分:财务分析
1、资本结构与前期投资
2、财务预算及分析
①公司财务预算编制方法
1)长期预算(分会计年度预算数据)2)短期预算(分季度预算数据)
②公司财务预算编制
第六部分:投资及风险分析
项目自身因素: 项目特有因素或估计误差带来的风险
外部因素:① 项目收益风险 ②投资与经营成本风险 ③筹资风险 ④ 其他风险
二、项目风险分析
①同类新技术
②新产品的出现
③争夺市场份额
三、投资项目风险调整
(一)项目风险的衡量
1、敏感性分析(敏感性分析就是在假定其他各项数据不变的情况下,各输人数据的变动对整个项目净现值的影响程度,是项目风险分析中使用最为普遍的方法。)
2、情景分析(情景分析是用来分析项目在最好、最可能发生和最差三种情况下的净现值之间的差异,与敏感性分析不同的是,情景分析可以同时分析一组变量对项目净现值的影响。)
3、蒙特卡洛模拟(蒙特卡洛模拟是将敏感性与概率分布结合在一起进行项目风险分析的一种方法。)
4、决策树法(决策树是一种展现一连串相关决策及其期望结果的树形图像方法。)
(二)项目风险的处置
1、项目风险与公司风险(确定当量法、折现率风险调整法。)
2、确定当量法(确定当量法是一种对项目相关现金流进行调整的方法。)
3、风险调整折现率法(确定当量法是对现金流量进行风险调整,而风险调整折现率法是对折现率进行调整。)
行文至此,以上就是项目计划书撰写指南的全部内容,本篇主要讲解了如何撰写项目计划书各部分。