10 个有用的软件开发原则

作者 | Kevin Mahoney
来源 | 架构头条

我总结了一些软件开发原则。在这些原则中,大多数都是以简化系统为核心。在我看来,简单的系统会更可靠,更容易修改,而且一般更容易使用。当观念发生改变时,我希望更新它们。

1 剔除无效状态

我把这一点排第一,是因为我认为它是最重要、最强大的原则之一。

你可能在定义类型时听到过这个词,但其实这个原则适用于所有与表示数据相关的地方——例如数据库设计。

它不仅可以减少系统的状态数量(从而变得更简单),还能减少无效状态的数量!你的系统不需要处理这些无效状态,因为它们在你的程序中实际上是不可表示的。

这不只是一个小技巧,它可以极大简化你的系统,并防止出现各种类型的 bug。这有一些例子。

https://kevinmahoney.co.uk/articles/applying-misu/

2 数据一致性让系统更简单

对数据施加一致性规则,减少了系统需要处理的状态数量。这是从上一个原则派生而来的。

定义

这里说的是一致性的普遍含义:即数据遵循某些规则,并且在任意时刻都始终遵循这些规则。这一定义与 ACID 有关,但不要与 CAP 混淆起来了。

规则可以是任何东西,例如,你的信用永远不能变成负数,或者私密的帖子不应该被其他人看到。它不仅限于外键或惟一索引,尽管它们也是有效的规则。

和数据库一样,应用程序也可以通过使用 ACID 事务来加强一致性。如果能在数据库级别强制保持一致性是最好的,但在实际中,对稍微复杂一点的东西来说,这样做并不常见。

实用建议

任何限制或损害一致性的行为都会导致复杂性。这就引出了以下这些实用的建议:

让系统更简单:

  • 更少的数据库 (理想情况下是一个)

  • 规范化,减少冗余数据

  • 一个“好的”数据库设计

  • ACID 事务

  • 更多的数据约束

让系统更复杂:

  • 多个数据库

  • 冗余或非正规化数据

  • 糟糕的数据库设计

  • 较少(或没有)数据约束

当然,有时候让系统变复杂也是有正当理由的,我并不想让复杂性变成一个“肮脏的”词。请参阅后面的一个原则“杀鸡不要用牛刀”。

我认为这个原则是当今软件工程中最被低估的原则之一。一致性问题经常被忽视。很多问题,我敢说大多数问题,基本上都是一致性问题——数据不符合某些期望。

参见附录,了解不一致性是如何导致复杂性的。

https://kevinmahoney.co.uk/articles/my-principles-for-building-software/#appendix-a-inconsistency-results-in-complexity

3 数据设计先行

这个问题,“代码还是数据?”,哪一个在 10 年后更有可能继续存在。

代码可以被丢掉重写,但数据很少会这样。

数据比代码更重要。代码的唯一目的是转换数据。

在设计新系统时,最好先从数据库和数据结构开始,并在此基础上开发代码。要考虑可以在数据上施加的约束并实施它们,理想情况下是通过表示数据的方式进行的。

代码设计是数据设计的下一步。数据模型越简单、越一致,代码就会越简单。

你们把流程图给我看,但把表藏起来,我就一头雾水。你们把表给我看,通常我就不需要你们的流程图,它们会不言自明。—— Fred Brooks

糟糕的程序员关心代码。好的程序员关心数据结构和它们之间的关系。—— Linux 之父 Linus Torvalds

4 杀鸡不要用牛刀

这是软件开发人员最常犯的错误。

这个原则是说,当你在做需要付出复杂性代价的权衡时,要确保权衡的必要性得到经验证据的支持。

常见错误:

  • 试图构建一个复杂的“可伸缩”系统,可以伸缩到你可能永远都不需要的规模。

  • 在不考虑需求或成本的情况下,让服务尽可能地小。

  • 在非性能瓶颈的地方优化性能,增加不一致性或复杂性。

建议:

  • 尽可能从最简单、最正确的系统开始

  • 对性能进行度量

  • 如果不能解决实际问题,就不要付出复杂性代价或违反其他原则。

  • 有些优化可以不进行度量,因为它们的成本非常低或为零。例如,为了保证你想要执行的操作具有你想要的性能,使用正确的数据结构。

  • 的确,有时候经验本身就能告诉你是否做出了正确的权衡。但如果你能证明,那就更好了。

  • 当你必须做出选择时,请选择正确性和简单性,而不是性能。

  • 在某些情况下,正确而简单的代码是性能最好的代码!

真正的问题是程序员在错误的地方和错误的时间花了太多的时间在担心效率上。过早优化是编程中所有(或者至少是大部分)罪恶的根源。——计算机科学家 Donald Knuth

5 避免为了局部简单性而增加全局复杂性

也就是避免为了让系统的一部分变得更简单,而导致整个系统变得更复杂。

这种交换通常是不平等的。追求局部的简单性会导致全局复杂性的增加,而且是数量级的。

例如,使用较小的服务可以让这些服务变得更简单,但一致性的降低和对更多进程间通信的需求让系统变得更加复杂。

6 识别内在的复杂性

有时候事情本身就很复杂,你不能把问题简单化。

任何这样的尝试都只会让系统变得更加复杂。

7 使用的技术越少,系统就越简单

深入理解一小部分技术要比只是表面理解很多技术好。

更少的技术意味着更少的东西要学习和更少的运维复杂性。

8 集中精力学习概念,而不是技术

不要太关心技术的复杂细节,因为你可以随时查阅它们。你要学习底层的基本概念。

技术会变化,概念却是永恒的。你学到的概念将被用在更新的技术中,你就可以更快地学会新技术。

例如,不要太关注 React、Kubernetes、Haskell、Rust 的表面细节。

重点学习:

  • 纯函数式编程

  • 关系型模型

  • 规范的方法

  • 逻辑编程

  • 代数数据类型

  • 类型类 (通用的和特定的)

  • 借位检查器 (仿射 / 线性类型)

  • 依赖类型

  • Curry-Howard 同构

  • 同像性(Homoiconicity)

  • VirtualDOM

  • 线性回归

  • ……

9 代码一致性很重要

有时候,具有一致性的代码比“正确”的代码更重要。如果你想要改变代码库中某些代码的行为,就要修改它所有的实例。否则的话,就只能忍受。

代码的可读性更多地与一致性(而不是简单性)有关。人们通过模式识别来理解代码,所以请重复 (和记录) 模式!

10 分享原则很重要

如果你和队友之间的共同原则越多,就能越好地在一起工作,而且你会越喜欢和他们在一起工作。

11 附录:不一致性导致的复杂性

这是我能想到的最简单的例子,希望能毫不费力地与现实问题联系起来。

假设一个数据库有两个布尔变量 x 和 y,你的应用程序有一个规则,即 x = y,可以通过使用一个事务修改这两个变量来执行这个规则。

如果这个规则被正确执行,那么数据只有两种状态:(x = True,y = True) 或 (x = False,y = False)。

基于这个规则的函数“toggle”就非常简单。你可以读取其中一个值,并将两个值都设置为反向值。

现在,假设你将这两个变量放到不同的数据库中,并且不能再被一起修改,那么会发生什么?

因为你不能确保 x = y 的一致性,所以数据可以有两种以上的状态:(x = True,y = False) 或 (x = False,y = True)。

  • 如果你的系统处于这些状态中的一种,你应该使用哪个值?

  • 当处于其中的一种状态时,“toggle”函数的行为是怎样的?

  • 在写入新值时,如何确保两次写入都成功?

这些问题没有正确的答案。

当然,如果我们一开始就遵循“剔除无效状态”的原则,那么将只有一个变量!

原文链接:https://kevinmahoney.co.uk/articles/my-principles-for-building-software/

别光盯着SaaS了,咱们还是来聊聊软件吧

来源 / 张狗子 (ID:DogMrZhang

作者 / 张狗子   ·  编辑 / 不萌  

2015年那会儿,资本市场开始有人站出吹“中国SaaS行业的春天来了”。结果5年过去了,发现吹了个寂寞,隆冬都不知道有没有来临,更别提春天在哪里。
 
当下时点,软件行业多少有些不受资本市场所追捧。不过最近深聊了不少软件创业者,也拜访了一些元老级从业者,倒是加深了几点对行业的理解,反而对行业发展多了些期待和信心。

 

01

SaaS本质是软件

软件行业的惨终究源于客户认可度的低

 

SaaS(或者订阅制)只是交付方式,抛开交付方式不谈,本质是软件。软件公司的业务也没有明确的订阅制和项目制边界,往往两者兼而有之,只是比例问题。中国不光是SaaS行业惨,而是软件行业惨。

 

但软件行业的惨,也并非众生皆惨。事实上,中国从来不缺好的软件,滴滴/美团的派单系统、头条的巨量引擎甚至百度的搜索引擎等等,强大程度不输欧美,只是这些软件的公司商业变现模式并非传统意义上的销售软件(或者说牛逼的软件都是在赚业务的钱),这些公司的生存状态也非常好。软件行业的惨,只是针对做企业服务的大部分软件公司而言。

别光盯着SaaS了,咱们还是来聊聊软件吧

区分看待中国软件行业,中国软件行业并非众生皆惨

理解这个现状,需要明白软件对企业来说意味着什么。软件的内核是业务逻辑的具象化工具,本身就需要贴合业务,而工具价值有多大,完全取决于其对业务规模化的杠杆效应有多大。

 

但悖论之处在于,当软件对业务规模化有极大的杠杆效应时,公司往往会重度投入成本去完善而非选择三方公司提供软件产品(除非研发成本非常高,但往往这类软件公司生存状况也非常理想),只有当其对业务没那么大帮助且自研并不经济的时候,才会倾向选择企业服务。

 

这种矛盾就导致了行业发展存在巨大困境。纵观中国软件市场,大部分软件市场玩家始终面临两情况:大客户项目服务重、周期长、回款慢(软件复杂,对企业而言价值优先级没那么高);小客户没有付费意愿、收不到钱(软件简单,对企业而言nice to have)

 

困境之下,行业也分化出了模式最优解:复杂系统打大客户,虽然慢但能赚钱,一个大客户服务一年半载是常态;基础工具打小客户,虽然收费意愿低但用户体量大,每年投入大量的销售+渠道费用洗市场。

 

但无论哪种模式,不像2C的业务有爆发力,2B的发展周期完全按年来计算,从产品打磨、跑通模式、产能爬坡到最后规模复制,企业服务的软件公司想做出点成绩自然来需要些年头。用WPS章元庆总的话来说,中国的很多软件公司不是在解决痛点,是在解决痒点,十几年才做出点成绩很正常。刨根问底,终究是客户在业务层面对软件的认可度不高。

 

别光盯着SaaS了,咱们还是来聊聊软件吧

软件行业是个慢赛道,好的软件公司30年才成就千亿市值,8年仅成就百亿市值(标的还相对稀缺,很多市值几十亿的上市软件公司,是兼职做软件的渠道/服务商,这里就不列举了)。

02
软件行业的惨是闭环式的惨

源头是交易环境(法律保障)的缺失

软件赛道投资人和创业者一定会有一个非常强烈的共识:美国简直是付费软件的沃土,而中国就是付费软件的瘠土。
 
举例两个心酸的事实:
1)同样是业务环节产品,营销、采购、HR、财务、法务各个环节美国都有百亿美金的超级大公司出现,放到中国就完全是“雷声大雨点小”;
2)从交付方式看,订阅制确实比项目制好,价廉物美,但中国客户就是不接受。以CRM为例,美国订阅制的渗透率约73%,中国是倒过来的,大概只有22%。
 
当然,造成这种差别有很多原因,也能从各种不同的角度去给出解释,但笔者认为关键在于源头:交易环境的缺失(法律保障不到位)。
中国的软件行业诞生于盗版猖獗年代,一代人的意识里终究是“免费软件”导向的,这就导致了中国软件行业陷入一个糟糕的闭环:客户意识里不认可软件的价值,软件就卖不好,从业者也赚不到钱,好的人才自然就流失了,当智力密集型行业的人才流失了,产品创新迭代的能力就弱,更没法做出好的产品获得市场得认可。
别光盯着SaaS了,咱们还是来聊聊软件吧
软件市场存在很大的土壤问题,资本介入也很难打破这个僵局,反而造成了很多头部公司出现低收入高估值的情况
而反观美国市场,知识产权高度被重视保护,但凡某家公司盗版产品被起诉,完全能被告到破产,极高的犯错成本让软件有了明码标价做交易的环境。软件能卖钱了,自然软件从业者就能赚钱了,能赚钱自然这个行业就能吸引各种人才(Linkedin上随便看看美国软件从业者的收入和背景就能感觉到中美差距),人才一多各种有意思的软件产品就出现了,整个市场也就欣欣向荣了。
 
顺嘴提一句,目前中国企业上云率不高(大概30%,美国是80+%),因为大家觉得数据上云不安全,这种担心完全是正确的,因为数据泄露问题在美国也存在。但是这不妨碍美国企业对上云的接受度高,终究还是背后有法律在保障。
别光盯着SaaS了,咱们还是来聊聊软件吧
从Verizon 2020 DBIR报告里找到的,美国也存在云储存数据泄露的严重问题
当然还有很多关键因素也造成了中国软件行业的现状,比如劳动力成本低,企业喜欢靠堆人解决问题(长期看没办法解决,毕竟中国劳动力供给数量摆在那);重量不重质的生意思维,注重开源不注重节流(随着经济发展进入低速区,企业认知会改变)等等。
但对智力密集型行业而言,人才始终是第一生产力,只要能够吸引足够多人才流入,中国软件行业发展就大有可为。这需要交易环境的持续改善,更需要一代人意识的改变。

03
软件行业的惨可能成为过去式
但进阶仍需要时间
虽然当下中国软件行业发展表现的不尽如人意。但站在当下往后看5-10年,笔者判断中国的软件行业会有所表现。
 
先说为什么能有所表现,再说为什么是5-10年。
 
首先,我们需要很明确的意识到一个问题:中国完全有开发出牛逼软件的潜力,只是相关人才目前没进入企业服务领域而已。
理解的原因很简单,在中国互联网行业,这些年都出现了很多非常牛逼的软件(更别提游戏行业了),说明中国的软件开发能力并不缺失。只是这些行业的造富能力实在太强,所以吸收了非常多人才。但随着互联网公司该上市的陆陆续续都在上市或已经上市,这波造富的机会在慢慢接近尾声,时代需要新的机会,目前科技行业正在进行,软件可能会是下一批(纯瞎猜)
 
为什么时间周期是5-10年?理由有三:
1)宏观背景看,随着最近“内卷”不断在各个平台被刷屏,显然经济发展不景气的感受度已经传递到社会的大部分神经末梢,“勒紧裤腰带过日子”接下来是共识性的大趋势。当个体意识被唤醒,群体的意识将会很快产生共鸣。对于企业而言,置身于大环境下,当显性收益很难再提升时,企业为了追求利润一定会开始关注节约隐形成本,软件工具是一个很好的切入点。再过5-10年,SaaS软件的概念在中国市场教育也超过了10年,新一批入行2B新人陆续走上关键决策岗,大家对软件的认可程度会完全不同,将有一个质的提升。
2)资本角度看,随着前些年一级市场不断的吹SaaS软件人造风口,导致市场出现了一批“高估值低收入”的软件公司,接下去的5-10年,投资机构将陆续面临基金退出问题,一定会推着企业有所表现,并购也好上市也罢,配合着大佬们的站台和发声,资本市场届时一定会跟着有所反应。
3)业务角度看,随着近期各家公司公布财报我们可以看到(用友云业务前三季度同比增速76%,阿里云业务Q3同比增速60%),大公司在布局云服务上有投入足够的精力,且持续的高业绩增速也证明了市场对软件云服务的接受度在持续变高。
 
随着行业领导者们对市场的持续教育,如果业绩增速所表现出来的接受度在持续变高,完全有理由相信整个市场5-10年内将呈现出完全不同的认知状态。
 
纵观中国软件行业发展30年,其所形成的2B获客方式、交付流程、产品定价都有了很完善的行业共识(相信产业自我演变的力量,总是朝着全局最优解在迭代发展),SaaS的出现也仅仅是能局部优化,但无法根本性颠覆什么。中国软件行业的问题不在于业务环节,而在于工具的市场定价失灵,价值被严重低估。
 
不过SaaS的出现让从业者、资本、企业有了一个行业再教育的机会,当所有参与方都开始参与行业推进,中国市场的软件工具价值,或许真的能被重识。

 

转自:https://mp.weixin.qq.com/s/zoknrJS2j4WgpfkPe1VoYw

计算机技术与软件专业技术资格(水平)考试简介

计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试)是原中国计算机软件专业技术资格和水平考试(简称软件考试)的完善与发展。计算机软件资格考试是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试,其目的是科学、公正地对全国计算机与软件专业技术人员进行职业资格、专业技术资格认定和专业技术水平测试。工业和信息化部教育与考试中心负责全国考务管理工作,除台湾地区外,计算机软件资格考试在全国各省、自治区、直辖市及计划单列市和新疆生产建设兵团,以及香港特别行政区和澳门特别行政区,都建立了考试管理机构,负责本区域考试的组织实施工作。计算机软件资格考试设置了27个专业资格,涵盖5个专业领域, 3个级别层次(初级、中级、高级)。计算机软件资格考试在全国范围内已经实施了二十多年,近十年来,考试规模持续增长,截止目前,累计报考人数约有五百万人。该考试由于其权威性和严肃性,得到了社会各界及用人单位的广泛认同,并为推动国家信息产业发展,特别是在软件和服务产业的发展,以及提高各类信息技术人才的素质和能力中发挥了重要作用。

根据原人事部、原信息产业部文件(国人部发[2003]39号)文件规定,计算机软件资格考试纳入全国专业技术人员职业资格证书制度的统一规划,实行统一大纲、统一试题、统一标准、统一证书的考试办法,每年举行两次。通过考试获得证书的人员,表明其已具备从事相应专业岗位工作的水平和能力,用人单位可根据工作需要从获得证书的人员中择优聘任相应专业技术职务(技术员、助理工程师、工程师、高级工程师)。计算机软件资格考试全国统一实施后,不再进行计算机技术与软件相应专业和级别的专业技术职务任职资格评审工作。因此,计算机软件资格考试既是职业资格考试,又是职称资格考试。同时,该考试还具有水平考试性质,报考任何级别不需要学历、资历条件,只要达到相应的专业技术水平就可以报考相应的级别。计算机软件资格考试部分专业岗位的考试标准与日本、韩国相关考试标准实现了互认,中国信息技术人员在这些国家还可以享受相应的待遇。考试合格者将颁发由中华人民共和国人力资源和社会保障部、工业和信息化部用印的计算机技术与软件专业技术资格(水平)证书。该证书在全国范围内有效。

转自:http://www.ruankao.org.cn/introduction

http://www.ruankao.org.cn/

下一个10年,SaaS行业的机会与挑战

2020年,对于企业服务SaaS是里程碑式的一年。新冠导致了线下活动的停滞,反而推进了在线办公、网上商城等SaaS服务的使用。有人开玩笑的说:CIO和CEO不是推进企业数字化转型的最大功臣,COVID-19(新冠病毒)才是。
下一个10年,SaaS行业的机会与挑战
“钉钉”百度指数的变化趋势
疫情也许有一天会消失,但是体验到收入渠道扩展、成本效率改善等好处以后,相信很多企业会继续使用SaaS服务
10年前,我们还处在寡头垄断的传统软件时代。SAP与Oracle瓜分了80%的世界领先企业,国内的金蝶和用友则依靠低成本控制着中小企业市场,他们都号称提供“行业整体解决方案”,提供生产制造、进销存、CRM、财务等所有产品——而现在,即便是在一个细分的领域,可能也有十几家公司同场竞技。比如,仅仅是CRM领域,除了国际知名的Salesfore,国内融资势头强劲的销售易,快消品行业领域还有外勤365等等。
10年来,传统软件时代的玩家们在逐渐衰败。到2020年,我们已经很少关注SAP和Oracle,这个行业的主角们已经变成了钉钉、企业微信、销售易等。
那么,再过10年,主角们又将是谁?新的创业者还有没有机会?在未来的10年中,SaaS行业会呈现什么样的趋势?我们如何抓住机会?我认为,这一切并非无迹可寻。
 
01 新的创业者还有机会吗?
企业家最关心的是盈利,创业公司能够获得融资,其本质也是“未来有盈利的可能”。
收入是带来利润的最重要因素,因此企业家更愿意在销售环节进行投资,这也是为什么最早的一批创业者选择了CRM领域。
随着企业的发展,收入很难持续高速增长,提升效率和降低成本变得越来越重要。因此,紧跟着CRM,其他领域也百花齐放。比如,在合同签署这个“小”环节,就有法大大、上上签、E签宝等拿到巨额融资的创业公司。
在过去10年,由于看到了SaaS领域巨大的机会,众多创业者前仆后继,到今天,我们可以看到,从CRM、供应链到HR、财务等各个环节,都已经有了众多的玩家。
那么,现在还有创业的机会吗?
我们看到,新的信息技术在如浪潮般翻滚前进,从PC互联网到移动互联网,再到社交互联网,消费者的习惯不断被重新塑造。企业也需要与时俱进,不断迭代自己的基础设施,看看腾讯和阿里近两年在产业互联网上的重金投入,我们就能够知道,SaaS领域的创业时代,才刚刚拉开帷幕。
下一个10年,SaaS行业的机会与挑战
 
02 客户的需求
我亲身经历了2000年到2010年的ERP浪潮,又亲身参与了2010年到2020年的SaaS浪潮,我的切身感受是,不管工具怎么变,客户的核心需求并没有变。
2000年以前,各个部门自行建设的“孤岛”系统,虽然提升了部门运转效率,但是却阻碍了部门之间的信息流转,让高层难以在整体层面上进行流程优化和经营决策。
正是在这样的背景下,SAP和Oracle打着“行业领先解决方案”、“组织流程再造”的招牌,口里念叨着“上ERP找死,不上ERP等死”的咒语,拿下一个又一个大型企业的单子。
高层的焦虑是合情合理的:部门利益的最大化不代表企业利益的最大化,如果各部门都只顾建设自己的系统,那么谁来保障企业的利益呢?
举个例子。
作为市场部门,可能更关注百度投放的哪些关键词能够带来合同,以及带来了多少金额的新合同。但在公司层面,则可能更关注客户的“全生命周期价值”,这既包括市场部关注的新合同金额,也包括服务部门关注的续约合同金额。对市场部门来说,新签越多约好;但是对于公司来说,如果新签的合同不能带来续约,那么这样的新签可能是无法盈利的。
回到2000年,当各部门的系统建设达到一定程度,局部优化与整体优化的矛盾越来越突出,企业高层必然希望寻找到一个站在企业层面思考的整体解决方案。这就是ERP为什么能够大行其道的市场基础。
下一个10年,SaaS行业的机会与挑战
客观来说,不管是新冠,还是互联网公司掀起的“数字化转型”市场热潮,都从外部给企业高层造成了一种压力:如果其他企业都在拥抱数字化转型,那我们是不是已经落后了”,会不会“转型找死,不转型等死”。这正是2000年ERP浪潮的轮回。
下一个10年,SaaS行业的机会与挑战
 
03 未来10年的机会和挑战
未来10年,企业整体数字化转型,会形成新的市场潮流,这将是SaaS行业的巨大机会。
企业整体转型,对客户来说意味着巨大的投入和很高的期望值,SaaS行业必须满足客户的三点核心诉求:
1、希望借鉴其他企业的成功经验
2、希望有企业整体方案,替换或整合部门级方案
3、希望能“交钥匙”,借助外力完成方案的落地
这对SaaS公司其实是蛮大的挑战。
首先,这意味着必须要有行业领先企业的案例;参与过大项目打单的销售都知道,很多时候,客户高层都会进行对标”,即本行业最优秀的企业是怎么做的。因此,行业领先企业的案例,其实是一种稀缺资源,拿下了行业领先企业,某种意义上就意味着拿下了整个行业。但是我们看到,虽然很SaaS公司宣称行业头部企业是他们的客户,但是很多时候都只是一种假象:因为可能只是一个子公司、或者一个非核心部门使用了他们的产品。
下一个10年,SaaS行业的机会与挑战
其次,必须要有强大的标准化产品和强力的实施团队,能够相对低成本的完成交付。这方面对产品、项目经理都有很高的要求。一方面,如果产品的配置性不能满足客户个性化需求,交付成本就会很高,盈利会变得非常困难;另一方面,如果项目经理能力不够,失去方案的主导权,或者进度失控,也会导致交付失败。而在这两个方面,部分SaaS公司应该说还比较薄弱。
最后,要有足够多的“合作厂家”,彼此可以进行深度的集成。靠自己开发行业整体方案的所有产品,理论上可行,但实际的成本和对人才的要求太高;而与其他SaaS厂家的合作,则有利于降低成本,充分利用行业资源。不过,由于目前“部门级的需求”仍然是主流,这方面的合作还是相对少的。
以上三方面的挑战,其实也是SaaS行业当前实际面临的问题。不过我们需要认识到,这些挑战背后的本质,实际上是客户对整体解决方案的呼唤。随着部门级SaaS方案的逐步成熟,随着数字化转型成为企业高层的关键需求,跨部门流程、公司整体流程的优化,会逐步成为重要的市场机会。
 
04 如何应对挑战
在行业案例方面,SaaS公司需要积累行业领先企业的案例,而且尽量是核心部门、或者是公司级项目的案例,为此战略性的亏损是可以接受的。但是,要防止贪多嚼不烂,如果客户的先进管理经验不能内化到SaaS标准化产品中,行业领先企业的案例就失去了意义。
下一个10年,SaaS行业的机会与挑战
在产品方面,要进行合理的产品划分:在基础产品上,按不同行业、不同客户类型(如厂家、经销商)、不同客户规模、不同国家地区等,划分成各相对独立的产品。核心目标是95%的需求都能够通过标准功能满足,剩余5%的需求再进行纳入迭代计划。
下一个10年,SaaS行业的机会与挑战
目前很多公司在产品规划上走了极端,有的是完全定制化,这样的方向其实就是破坏了SaaS的颠覆性,彻底变成外包公司;有的则是一个产品打天下,这就会导致不同客户的需求相互冲突,产品能力无法支撑。
在实施团队方面,要完善SaaS实施方法论,通过标准化流程和机制提高交付质量;要建立起标准化人员培养机制,充分重视标准化文档、定期培训的作用,降低人员培养的成本。只有提高标准化程度,降低人员成本,SaaS公司才有可能实现规模化盈利。这方面我一直强调SaaS公司要“工具升级、人才降级”,具体思路请参考我另一篇文章SaaS颠覆传统软件了吗?
下一个10年,SaaS行业的机会与挑战
在对外合作方面,CEO要建立起行业朋友圈,与其他产品厂家、咨询公司探索合作共赢的机制;同时,提升产品的开放程度,让自己成为“整体解决方案”的一部分
下一个10年,SaaS行业的机会与挑战
 
05 结语
企业只要还存在,就必须不断进行自我优化。当新的技术出现,个别敏锐的部门会率先进行尝试,但是最终,企业会进行整体的变革。而这,就是未来我们的机会,和需要面对的课题。

下一个10年,SaaS行业的机会与挑战

演示工具ZoomIt

ZoomIt软件一个超级好用的演示工具,当你放映PowerPoint胶片(or whatever)时,通过ZoomIt,可以运行热键激活放大和直接在屏幕上划线的功能,讲解胶片需要放大细节、勾重点或者做一些辅助标记的时候非常有用。

界面预览

在官方下载ZoomIt之后,无需安装,解压缩即可使用。

第一次运行时,程序会弹出如下图所示 的选项对话框,来提示用户:

第一,软件具备的功能:屏幕放大、屏幕标注、定时。

第二,设定相应快捷键(默认为ctrl+1/2/3)

功能使用

ZoomIt基本功能与快捷键操作0. 配置:使用前设定快捷键

当您第一次运行ZoomIt,它将弹出一个配置对话框,描述ZoomIt能做什么,让你指定热键来更方便的进入缩放或标注功能,而且还能够自定义绘图笔的颜色和大小。例如,我可以用标注功能标注屏幕上的问题。ZoomIt还包括一个定时器功能,当你从定时器窗口切换出来它甚至仍然是可用的,并且,你还可以通过点击一下ZoomIt托盘图标再返回到计时器窗口。

屏幕放大

按下快捷键(默认ctrl+1),即可进入ZoomIt的放大模式。这时屏幕内容将放大后(默认2倍)显示。

移动光标,放大区域将随之改变。

用鼠标滚轮或者上下方向键,将改变放大比例。

关于实时放大,见下。

按下Esc键 或 鼠标右键,会退出放大模式。

在放大模式下,按上鼠标左键,将保持放大状态,启用标注功能。当然,也可以退出放大,只进行标注。

屏幕标注

标注功能主要用来突出屏幕的某一部分内容,比如图片的某一细节、文章的关键段落。

按下快捷键(默认ctrl+2),或在放大模式下按下鼠标左键,可进入标注模式。这时,鼠标会变成一个圆形的笔点,其颜色、大小可调。

* 通过按住左ctrl键,使用鼠标滚轮或者上下箭头键调整画笔的宽度。

* 按键调整画笔颜色:r 红色;g 绿色;b 蓝色;o 橙色;y 黄色;p 粉色。

可轻松画出不同的形状:

* 按住Shift键可以画出直线;

* 按住Ctrl键可以画出长方形;

* 按住tab键可以画出椭圆形;

* shift+ctrl 可以画出箭头。

其他操作:

* Ctrl+Z:撤销最后的标注。

* e:擦除所有标注。

* w(白色)/k(黑色):将屏幕变成白板或黑板。

* ctrl+s:保存标注或者放大后的画面。

*屏幕打字:进入标注模式后,按‘t’可以进入打字模式。Esc或左键退出。鼠标滚轮或上下箭头可以改变字体大小。缺点是,不支持中文。

* 鼠标右键:退出标注模式。

定时

通过快捷键(默认ctrl+3)或点击ZoomIt的托盘图标菜单,可以进入定时器模式。

用箭头键可以增加或减少时间。你如果alt+tab从定时器窗口退出,可以点击ZoomIt的图标再激活定时器。用Esc退出。

第3项是定时器功能,使用此功能时会暂时将桌面利用白色屏蔽覆盖,并在白色屏蔽上出现倒数计时的时间,您可以选择倒数计时时间的长短、倒数计时结束后是否要播放警告音效、白色屏蔽透明度、倒数计时时间显示在屏幕上的那个位置。

下载地址:https://www.onlinedown.net/soft/54654.htm