1、缺乏市场分析
市场分析不足,没有真正的了解客户需求,对市场认识不足是新产品项目的主要原因。我们在旅游的分销系统开发中,就存在对市场认识不足的情况,现在我们这个产品几乎接近失败的边缘。
2、实施质量不高
我们都是程序员出身,对研发的兴趣远大于实施,我们的精力就放在开发上,对实施这个环节不够重视,也是造成整个产品给客户的感觉是错误百出、Bug成堆的情况。
3、推进太快
我们由于太急,常常会有赶超进度,结果是软件质量低,代码杂乱。甚至想一出是一出,有时连市场调查、市场测试等都可以绕过去,直接进行开发阶段。
4、前期准备工作不充分
我们出于很多原因,项目前期活动没有开展,项目从构思直接推进到大规模的开发。
可想而知,怎一个悲字了得。
5、产品对客户来说缺乏价值
如果没有清楚了解客户的需求,就开始进行新产品的开发,会导致产品的先天不知。这些产品对客户来说价值很低或者没有价值。很多新产品是一种反应式的产品,即模仿的产品,从而面临巨大的竞争。如果没有作好准备工作、不愿意听取客户的声音、一味快快速推进常常导致这种反应式、没有创意、没有特色的产品出现。那么我们就要明确产品的优势在那。
6、没有重点、太多的项目导致资源缺乏
我们公司因为人力有限一般一个人手上有2个以上的项目在作,这大大的消耗了整体资源,导致产品研发的使用资源短缺,不能专心搞产品研发等情况。总之我们要分清重点,采用个个击破的原则进行产品研发。
7、缺乏规范、系统的产品开发流程
产品研发的流程是根据公司自身情况而定,可以避免很多的障碍和官僚。我们开发人员素质比较高,我们采用CMMI3的规范来管理我们产品研发。
研发中的问题和缺陷是相互联系的,我们只有解决好上面的7点,才能开发出优秀的产品。
azure怎么安装依赖软件更新-这些说明已过时!(UPDATE - These instructions are out of date!) 一键安装Ghost到Azure技术。(GO HERE for a one-click installation of Ghost to Azure technique.)Like many folks, I watched the recent Kic...
最开始想到的是通过硬编码的方式手动在每个路径上加上前缀, 后面发现这种方式太不智能了,万一要修改那还不得改死, Spring既然支持EL表达式, 那能不能通过EL表达式的方式去读取配置文件里面的属性来达到引用的目的呢?在配置文件中定义动态动态改变的路径mvc.url.perfix = /test在Controller通过EL表达式引入该变量@R...
vue3 + ts 组件全局挂载1. 生成组件<template> <button class="m-button" :class="type"> <slot></slot> </button></template><script lang="ts">import { defineComponent } from 'vue'export default defineComponent({
软件工程中,设计模式(designpattern)是对软件设计中普遍存在的各种问题,所提出的解决方案。设计模式的目的代码重用性:相同的代码,不需要多次编写可读性:编程规范性,便于其他程序员的阅读和理解可扩展性:可以很方便的增加新的功能,也成为可维护性高内聚、低耦合设计模式的七大原则设计模式原则是程序员编程时,应该遵守的原则,也是各种设计模式的基础(即设计模式为什么这样设计)。单一职责原则降低类的复杂度,一个类只负责一项职责提高类的可读性,可维护性...
右键菜单:菜单组件Menu关闭选项卡的右键菜单第一种: 刷新 关闭 全部关闭 除此之外全部关闭 当前页右侧全部关闭 当前页左侧全部关闭 js判断 //监听右键事件,创建右键菜单、myTab是我的选项卡的ID $('#myTab').tabs({ onC
Unity 使用中使用FairyGUI遇到的坑1.关于在FairyGUI中使用Unity项目里的Sprite问题2.使用Sprite Atlas打包图集遇到的问题首先!首先!首先!首先,我们由于历史问题,项目用的UI编辑器不是大众使用的GUI或者NGUI, 而是使用不知道算不算小众的FairyGUI,这个UI系统使用挺方便的,也提供了很多UI编码的案例,至少从直接使用来说方便了不少。但是!但...
先安装nodejs安装:npm install -g fis3卸载:npm uninstall -g fis3fis3 -v 查看是否安装成功报这错错误时 就执行命令:npm install -g fis-parser-less报错:1、unable to load plugin [fis3-hook-commonjs/lookup.js]安装全局安装或者本地安装都可以。npm install -g fis3-hook-commonjs...
主要知识点, 修改IK分词器源码来基于mysql热更新词库 一、IK增加新词的原因 在第32小节中学习到了直接在es的词库中增加词语,来扩充自已的词库,但是这样做有以下缺点: (1)每次添加完,都要重启es才能生效,非常麻烦 (2)es是分布式的,可能有数百个节点,你不能每次都一个一个节点上面去修改 这一小节来学习让es不停机,直接在外部...
一天从网上下了20个vc的hough代码,没有一个代码是成功的。令人郁闷,我参考matlab代码写出了hough检测单个直线的程序Hough变换:本程序是我花费时间最长的程序;参考matlab算法;首先求出原图上的每一个像素在变换域上的对应曲线,即原图上每一点(i,j)对应变换域曲线(p,k);p=(int)(i*cos(pi*k/180)+j*sin(pi*k/180))(0然后遍历
如果没有程序员,整个虚拟世界都会消失不见。全中国7亿多网民,再也不能愉快滴发自拍,看视频,打游戏,甚至连打电话都成了一种幻想。绝大部分电子设备都会变成废铁,人类的生活将完全倒退到70多年以前。程序员贡献了自己的聪明才智,但他们当中的大部分人都时刻承担着超出常人的压力,付出了常人难以忍受的高强度劳动。“十年编程两茫茫,工期短,需求长。千行代码,Bug何处藏。纵
Shader 初识 Surface Shaders: 表面着色器,可以适用很多情况下,去除了很多底层工作 Fragment Shaders: 片段着色器,可以做一些底层工作,比如顶点光照,这对于移动设备和多个通道(passes)所必须的更高级效果会非常有用 Shader 资源 几个重量级的shaders 参考网址: M
Pattern pattern = Pattern.compile("\\B(\\p{Upper})(\\p{Lower}*)");Matcher matcher = pattern.matcher("longAndLongCity");String replaceAll = matcher.replaceAll("_$1$2");String result = replaceAll.toLo