对一个“失败”项目的审视—前言

总说自己牛B的人—狂妄自大

总笑自己傻B的人—妄自菲薄。

我相信任何一位牛B的人都曾做过傻B的事,

所以得出的结论是:一位牛人的诞生,是由N多傻B的人、傻B的事所磨练出来的。

我并非牛人,却已经做过很多傻B的项目。有的项目初期设计非常牛B,但是随着时间的推移、人员的更迭、预算的缩水,到头来变成了一款鸡肋的产品——食之无味弃之可惜。

以下几篇文章,我会从架构设计、实际编码、人员管理等诸多方面来分析一款我设想得很牛B,最后却做得很傻B的项目。当然,我这里所谓“傻B”,指的是一种主观上的失败,只是从产品的架构上、编码上、人员管理上分析得出来的一种结论,这种结论与该款产品的持续开发可能性及盈利可能性等无关。

我们来了解一下这个产品的产生环境以及需要解决的问题(这是个网吧行业的产品——牛B的产品各有千秋,傻B的产品却总有相似的缺陷和遗憾。即便没有涉足过网吧行业的朋友,但凡有过开发上的失败教训,相信也能从中感同身受)。

近年来,网吧计费产品市场有了新的需求:

对于网吧业主来说:随着众所周知的原因,网吧行业已经逐渐变成了江河日下的薄利行业。同时有些网吧的网管和外部公司串通,盗取网吧收入的现象比较严重,因此网吧业主需要一款能够帮助他们杜绝网管盗帐的产品出现,即便这款产品仅仅能够实现每天向网吧业主报告网管是否盗帐的功能也行(而以前的网吧管理软件都是简单地对每个网吧的费用进行计算)。

对于网吧计费软件公司来说:网吧计费系统经过10余年的发展后,针对独立网吧而言可以创新的业务越来越少。失去了新业务的刺激,网吧计费软件的收入必然下降。此时很多网吧计费软件公司希望借助当前最流行的大数据概念,为网吧提供新的、具有一定粘度的业务。同时也希望通过一款产品将网吧数据进行收集,从而通过后续数据的分析将自己从一个软件生产—销售商转变为网吧业务服务提供商(服务为王啊!)。而此时的网管盗帐事件的频发刚好给了一个机会。

此款产品的设计就落在了我的肩上。我当时分析此款产品的主要目的应该是以下两个:

1:解决网吧网管盗帐问题。

2:汇集网吧数据:

一来为网吧提供大连锁的功能,

二来这些数据将作为以后为网吧提供更详细服务的依据。

三来当网吧硬盘出现损坏,或者网吧网管直接删除数据库中营业数据时我们能够提供实时的数据恢复。

OK,分析结束后,就开始书写设计文档了。由于我开发过游戏服务端,而此款产品从架构上来看和MMO游戏有些类似,因此设计架构对于我来说毫无压力。架构设计、产品立项文档、性能分析等等一气呵成。哈哈,心中有点沾沾自喜。

接下来就是人员工作划分。


模块开发


人数


服务端开发


1人


客户端开发


1人


DBA


2人


测试


2人

我需要开发11款服务端程序,不要紧,咱有服务端开发模板。所以服务端开发毫无压力可言。客户端开发1人是非常精通网吧业务的小伙,也无压力。至于DBA不怕,2个人都是对于SQLSERVER非常熟悉的人,应该没有问题。性能方面,为了提高效率,我们采用了直接调用存储过程的方式来进行业务处理。好,说干就干。我们行动了起来(殊不知如此轻率的决定却为以后项目进入泥潭埋下了祸根)。

从立项到开始进入测试(中间衍生出了另一个产品),共用了几个月的时间。当开始测试的时,才觉得噩梦开始了(不仅是产品设计方面的噩梦,公司由于变动也遇到了最大的一场动荡。)

对一个“失败”项目的审视—前言,布布扣,bubuko.com

时间: 2024-10-15 23:32:35

对一个“失败”项目的审视—前言的相关文章

对一个“失败”项目的审视—架构

衡量一个产品的成败,往往所站的角度不同理解也就不同.站在一个开发人员的角度来看,判断一个产品是否成功,往往首先判断这款产品是否满足用户的需求.对于有性能扩展要求的产品,则还要考虑其是否具有较高的性能.是否便于后期扩展:对于具有代码洁癖的开发者来说,则还要看代码编写是否规范等等. 今天我们先来了解一下这款产品的架构是如何设计的,再说说它的各服务器的功能. 首先我简单说明一下架构中需要重点考虑的几点: 1:网吧断网时的处理:架构设计中要考虑到网吧和中心服务器断网的情况,所以简单的按照MMO游戏的设计

对一个“失败”项目的审视—分析

洋洋洒洒写了好多字啊,我都没想到我能写这么多字来.看了上面的架构一定有人会想"不对吧,你在第一篇中可是写的是11种服务器啊,你数一数上面的架构图上才几个?老兄啊,你别是为了点击率而忽悠我们吧".对于存有这种看法的看客,我只能说"您看的可真细致啊!"上面的这个架构图的确和我第一篇中写的11种服务器的架构不同,那是因为上面的图是目前的架构图,而11种服务器则是第一版的产品架构.大家可以来看看第一版和目前版本架构图的区别. 后来将网关服务器和逻辑处理服务器合并:帐号服务器

Web —— java web 项目 Tomcat 的配置 与 第一个web 项目创建

目录: 0.前言 1.Tomcat的配置 2.第一个Web 项目 0.前言 刚刚开始接触web开发,了解的也不多,在这里记录一下我的第一个web项目启动的过程.网上教程很多,使用的java IDE 好像也是各种各样,如:如2009年发表的:谈在Eclipse中配置Tomcat ,2014年发表的:如何配置Java EE Eclipse+Tomcat开发环境 等,还有很多杂七杂八的,深感后面配置越来越简单化了,而我使用的应该算是更简单的工具了. 工具越简单化傻瓜化,背后隐藏的原理就相对更多,包装的

Cocos2dx 3.0开发环境搭建--Eclipse上构建一个Android项目

一.前言: 本篇主要介绍Cocos2d-x 3.0的一些基础内容,以及在Eclipse上上编译我们的Cocos2d-x项目,成功把Helloworld运行起来了.看完本篇博客之后,你就会知道Cocos2d-x 3.0竟然发生了如此大的变化,变得如此简单,环境搭建.项目创建.编译的方式更加人性化了. 二.环境准备: 1.下载ADT Bundle(Eclipse捆绑了SDK和ADT),或者是Eclipse安装了ADT插件. 2.安装JDK.NDK.Ant .Python,然后配置环境. 3.Coco

C#项目开发实践前言

以前没有做过项目开发实现讲解,都是在工作过程当中,自己主动学习,查找资料,因为在以前的公司就我一人在做c#WinForm开发,所以,有时候在公司培训会上,我也会为新的员工进行过一些简单的项目讲解,基于在培训过程当中自己的不足,以及在学习查找资料过程当中,在网上查找资料有时真的很费劲,而目前想找一个为当前实现找一个互相交流的平台也不太容易,所以,我有一个想法就是提供一个相互学习交流的平台,践于很多时候有大部分人员不能及时交流或某些原因不方便,不能及时有效的提供一些信息,所以这个交流平台上,会把所以

WPF入门教程系列(一) 创建你的第一个WPF项目

WPF入门教程系列(一) 创建你的第一个WPF项目 WPF基础知识 快速学习绝不是从零学起的,良好的基础是快速入手的关键,下面先为大家摞列以下自己总结的学习WPF的几点基础知识: 1) C#基础语法知识(或者其他.NET支持的语言):这个是当然的了,虽然WPF是XAML配置的,但是总还是要写代码的,相信各位读者应该也都有这个基础了. 2) HTML语言:虽然WPF是窗体程序但是由于使用的XAML语言,如果以前接触过HTML.XHTML.ASP.NET之路的东西的话会,接受这些标签会很有帮助的,如

第一个WebAPI项目

(1)新建一个ASP.NET MVC项目,取名为:MyMvcWebAPIDemo,项目类型选择WebAPI. (2)在Models中新增一个类,取名为:Product,作为我们要测试的实体模型. 1 2 3 4 5 6 7 public class Product { public int Id { get; set; } public string Name { get; set; } public string Category { get; set; } public decimal Pr

从一个前端项目实践 Git flow 的流程与参考

Git flow 出自 A successful Git branching model,这里使用了一个前端项目配合本文稿实施了 git flow 并记录流程作出示例和参考,对 hotfix 与持续部署略有提及,本意是用作公司内部的技术安利.所用源码及文档本身见于 github jusfr/HelloGitflow 前言 Gitflow 是一种 git 分支管理工具——说是思想也不为过,它使用既定策略区分和管理开发.测试.生产环境的代码版本,对测试与持续集成友好,与敏捷.迭代的思路一致. 1 准

一个web项目中间的团队管理

一个web项目中间的团队管理 ????最近在参加一个比赛,我们选的题目是:MOOC大型网络在线课堂.这个题目是我们五个人都想做的,我们的成员都是志同道合的五个人. ? 作为团队的统率者: ? 定义规范 在整合CSS的时候出现选择器重名的问题.所以如何给页面里面的元素指定id号的确是个问题 初步的解决方案:按在父子类的关系来命名. ? 指定规划 功能点的规划 每个页面的构思(美工或者模仿) 需要找外人评论 ? 功能点的全面了解 一定先写规划方案 不能上来就干活的 ? 2对每一个MOOC网站都有自己