定制开发
有些问题不是一个网站能解决的。当需要的是一个工具、一次系统集成,或是一套不该再靠人工完成的流程时,我们就会转而构建这些。
团队小而资深,对项目范围坦诚相待。如果市面上已有产品能解决您的问题,我们会如实告诉您,而不是收费替您重新造一遍。
登记表
我们承接的项目类型
描述定制软件最有用的方式,是看它消除了什么问题。以下是最常见的几种情形,以及我们通常会为此构建的方案。
| 问题 | 我们构建的方案 |
|---|---|
| 同一件手工任务每天重复,却由一位资历远超此任务的人来做 | 一个内部工具,把流程固化下来:一个表单、一个处理队列、清晰的操作记录,以及与团队实际运作方式相匹配的权限设置。 |
| 两个互不相通的系统 | 一套负责在两者之间做映射的集成方案,一方故障时能安全重试,需要人工介入时也会及时提醒。 |
| 整个业务运转依赖一张没人敢动的电子表格 | 一个背后有真正数据模型支撑的小型网页应用,让两个人可以同时操作,也不会有人不小心覆盖掉上个季度的数据。 |
| 每周都要有人手动整理的一份报告 | 一个定时任务,自动收集数据、进行核对,并把报告发送给需要它的人,每次运行都有记录可查。 |
| 硬塞进官网、最终撑不住的客户流程 | 一个拥有独立网址的正式应用,并沿用网站的设计系统,让它依然与整个品牌浑然一体。 |
| 没人能报价,因为根本没人界定过范围的项目 | 一个简短的需求梳理阶段:以书面形式定义出最小可运行版本,同时同样清楚地列出我们不会构建的部分。 |
判断依据
我们如何决定构建什么
- 先做出能用的最小版本。一个范围虽窄但已投入实际使用的工具,两周内教给你的东西,比一份完整的规格说明书三个月教给你的还多,等弄清楚哪些部分真正重要之后,再逐步扩展也不迟。
- 刻意选择成熟无聊的技术。比起有趣的新技术,我们更愿意选择久经验证的方案。定制软件的好坏,要看未来有人需要修改它的那一天,而不是它上线的那一天。
- 尽早把数据模型定对。界面重画的成本很低,但数据结构调整的成本很高,所以我们会先确定数据的形态,再着手设计界面。
- 能买则不自建。如果市面上有授权产品能满足您的需求,我们会如实建议您直接使用。比起收费替您重新发明一遍,我们更愿意只构建把它连接起来的那一小部分。
- 为接手的下一位开发者而设计。可读的代码、有文档记录的搭建流程,以及能说明意图的测试。衡量一份工作好坏的标准,是别人能否安全地对它做出修改。
标准
每个项目交付时都具备什么
工程标准与网站项目完全一致,因为一个内部工具往往会被员工连续使用很多年,而他们并没有选择别的工具的余地。
属于您的代码仓库
完整的提交历史保存在您自己的账户下,搭建流程的文档也足够详尽,换一台新机器当天下午就能把项目跑起来。
自动化检测
每次改动都会先运行测试和类型检查,之后才会到达依赖这套系统的人手中。检测失败就会阻止部署。
一条命令即可部署
发布是一个可重复执行的单一步骤,前一个版本也只需一次回退即可恢复。没有手工拼凑的发布流程,也没有没有文档记录的服务器。
无障碍界面
内部系统也拥有与对外网站同等的键盘可操作性、对比度和语义化标记。员工理应享有和客户同等的标准。
密钥不进入代码
凭据保存在专门的密钥管理系统中,以环境变量的形式提供给运行中的服务,绝不会以文件形式出现在代码仓库里。
可随时交接
账户、域名和代码仓库可以随时转移到您自己的组织名下,没有任何东西会被扣留作为筹码。
边界
开始合作不需要一份规格说明书。通过联系表单,或发邮件至 sales@wwi.dev,用您自己的话描述这项工作即可。