分类目录归档:技术

记那些年在 IT 项目中踩过的坑

最近进行了几次 IT/互联网项目的交流讨论,主要针对项目实施过程中碰到的问题展开,以求寻找问题的解决方案得以让项目继续向前推进。项目实施中碰到问题是很自然的事情,本以为是一些随机性的现场功能性问题,但其实并不是,在我看来这些碰到的问题是一个 IT/互联网项目比较基础的问题,结合过去项目的一些经历,说说我的看法。

在这里 IT/互联网项目包括软件开发项目、软件+硬件的系统集成项目以及现在的互联网+智慧型项目,这类项目一般面向一个行业,项目规模比较大,涉及的内容比较多,需要投入的资源比较大,这也催生了很多专门吃某一行业的项目型企业。这类项目的甲方「客户」通常会采用招标、邀标、单一来源采购、内部议标等诸多途径来选择乙方「实施方」。

对实施方来说,在做这类项目的时候,重要的是能不能围绕时间、质量、成本这三个要素完成一个可交付的产品,一个可交付的产品并不是指一个非常好的产品「据最近的朋友反馈说朝这个方向在转变」。可交付有两重含义,其一是客户能够按照约定期限给你钱,其二是内部团队有能力按照约定给用户提供产品及服务。这需要在这三个互为矛盾的要素间寻找平衡,这属于项目管理范畴,可以通过阅读相关书籍和实践获得提高。从经营的角度来讲,只要完成可交付那么这就是一个成功的项目,从这点来讲一个项目最大的坑就是怎么完成可交付,这应该是项目团队所有人时时应该考虑的事情,团队所有的协作就为获得这个结果,为此团队成员需要设定一系列的目标并完成它们。

在完成可交付的路上碰到孤立的项目是幸运的,但现在往往这样的项目很少,不孤立意味着会与其他项目发生关系,发生关系就会产生成本,很多时候这就是一个坑,常见于跟其他系统或设备的对接,我们可能会碰到其他供应商不提供接口、提供接口要收费、提供不符合我们使用的接口等诸如此类的情况。

无论什么情况,在实施过程中才发现这样问题往往会付出更大的成本,首先是时间成本,项目肯定延期;其次是费用成本,无论是那方解决问题都需要投入费用;最糟糕的是第三种情况,就是付费人家也不提供接口。

对于付费能够解决的通常会给这部分做个接口费用的报价「客户如不想支付这部分成本,必然会主动协调各方」,对于付费也不能解决的可能需要审视自己提供给客户的产品和服务,这有可能就是碰到的又一个坑,你无形中攫取了别人的利益。如果别家厂商的盈利方式是靠这个的,你的产品或服务在有意或无意的情况下分走了人家的利益,这肯定是很糟糕的。

如果提供的产品和服务的核心价值在此,客户又认可,那么可以采用不友好的方式替换掉对方,替换不是单一的设备或系统,而是要接管系统和设备后承载的所有业务。合作则是我认为比较好的选择,这就要求关注自己提供产品和服务的核心价值,尝试找出能够结盟的利益分成点,放弃涉及别人利益的地方,改造自己的产品以共同完成客户的不同方向的诉求,同时努力提高自己产品的壁垒。并行也是一种选择,并行的背后依然涉及到竞争,同时会对客户的使用多少造成不变,在自己很弱小而且提供的产品和服务的核心价值的壁垒并不那么厚的时候,很有可能只是帮助其他厂商验证了一下你的产品和服务给用户带来的价值。

在做项目的过程中,账期也是一个坑,账期是你的成本,账期也可能是你的收益,虽然做项目的过程中很少有把账期作为收益来运作的,但在不得已的时候也是可以给你的供应商一个账期以延缓资金的压力。针对成本好好的细细思量,要不看着赚钱,其实一屁股债。保持足够的现金流,尽量根据回款周期阶段性的支出成本。有不少企业项目做的不少,回款收不进来,最后企业给拖死这也是有的。

上面说到项目管理可以通过阅读相关书籍和实践已获得提高,这些获得的提高对内更有用一些,对客户来说实际更多的时候关注好人就行了,这类项目中的干系人不是单一的,很多时候往往由于忽视了不同角色的干系人就掉坑里了,比如搞定了埋单的人但是忽视了使用的人,因为这样项目失败还是蛮多的,就算项目没有失败,很多时候也是影响回款的。怎么维护好不同人的关系这其实挺复杂的,我做的并不好。在以往的项目中一般会用给他们干干活、买一些水果,小礼品什么的这样的方式接近他们,然后跟他们聊聊天。

除了上面说的之外还有很多很多的坑,比如需求的坑、选型的坑、运营的坑、部署的坑、售后的坑、安全的坑等等,要避免跨过这些坑在我看来主要取决于是否能够依据项目所在的行业,针对项目清晰的界定风险边界,而要想能够清晰的界定风险边界,就需要对这个行业组成的生态有足够的熟悉,在奔向熟悉的过程中,我们是需要支付成本的,企业为碰到的坑埋单是成本之一,成本之二是自己得花足够的时间成本来尝试理解这个行业。

本文首发于我的微信公众账号「时间易逝」,欢迎订阅我的微信公众账号
在微信中搜索「doevents」或用微信扫描页面右上方二维码可订阅我的微信公众账号

想起了20多年前一个叫 TT 的软件

儿子在平板上玩「我的世界」这个游戏,学会找到游戏录播视频边看边实践,玩的不亦乐乎。偶尔几次给我说要玩模组,这东西我不大懂,大概看了看录播的视频,好像都是在台式电脑上开玩的,每每提及时我都会说:『要玩这个得先会操作电脑,要会使用键盘鼠标这两个最基本的输入设备,鼠标已经会了「小游戏的功劳」,我教教你键盘怎么使用?』

后因学习拼音好像略微跟英文字母有冲突,所以在大概说了说键盘布局后也就不了了之了。最近学前班结束,我就琢磨着大概给他讲讲电脑的基本组成,并让他练习一下键盘的使用。

按照我的理解,要想很好的使用键盘可以通过对键盘键位的认识重复性的练习来达到。对键盘键位的认识一方面要了解整个键盘区域的划分及其功能,另一方面是 10 根手指每一根都负责哪些键,如题图所示。重复性的练习则是提高熟练度,最终能够做到快速的盲打,提高熟练度的练习结合一款软件来配合练习应该会更好。

上网搜了一下指法练习的软件,在线的大部分以 Flash 游戏的方式提供,尝试后发现并不好用。需要下载的动辄好几十兆,我突然就想起了 20 多年前我用的一款叫 TT 的打字练习软件。

software_tt_00

随着回忆中浮现的昔日画面,TT 这个软件产品也越来越清晰,这是一个非常小的软件,应该不到 100K,具有由浅到深练习体系,从最简单的几个键到全键盘的练习体系都有,还具有游戏的关卡模式,有速度和错误率统计功能。我记得我们当时在略微熟练以后常常轮换着在宿舍的电脑中进行 PK 看看谁盲打的速度快及正确率高,或者看看谁能闯过多少游戏关卡,也蛮有乐趣的。当然玩这个软件的时间并不长,不知道当时有多少人在用这个软件,但我想用过的都应该多少会记得它。

software_tt_01

从现在来看这是一个优秀的产品,首先这个产品解决了用户核心需求,也就是用这个产品能够提高正确打字的速度,解决用户核心需求的产品才能产生价值。其次,给出的解决方案足够简洁,可能包括上手使用简单重复但不枯燥清晰的阶段性目标达到目标的反馈

一开始容易上手会有一个好的开端,使用的人不会因为难度过高或挑战过大而过早的放弃,这个产品构建的由部分到局部,由浅入深的阶梯体系使得开始用的人能有一个良好的开端,通过不断的进阶中给你不同的选择,最终达到作为一款工具提高效率的目的。

整个键盘就一百多几个键,常用的键大约有 40 来个,这样的练习肯定会重复,重复一般会带来枯燥,这个产品通过游戏关卡的方式,逐渐增加字母的方式来完成进阶的挑战,大大降低重复带来的枯燥,使得在练习的时候有那么一点点有趣,在当时黑黢黢的屏幕和命令后的 DOS 时代,体验做的也不错,在挑战每次目标的时候有动静结合的交互,还有声音提示。

每选择产品提供的一项功能,会清晰的给出一个阶段性的练习目标,对这些阶段性目标中的字母使用各种组合进行随机处理,既能够很直观的看到完成一次练习你要达到的目标,也很好的练习了各个手指的熟练度。

在每一次向目标迈进的过程中,会有即时的反馈,能够很直观的以视觉、动态及声音提示向用户进行反馈。你时刻知道你正在那里,还有多长时间完成,这次的挑战比上次的挑战有进步与否,过程中有多少地方有错误等等这些都会给予反馈。

我想我们现在在做的产品可以在完成用户核心需求的基础上,考虑从这四个方面着手使得整体的解决方案更简洁。

本文首发于我的微信公众账号「时间易逝」,欢迎订阅我的微信公众账号
在微信中搜索「doevents」或用微信扫描页面右上方二维码可订阅我的微信公众账号

如何寻找没有版权限制的高质量图片

工作中经常会需要寻找一些高质量的图片素材,但很多通过搜索引擎获得的图片是有版权限制的,版权限制一般会告知「禁止商业应用或个人应用」,我们应该注重每个人的劳动成果,对于有版权限制的图片,如果我们必须要用,可尝试联系版权所有者获取授权后使用。

在版权限制之外同样存在很多高质量的图片素材可供使用,对于并没有很多预算或无法获得授权的朋友是一个不错的选择。今天说说我寻找图片经常去的一些网站供大家参考。

摄图网 699pic.com

摄图网「699pic.com」是一个提供免费正版摄影图的网站,目前这个网站大概有 100 多万张图片,平常我偶尔去这里,之所以第一个放这个网站是因为这个站点访问是最无压力的一个站点,要使用这个网站的图片需要注册账号。

findpictures_01

pixabay.com

pixabay.com 这个网站的图片及其质量是蛮不错的,访问同样无压力,但访问速度稍稍有些慢,这是我寻找图片常去的一个网站,一般都会有不错的收获,支持多尺寸免费下载,不过需要注册一个账号并保持登录状态,其实不下载也是可以使用的,要看具体使用场景而定。

findpictures_02

pexels.com

pexels.com 同样也是一个图片及其质量蛮不错的站点,访问同样无压力,这里也是我经常去的一个地方,速度也不错,针对每一个图片都会显示详细的信息,比如对于拍摄的相机型号、光圈、焦距等,支持多种尺寸的下载,目前下载并不需要注册一个账号。

findpictures_03

Google.com

Google.com 是我经常使用的一个搜索引擎,用于任何想在互联网上搜寻东西的时候,查找图片也不例外,有专门的图片搜索站点。直接访问这个站点还是有些压力的,其实这个站点是不能直接访问的,需要找一些途径来使用它。正如下图中红色箭头指向的位置,在进行图片搜索的时候,Google人性化的提供了一个工具按钮,使用该按钮后会有一排的选项,比如大小、颜色、类型、时间、使用权限等,在使用权限中可以找到没有版权限制的图片,结合其他选项就能获得高质量的图片列表,通过不断的变换搜索关键词从而找到满足自己使用的图片。

findpictures_04

以上是我在寻找图片时经常使用的一些站点,希望这些对你也有用,在这些站点寻找图片主要依据关键字搜索获得,我主要是直接使用图片会多一些,最多有少量的尺寸修改。如果是设计师想从图片中获得设计灵感,还有不少其他的去处,比如国内的「花瓣」,国外的「Pinterest、Dribbble、Uplabs」,如果你有更好的发现,并愿意分享,非常希望你能告诉我。

本文首发于我的微信公众账号「时间易逝」,欢迎订阅我的微信公众账号
在微信中搜索「doevents」或用微信扫描页面右上方二维码可订阅我的微信公众账号

我看微信订阅号排版

尽管我这个订阅号目前阅读数很少,但还是收到了一些反馈。非常感谢给予反馈的这些朋友,有反馈才会产生双向的互动交流,紧接着思考,才可能提高。最近有两点反馈,一是太长,二是排版,今天主要说说排版,在说排版前,简单说说太长。

对于太长的反馈源于对「完成第一次公众分享后的 4 点收获」这篇文章,朋友对「太长」给出的建议是分篇,这对我目前是一个很好的可供使用的方案,下一次如果太长将尝试采用这个建议。对我自己而言「太长」还有另一层含义,就是我现在写不短,这也是我尝试通过微信订阅号的写作练习想要解决的问题之一,能够将事情很简短的描述清楚是很有趣的事也是我想要做到的事。

下面说说对微信订阅号排版的一些想法,对于需要正式一些要提交的文档的排版以前写过「让你撰写的文档看上去更好一些」,在此微信订阅号中回复数字 1 可进行阅读。

在微信订阅号中用户获得的资讯的一般表现形式是图文消息,图文消息的展示一般会有排版的要求,在我看来排版是为了能够让用户在阅读的时候更舒服,获得更好的体验。

审视组成图文消息的所有元素是排版的基础。排版是针对主体,这个要传达信息的本身而进行的,当完成一篇图文并茂的文章后,审视一下组成这篇文章的各个元素,看看是否存在很吸引眼球但又与你主体想要表达的无关的元素存在,所有的元素都应该以为主体增光添彩为目标,要辅助读者理解要表达的想法,允许有达到特定目的的元素存在,但要尽量在主体表达之外,在这里可以多想想「如无必要,勿增实体」。

比如主体是以文字完成你要传递的信息,为了增强文字表达的效果,配了一些图,如果图跟你文字表达完全不能产生关联,而这些图又因为设计良好很吸眼球,我认为这会对主体产生干扰,必定不会有好的排版。比如主体是创作的漫画,结果配了一些光芒四射的很突出的大字,这同样也不会有好的排版;再比如创作了一篇忧伤的文章,却配了一首欢快的曲子,这同样有些糟糕。

在基础之上,对于大部分微信订阅号,简单的做到两点基本上就可以有不错的体验:一定的行间距和一定的字间距,这样做会让读者通过屏幕阅读起来感觉不那么拥挤,如果配的图、视频、音乐等多媒体元素又增强了对文字表达的理解,这一定会让读者获得好的体验。

除此之外更多的还需要在创作过程中不断摸索,可能基于用户特征,可能基于用户反馈,可能基于图文消息的逻辑结构,也可能是针对文字中的强势语言与弱势语言之间醒目标注区分等等,通常情况下对于排版这方面的在意程度并不是很强烈,而且对于排版每个人的看法也是不尽相同的,我的做法是尽量保持简洁。

最后说说排版中我认为比较好的一些做法:

  1. 段落的首行不要缩进,这样能够有效的利用移动设备的屏幕,这毕竟不是正式要输出的公文;
  2. 首行不缩进的基础上,增加段落之间的间距,可以在每个段落间空两行,能够有效区分不同的段落;
  3. 如果采用标题建立层级的文章逻辑结构,可以对标题做强调或有效美化,以便于用户迅速了解文章要表达的逻辑结构,对于想强调的内容也可同样这样处理;
  4. 在图文最后放置引导用户关注、分享的信息应该更好,这就像交女朋友,一见钟情是极少的,就算是先上车后买票那也得有个对双方都记忆深刻的过程不是。

本文首发于我的微信公众账号「时间易逝」,欢迎订阅我的微信公众账号
在微信中搜索「doevents」或用微信扫描页面右上方二维码可订阅我的微信公众账号

微信公众号排版的三种方法

好的排版可以使人更舒服的阅读你的内容,完成对微信公众号内容的创作之后,进行适当的排版是必要的。目前我了解的微信公众号排版有三种方法,分别是原生态、三方工具、个性化定制。

原生态

原生态就是使用微信公众平台自身提供的图文消息编辑器来完成排版工作,通过编辑器上方的工具条和右边多媒体按钮组完成排版工作,目前我使用这种方法完成排版,基本上满足我的使用,我的公众号内容主要是由文字组成,对于排版使用编辑器提供的功能很少,我通过以下的方式完成排版的工作。

1. 先在电脑上完成文字的编写;

2. 填写文章标题及设置题图;

3. 以纯文本的方式将内容粘贴到图文消息编辑器中;

4. 段落的首行不缩进,使用编辑器「行间距」按钮调整段落行间距为 1.75 ;

5. 段落间以两个空白行进行分割;

6. 末尾放置公众号二维码「正如在本文最后放置的二维码」。

 

经过这 6 个步骤后,就完成了排版。如果能直接使用编辑器略微增加点字间距,将字体颜色略微变淡一点可能阅读起来更舒服一些。

三方工具

有排版的需求自然就有解决这个需求的工具产生,对于微信公众号的排版,有很多的第三方工具,通过搜索引擎查找「微信排版」能找到一大堆工具可供使用,这类工具一般提供各种样式的模板、元素以供选择使用,可在图文消息的头部尾部及各个段落选择不同的元素及样式完成排版,同时这类工具一般也提供一个编辑器来供实时查看效果,自己达到满意后,将第三方工具编辑器中的内容复制到微信公众号图文消息编辑器中即可。

如果要用第三方工具来完成排版,将搜索到的工具逐一尝试,选择自己用起来最有效率的即可,多加使用自然就纯熟,在能够轻松驾驭内容之上,可选择用工具点缀内容,提高整体的美感。

个性化定制

还有一种,就需要进行个性化定制了,个性化定制需要完成两部分的工作,第一是要请设计师设计个性化的排版,第二是在微信公众号中实现个性化定制。

设计这部分就不说了,通过沟通交流设计师会完成的很好,当然也可以自己完成设计,设计完成之后需要在公众号中实现设计师的设计,这需要懂一些开发技术,由于微信公众号是以网页进行展现的,所以要懂一点网页设计开发技术,需要了解 HTML(超文本标记语言)、CSS(层叠样式表)。

主要工作是用 HTML 完成图文消息文档的结构及内容,在文档结构各个元素上应用 CSS 达到与设计师设计的具有相同的效果,这部分的工作其实就相当于第三方工具中的提供的模板,只不过这个模版是个性化的,属于自己独有的。

举个例子,比如可能每个段落的行间距为 28px ,字间距为 1px,字体颜色为 #646464,字体大小为 15px,内容在边界内换行,阅读起来会更舒服一些,我需要给每个段落的 HTML 标签 p 增加 CSS 样式。

threestyleforwechat_03

将这些增加了样式的网页代码粘贴到微信图文消息编辑器中,发送到手机进行测试修正,最终达到跟设计的效果一致,这篇文章的排版效果是按照上面所描述的,对比以前的文章阅读起来是不是要略微舒服一些?

实际使用中将设计转为网页还是有不少工作要做的,如果确实有需要个性化定制,这部分工作可以请开发工程师来帮助完成。每次都这么做会花费大量的时间,可以考虑将排版自动化,可以使用脚本程序将你用于写作工具生成的网页中的标签替换为你定义的 CSS,并对应的引入 CSS 中使用的资源,这样就能拥有自己个性化的排版。

平常阅读中碰到的公众号中使用工具的比较多,原生态的也不少,自己个性化定制的略微少一些,不管怎么样,在我看来好的排版能够让读者阅读的时候更舒服,获得更好的体验,从内容主体出发可能是一个好的选择。

本文首发于我的微信公众账号「时间易逝」,欢迎订阅我的微信公众账号
在微信中搜索「doevents」或用微信扫描页面右上方二维码可订阅我的微信公众账号