在WEB世界中,你经常发听到业务人员或是自由职业人员报怨报酬过低,这是很常见的事情。让我们来看一下如果一个当地的咖啡馆联系你帮它重新设计和升级WEB应用.它同时要求加入博客功能,这样它可以发布最新的咖啡工艺介绍以及相关文化和事件等等。可是,在第一次会面时,客户提到他们没有太多的预算。
当然,你作为一个商人可以继续追问:我们无论什么规模的项目都需要预算的支撑,你的预算范围区间在哪?咖啡店的业主会告知你他仅有1500美刀的预算,很多人在听到这句话时,就会认为这在浪费时间,直接放弃了这个CASE。
其实我们总是有很多潜在的项目可以发掘,但总是预算比我们想要的少的多。在WEB世界里,小项目的数量在极速的增长着。总会有一些刚起步的公司和团队需要小型的WEB系统。但是在WEB开发圈子里,我们总是会更加功利的拒绝他们的请求。
我觉得我们要开始反省一下这种作风,众所周知,钱是积累出来的,并不是说我们坐着等就可以等到一个符合自已口味的大项目,往往在这种等待中,许多小项目不翼而飞。
假如我们可以稍微变更一下路线:如果我们把注意力转向小项目市场,平均每个项目1500美刀,同时一年很轻松的做下10~15个的,那我们最终这一年就可以收到15,000~22,500美刀。这是一个很可观的回报。


许多刚起步的公司或团体,每天都在幻想在哪一天可以接到一个收获颇丰的大项目,这样就会让他们在工作中很纠结,很显然这不是一个好兆头.我们需要的是变革,变革我们的开发流程,变革我们的计划,变草我们自己。我们需要找到一条适合的道路去赚钱。接下来会讨论我们如何通过变革来让自己更加轻松的获得利润。

It’s All About The Process

在WEB圈子里,我们其实都了解如何去实现一个低预算的项目。我们有很多的框架和解决方案,像WORDPRESS,HTML5等等。如果发挥好这些开源快速开发框架是我们在小项目中赚钱的关键点。
可是,在你决定解决方案之前,不妨花点时间来明确一下客户想要什么。留意这些能可以让你用最小的工作量来结束项目。下面我们将探讨一些节省构建项目时间的方案.

Write Down Your Processes

你可以将你过去所有项目的开发经验进行总结,写出一个低预算的指导方针,这个方针并不是说如何去让项目做的更小,而是阐明项目中的各环节的指意事项和细节,比如如何最快速的布署项目,如何最快速的安装,如何最快速的发布,以及一些可复用的模块的提取和使用,还有常规问题的总结。这些可以让你的项目开发效率极大的提高。可能有时某一个异常的出现会花上你数小时的珍贵的时间,但是如果这个问题你总结了,你就是为以后节省了几个小时。

process-board

其次,通过这个指导方案的总结,你可以一目了然的得出哪一种方式更高效。通过这种准则,你可以最小化你的构建时间,而且你可以很自信的确定这个流程。

Choose a Framework

你也可以选择一些框架并进行二次开发。比如,你想快速的实现WORDPRESS网站的定制,你可以使用 Carrington JAM .它是一个空白的WORDPRESS主题,但是你可以使用拖拽的形式来完成样式的构建.
如果你不想使用wordpress的话,我建议你使用 HTML5 Boilerplate。如果你熟悉python的话,也可以使用Django 进行快速开发.

Use a Theme

使用别人的主题这根本不是一件羞愧的事情,其实你应该觉得幸运,你找到了一个主题,并且可以减少你大部分的工作量。试想如果你只有30个小时在这个
项目上,但是因为主题样式你就花去了15个小时,这是一件多少悲惨的事情啊。而作为只有1500美刀的项目,如果你一个小时的收费是100美刀,那么你在
这个项目上只能花15个小时。所以你不得不采用定制好的主题进行二次开发。但是,有一点一定要遵守,禁止更改版权,一定要按照开发licensing来做。同时要给主题作者知情权,否则得不偿失.

Work in a Modular Fashion

什么是模块化编码?你可以看许多的网站,他们总是有一些公用相似的地方。WORDPRESS就是一个很好我模块化分的例子。一般我们都会构建一个代码库,比如自定义的twitter和facebook组件,自定义的文章发表组件,图象浏览组件等等.当你写新的代码时,请考虑一下是否可以复用,是否可以实现定制化。例如,我们经常会写一些image slider,其实我们完全可以用PHP脚本封装一个功能模块,然后定制化一些常用的参数,我们每次使用只需要传入一些参数即可,这样我们每一次都可以至少节省20分钟吧.
如果你几个月甚至数年的时间都在不断的积累这个代码库,那么你在以后的开发生涯中,你会节省一大批时间,同时你也可以保证产品的质量。你会很自信的给客户说:no problem!

Get Familiar With Less

Less,这个组件可以让CSS的关键字高亮,我们使用这个组件,至少可以节省10%的CSS编写时间.


当然除此之外,这个组件有一个混合植入的特性,它可以让你的CSS从一个CLASS值入到另外一个CLASS中去,这样你就可以像写程序一样将CSS写成FUNCTION,然后传入不同的变量。下面就是一个例子:

[CSS]

.rounded-corners (@radius: 5px) {
border-radius: @radius;
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
}

#header {
.rounded-corners;
}

#footer {
.rounded-corners(10px);
}

[/CSS]

 防范未然

我们在开发中最大的问题就是,我们经常会碰到客户的期望与他们给的报酬不等。同样的,项目完成等待客户验收时,我们会看到需求的渐变,截止日期变更,支付的拖延,因为客户总是不会轻易的满足。我总是在晚上会想这些问题:难道整个商业圈都是这样的吗?我再也不做这个了,太痛苦了.
我开始意识到这个问题,如果这是一个不断循环的过程,如果碰到这个情况,就算是我客户的过错,我也会受到责备。
所以,我开始思考,我应该怎样防范这种事情.
从简单来说,我们最主要是让客户验收这个项目是否流畅稳定。同时你要将你大部分精力放在明确需求的开发中,以及关注客户最关心的板块。剩下的时间你才去处理需求的变更,项目资金问题。下面会深入讨论这些问题:

提前给客户展示网站样式

通过给客户提前演示网站的样式是最好的方式。它可以让你减少很多麻烦,同时也可以知道客户想要什么.

化分优先级

在你和客户的会议中,你在帮助客户列出他们想要的所有的功能集,在功能集完成后,你需要在上面表明“必要的”,“高优先级”,”普通”等。这样,你就不会纠结客户到底需要什么,同时你也能节省项目开支.

告诉他们YES或NO

你如果真诚的和客户交流,你会在客户需求变更时减少许多的时间.比如他们要求增加一个图片展区,你可以直接说这么少的钱做不了崃,或者做这个需要花太多的时间,这个预算支撑不了.这个你需要在项目最初就要交涉好,让他们知道这个暂时做不了,他们也不会多提。只会等下一次预算来了再谈.

合同

这个一定得要.里面要写清楚你需要做什么,做多久,以及确立客户期望.这个合同可以保障你和客户的共同利益,我强烈建议在正式动工之前就确立合同或是相关机构进行公证.

会议保障

我们需要在合同中明确会议的参与义务。你该知道客户几乎想逃避这种会议,这样带来的是我们开发的时间进程的受阻。但是我在过去的开发中,没有任何一个客户缺席,这样我们很轻松的完成了项目。为什么呢?因为我在合同里面明确了客户对会议参加的义务,如果没有参加的,会有相应的惩罚,当然是他们需要为缺席买单了。

处理好资金问题

对于小项目,我强烈建议分期付款(预付模式).客户提前支付定金比项目完成支付要好的多,这样你可以省去很多头痛的事情也有了一个前提保障.
其次,你需要在合同里面确定资金支付的时间。同时要让客户知道没有按时付款所需要承担的法定责任。你需要明确滞纳金,同时在规定时间前及时的通知客户付款。一般来说滞纳金是10%的项目经费.

 

以上这些,如果能把握得当,对于小项目应该可以游刃有余了

6 thoughts on “勿以(项目)小而不为”
  1. Nice! 我以前看到过相关的文章,但是却没有看到这么细致的,如果有案例学习就更好了,我现在准备接一下小项目来做,可惜对流程不熟悉,如果有一个案例作参考就NICE了。。 希望博主能更新一下。。。

  2. Great post…
    我认为签署一个协议是非常有必要的,我是一个自由职业开发人员,任何一个项目没有协议我是不会动工的,哪怕再好的关系也不会。一个协议是必要的流程,可以省下很多时间和金钱。。
    嘿嘿

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注