SharePoint 项目的死法(二)
说实话, 做SharePoint项目或者任何信息化项目并不是个容易的事情, 但成功的IT项目对于一个企业来说也许意味着很多, 从我的观察来看, 大部分的成功的信息化项目给企业所带来的回报都远远超过其所花的成本, 而很多回报都是隐形的, 所以, 困难不是项目失败的接口, 我们更应该做好.
另外SharePoint项目当然也是IT信息化项目, 所以, 大部分信息化项目失败的原因当然对SharePoint项目有同样的借鉴意义.
下面是我经验上和观察上的SharePoint项目失败原因:
- 没有定义成功
一个项目之所以成功, 是因为有了衡量成功的指标, 比如上了一个项目, 目标到底是降低成本, 降低多少, 还是提高收益, 提高多少? 不定义衡量成功的指标, 一句话, 你永远都不知道成功. 而定义项目成功指标的简单原则就是SMART,有兴趣的朋友可以自行GOOGLE, 在此不再赘述.
- 公司政治
此为制约大部分项目(不仅仅是IT项目)的重大失败原因, 不赘述.
- 不知道SharePoint是什么
有个玩笑是这样的, 有个SharePoint顾问向一个客户解释自己的职业, 当然, 他的解释很精彩, 从门户到文档管理到搜索到商业智能等等, 最后, 客户说, 嗯, 知道了, 你就是个做网站的.(嗯, 也许这是很多资深SharePoint顾问沦为美工的真正原因J )
说实话, 的确很难定义SharePoint是个什么样的产品,它包含很多个模块,一个相对比较正确的定义是”面向企业的协作平台, 包括门户,社区,内容管理和搜索等模块”, 这里面包含两层含义:
1) SharePoint是个平台, 这个意味着,利用SharePoint构建大部分协同应用是容易的, 但它的大部分功能并不是面向最终的业务用户的, 大部分不经过定制和调整的功能, 是无法直接面向用户的,一句话, 原生的SharePoint的目标客户是IT人员, 而不是最终用户;
2) SharePoint本身也包括很多的模块,包括搜索,文档管理和调查等等, 有一些模块也是开箱即用的, 在进行定制的时候要充分考虑这些模块的可用性,没必要重新发明轮子,而SharePoint也留有足够的空间来进行扩展.
在对SharePoint进行定制的时候, 要充分考虑利用其自身的特点, 而不是两眼一抹黑的拿起开发工具, 一通乱来, 殊不知, 这样的结果往往要么是重复发明轮子,要么就是还不如用ASP.net开发工具呢. 要知道, 实现一个功能也许并不难, 但和平台融入才能发挥这个平台的最大作用.
在SharePoint推广过程中, 由于涉及到对SharePoint的扩展, SharePoint很可能需要和其他的产品来进行对接, 这时候, 对相关的如Windows Ad, RMS, Exchange, Project Server等产品的了解也是必须的.(别忘了, MS是个商业公司, 人家要靠卖Licence活着的)
SharePoint 项目的死法(二)的更多相关文章
- SharePoint 项目的死法(三)
拙劣的供应商(团队) 坦率来说, 说这个原因需要一点勇气, 但在我从业的经历中, 充斥这大量的这样的案例, 没有什么实施经验的团队, 对产品几乎没什么了解的供应商, 三脚猫的开发人员,之前只会做做微软 ...
- SharePoint 项目的死法(一)
SharePoint是Microsoft的一个巨NB的产品, 从可查到的数据来看, 财富500强中已经有超过80%的企业已经使用了SharePoint的不同版本,从项目实施的经验来看, 个人感觉这个数 ...
- 社交APP经典死法18种,听野路子产品菜狗怎么说
点这里 社交APP经典死法18种,听野路子产品菜狗怎么说 时间 2015-04-06 11:24:53 虎嗅网相似文章 (4)原文 http://www.huxiu.com/article/112 ...
- 你做电商死法TOP10:你中了几枪?
有相关报道说淘宝目前只有3%的店铺能够盈利,其余97%的店铺基本上都成了炮灰.这是一个非常可怕的数字,都说不赚钱的电商是犯罪,那么,是什么原因导致了会有如此庞大的电商群体一如既往的走在这千军万马的不归 ...
- Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目
默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题. 以管理员身份启动vs2013,创建一个"SharePoint 201 ...
- vue项目使用qrcodejs2生成二维码
最近写项目遇到一个需求,根据后台给的地址生成二维码,在网上找了下,qrcodejs2使用还是比较多,试了下也能实现需求,就整理下使用方法,方便以后使用 1. 安装包 cnpm i qrcodejs ...
- 如何在 NET 程序万种死法中有效的生成 Dump (上)
一:背景 相信很多人都知道通过 任务管理器 抓取dump,虽然简单粗暴,但无法满足程序的无数种死法,比如: 内存膨胀,程序爆炸 CPU爆高,程序累死 应用无响应,用户气死 意外退出,和人生一样 既然手 ...
- Laravel大型项目系列教程(二)之用户管理
Laravel大型项目系列教程(二) 一.前言 本节教程将大概实现用户的注册.修改个人信息.管理用户功能. 二.Let's go 1.创建用户注册视图 $ php artisan generate:v ...
- Redis缓存项目应用架构设计二
一.概述 由于架构设计一里面如果多平台公用相同Key的缓存更改配置后需要多平台上传最新的缓存配置文件来更新,比较麻烦,更新了架构设计二实现了缓存配置的集中管理,不过这样有有了过于中心化的问题,后续在看 ...
随机推荐
- Freemarker中Configuration的setClassForTemplateLoading方法参数问题
今天使用freemarker中Configuration的setClassForTemplateLoading方法遇到了加载模板目录的一个小问题. 由于网上的其他论坛,博客写的有点乱,故记录一下. F ...
- 安恒杯2月月赛-应该不是xss
1. 打开题目一看,是个留言板 2. 查看源码发现有几个js文件 依次打开发现在main.js里存在这样一段代码 3. 访问 /#login是登录的界面,/#chgpass是修改密码的界面,其中修改密 ...
- 微信小程序入门一: 简易form、本地存储
实例内容 登陆界面 处理登陆表单数据 处理登陆表单数据(异步) 清除本地数据 实例一: 登陆界面 在app.json中添加登陆页面pages/login/login,并设置为入口. 保存后,自动生成相 ...
- 如何实现MySQL表数据随机读取?从mysql表中读取随机数据
文章转自 http://blog.efbase.org/2006/10/16/244/如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysql ...
- 软盘相关知识和通过BIOS中断访问软盘
一. 软盘基础知识介绍 (1) 3.5英寸软盘 3.5英寸软盘分为上下两面,每面有80个磁道,每个磁道又分为18个扇区,每个扇区大小为512个字节. 软盘大小计算: 2面 * 80磁道 * 18扇区 ...
- CPU结合CS、IP寄存器进行执行程序
上一篇介绍了CS.IP两个寄存器内容,当我们运行一个可执行文件时,我们需要另外一个程序来将这个可执行文件加载到内存当中,关于这个加载可执行文件的程序,我们在这里不管他,点一下即可,一般是通过操作系统的 ...
- vue开发 ES5——> ES6设置
- hdu 4576 (简单dp+滚动数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4576 题意:给出1~n的环,m个操作,每次能顺时针或逆时针走w步,询问最后在l~r这段区间内概率.(1 ...
- Jquery 中 $.getJSON的用法
之前类似的方法用过 $.post, $.get,$.ajax,还是第一次用这个 $.getJSON. 前三个都是用作异步请求的,那么最后一个呢?其实也是异步请求的,和 $.get 最类似,因为他也是将 ...
- 02.java并发编程之原子性操作
一.原子性操作 1.ThreadLocal 不同线程操作同一个 ThreadLocal 对象执行各种操作而不会影响其他线程里的值 注意:虽然ThreadLocal很有用,但是它作为一种线程级别的全局变 ...