02 2012 档案
摘要:这是敏捷开发一千零一问系列的第十二篇。(在这里提问,之一,之二,之三,问题总目录)问题原问题:敏捷的具体实施是否按照一定的步骤?方案越前面的方案月容易实施,但是也越容易流于肤浅而失败。方案1:循序渐进这个可以说是所有事物推广的方法,不只是敏捷,而作为“敏捷”而言,崇尚迭代交付,自然更符合循序渐进的思想。方案2:面向问题常常听到这样一个问题:我是过程改进人员,以前CMMI过级的时候很忙碌,也很充实,最近公司今年没有过级的任务,大家都闲下来了,下一步该怎么办呢?既然是过程改进人员,就应该改进过程,和CMMI本来是无关的。CMMI的引入,是帮助我们解决问题的,而不是让我们忙碌和充实的。现实项目的问题
阅读全文
摘要:这是敏捷开发一千零一问系列的第十一篇。(在这里提问,之一,之二,之三,问题总目录)问题原来问题是这么写的:“每个人对美的认识不一样,在产品开发过程中,该怎样有效控制界面设计用时?”大致是说有些人觉得这样就得了,另外一些人觉得还不够漂亮,不知道评审的时候该听谁的。这个问题有点另类,所以泛化成“需求谁做主”。方案方案1:听产品经理PO的这个是简化的方案。一般而言,我们总会挑选出正确的人,或至少是最正确的人——他对市场清楚,客户明白,至少在业务方面比程序员经多见广——来形成对需求的雏形,日后验收的,也是他。这个人就是PO,Product Owner,产品的主人,产品经理。不过,常常不存在一个人这么厉
阅读全文
摘要:一,C++内联函数 定义: inline double square (double x){return x*x;}//含有关键字inline的内联函数 描述:内联函数类似于宏的定义与调用 使用:调用内联函数时候,不用跳到另一个位置执行代码,而是将调用内联函数代码用相应内联函数替换。 区别:普通函数调用时候,跳到函数处执行完,返回再执行下一条语句。 内联函数调用时候,直接将代码复制过来执行,省去了跳过去然后返回的过程 宏:只是简单的形式上的替换 例:#define square(x) x*x ...
阅读全文
摘要:package util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class DBUtil {Connection conn = null;PreparedStatement stmt = null;String Driver = "com.mysql.jdbc.Driver";String url = "jdbc:mysql://10.137.5.23/mc
阅读全文
摘要:第一步:v(视图层)兴 趣:<input type="checkbox" name="fav" value="0">篮球 <input type="checkbox" name="fav" value="1">听歌 <input type="checkbox" name="fav" value="2">上
阅读全文
摘要:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title></title><script>/*1、分页:满足5行就自动翻到下一页,并且在下一页显示上一页,点击上一页后跳到上
阅读全文
摘要:这是敏捷开发日常跟进系列的第二篇(栏目目录)。迭代及燃尽图的目标燃尽图的目标是完成迭代的目标,迭代的目标是什么呢?1. 按产品经理的要求,交付计划会中计划的用户故事2. 尽量完成1之后还会看到,这个定义还有狭隘之处,在系列后面的文章中会提到。为什么燃尽图不能直接地达成这个目标?潜在的问题包括:1. 如果燃尽图按时完成,有可能是为了按时完成,同时牺牲了所有故事(重要和不重要的)的质量,换取了进度。2. 如果燃尽图未按时完成,有可能不是一个故事没有完成,而是所有故事都剩下点活没做完,导致所有故事都无法交付。3. 如果燃尽图未按时完成,没有完成的故事中,有可能包括了极其重要的一些。只从燃尽图的形态看
阅读全文
摘要:这是敏捷开发日常跟进系列的第一篇(栏目目录)。这个系列将涉及燃尽图(Burndown Chart)、故事板(看板)、每日立会等内容,描述在计划会之后,评审会之前,敏捷开发团队内部产出与产品经理和项目经理的各种活动。日常跟进中的某些内容比如团队工作模型、预估会议、用户故事跟进等在之前的松结对编程、团队管理、用户故事、产品管理等系列中有所描述。在这个系列之前,还应该有一个敏捷计划系列,描述敏捷开发的从版本规划到计划会估算的详细内容,未来将会补上,当前可以参考2.29版的《火星人敏捷开发手册》,有5页与其相对应。燃尽图燃尽图Burdown Chart也叫燃烧图,是罕见的敏捷度量,以至于每当有人问起“
阅读全文
摘要:一,快捷键显示桌面:Ctrl+Alt+D最小化窗口:Alt+F9最大化窗口:Alt+F10关闭当前窗口:Alt+F4二、Ubuntu NetBeans中文乱码解决办法在$JAVA_HOME/jre/lib/fonts目录下创建一名为fallback的目录将一可显示中文的字体放到fallback目录下,可以到Ubuntu字体目录(/usr/share/fonts)去复制一份或者用ln命令做一个硬链接到该目录(注:软链接无效)再运行NetBeans(or NetBean)即可没有字体:arphic 需要到新立得 安装最新版本.是ttf格式而不是ttc三,网络代理cd etc/possibiliti
阅读全文
摘要:1 简介 超文本传输协议(http)是目前互联网上极其普遍的传输协议,它为构建功能丰富,绚丽多彩的网页提供了强大的支持。构建一个网站,通常无需直接操作http协议,目前流行的WEB框架已经透明的将这些底层功能封装的很好了,如常见的J2EE, .NET, php等框架或语言。除了作为网站系统的底层支撑,http同样可以在其它的一些场景中使用,如游戏服务器和客户端的传输协议、web service、 网络爬虫、HTTP代理、网站后台数据接口等。Http Components 对HTTP底层协议进行了很好的封装,如果你是一个J2EE、.net或php程序员,对下面涉及的概念可能不会陌生。2 http
阅读全文
摘要:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title></title><script language="javascript" type="t
阅读全文
摘要:一,题目:输入n用最快的方法求Fibonacci数列的第n项。二,定义:Fibonacci数列如下: 0 n=0f(n)= 1 n=1,2f(n-1)+f(n-2) n>2//0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 9871597..........三,分析:注意,当求第100项,甚至更大的项时,请确保你用什么类型,长整型?orlong long int存储。不然,计算机,将得不到结果。所以选择的数据类型是关键。四,源码:#include <iostream>
using namespace std;
...
阅读全文
摘要:一,编译(compile) 含义:用编译器(compile)将源代码生成二进制目标文件。在Window下为.obj。在Linux下为.o文件。 要求:编译器要求,语法正确。编译器只检测程序语法和函数、变量是否被声明,函数并不许要被定义。 编译语法:g++ -c file.cpp 其中-c 为compile生成 file.o的目标文件二,链接(link) 含义:将所有需要到函数所在的文件爱你链接在一起合成为可执行文件。 语法:g++ file.o -o file.exe 其中-o 指生成可执行文件(output)。默认为a.out 【合并】g++ file.cpp -o file.exe三,库(
阅读全文
摘要:Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。 虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。 Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated devel..
阅读全文
摘要:apt-get 设置代理 proxy 方法方法一 :这是一种临时的手段,如果你仅仅是暂时需要通过http代理使用apt-get,你可以使用这种方法。在使用 apt-get 之前,在终端中输入以下命令:export http proxy=http://yourproxyaddress:proxyport据说取消代理使用:export http_proxy="" 不行的话试试 unset http_proxy;方法二 :这种方法要用到 /etc/apt/ 文件夹下的 apt.conf 文件,如果你希望 apt-get (而不是其他应用程序)一直使用 http 代理,可以使用这种
阅读全文
摘要:2012-02-24:新版本发布,新增敏捷计划5页由于原定发布时日期2012-02-29在外地培训,提前发布;本期内容由原定的产品管理改为较为基础的敏捷计划,建议下载。预告:下一更新日期:2012-04-30。本文仅做通知,下载链接及反馈请访问主贴:http://blog.csdn.net/cheny_com/article/details/6616794页面截图:
阅读全文
摘要:一,题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。二,思路:创建一个循环链表,每次走m步删除一个节点,最后剩下一个三,源码:#include <iostream>
#include "malloc.h"
using namespace std;
struct node
{ int data; node *next; }; node *createList(int a[
阅读全文
摘要:一,题目:在一个字符串中找到“第一个”、“只出现一次”的字符。 如输入abaccdeff,则输出b。二,思路解析: 字母a:出现两次 字母b:符合要求 字母c:出现两次 字母d:出现一次,但不是第一个 字母e:出现一次,但不是第一个 字母f:出现两次 所以字母b符合要求。三,如何才能找到符合要求的字母 首先扫描一遍字符数组,记录每一个字符出现的个数。 然后再次扫描字符数组,找到第一个个数为1的字符。 由于字符(char)是一个长度为8的数据类型,因此总共有可能256种可能。于是我们创建一个长度为256的数组,每个字母根据其AS...
阅读全文
摘要:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>测试反应能力点击小游戏(简化版)</title><style type="text/css">
阅读全文
摘要:打开 Metacity 的混合特效 Metacity 为 GNOME 桌面环境的默认窗口管理器。我们知道在 GNOME 2.22 中的 Metacity 窗口管理器已经具有了混合特效,换言之,现在即使你不用 Compiz Fusion,使用 Metacity 也能够获得透明、阴影、以及 Alt + Tab 切换效果。对于要求不高的用户来说,还是值得尝试的。但是默认情况下这些混合特效并没有被打开。如果你已经安装了 GNOME 2.22,且当前所用的显卡也支持,那么可以使用以下方法来打开 Metacity 的混合特效。按 Alt + F2,打开“运行应用程序”对话框。输入 gconf-edito.
阅读全文
摘要:一,题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。例如输入 8 / \ 6 10 / \ / \5 7 9 11输出:8 6 10 5 79 11。二,分析: 本题主要考察树的层序遍历,最常用的方法就是采用队列的形式。 按照,根左右的形式依次将元素弹入队列中。然后取出队列头部,再将头部的左右子树弹入队列中。这样就可以层序遍历整个二叉树。有些类似树的广度优先查找。三,源码:#include "stdio.h"
#include "malloc.h"
#include "stack.h"
struct
阅读全文
摘要:一,题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / \ 6 10 / \ / \ 5 7 9 11 输出: 8 / \ 10 6 / \ / \ 11 9 7 5定义二元查找树的结点为:struct BSTreeNode // a node in the binary search tree (BST){ int m_nValue; // value of node BS...
阅读全文
摘要:缺省配置下,用 Ubuntu 的文本编辑器(gedit)打开 GB18030/GBK/GB2312 等类型的中文编码文本文件时,将会出现乱码。出现这种情况的原因是,gedit 使用一个编码匹配列表,只有在这个列表中的编码才会进行匹配,不在这个列表中的编码将显示为乱码。您要做的就是将 GB18030 加入这个匹配列表。命令行方式,适用于所有 Ubuntu 用户。复制以下命令到终端中,然后回车即可: gconftool-2 --set --type=list --list-type=string /apps/gedit-2/preferences/encodings/auto_detected &
阅读全文
摘要:1,函数的基本知识 C++对于返回值的类型有一定的限制:不能是数组,但可以使其他任何类型,甚至可以使结构和对象。 有趣的是,虽然数组不可以作为返回对象,但是数组可以作为结构或对象组成部分来返回。2,函数参数和按值传递 cin.get();//读取所有输入的字符,包括空格和换行符。 cin>> ;//跳过空格和换行符读取。3,函数和数组 int arr[32]; int sum_arr(int arr[],int n);//参数arr是一个指针,而不是一个数组。 int sum_arr(int *arr,int n); //仅用于函数头,函数原型中 int *arr ...
阅读全文
摘要:<html><head><title>抽奖</title><script language="javascript" type="text/javascript">/*1、要有随机数2、创建一个数组3、点击按钮控制4、先抽一等奖,再抽二等奖,最后是三等奖5、一点击停止就会把 名字从数组中删除掉,并且把名字放到该放的框中6、先定义一个空变量,每点击一次开始就让这个变量累加一7、取6中的变量,判断变量数值的范围,当是一时,就将第一次出现的名字放到一等奖的框中并且将给名字从数组中去除掉第二次和第三次出
阅读全文
摘要:<html><head><title>非法字符检测</title><script language="javascript" >/*1、需要长度,因为求出长度也就有了循环的次数2、字节位置3、匹配函数match()4、规定的字符每次每个都要与输入的单个字符匹配一次*///创建全局输入框变量var inputNum="";//创建规定字符//var Num="a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7
阅读全文
摘要:空间上统治宇宙的是万有引力(远远超过电磁力、强力和弱力),时间上统治宇宙的则是大数定理。引子这两天为了测试定时刷新功能,编写了一小段代码,每秒产生一个随机数,如果随机数大于0.999,就弹出通知框,模拟定时刷新数据库查看偶发事件的程序。没想到,这段代码似乎很爱表现,本来按理说每小时应该产生3.6个,但实际上经常刚运行1分钟就弹出来了,还经常连续跳。这咋回事呢?难道程序中潜伏着一个智慧生物?于是修改了代码,昨天测试了一晚上,结果如下:Mon Feb 20 22:08:39 UTC+0800 2012: start!Mon Feb 20 22:15:28 UTC+0800 2012:0.99967
阅读全文
摘要:1,cin的用法char ch;cin.get(ch); //仅仅接受一个字符(输入12,则ch仅仅赋值为1)cout<<ch;2,对于字符型变量ch,++ch与ch+1的区别int main()
{
char ch;
cin.get(ch);
while(ch!='.')
{
if(ch=='\n')
cout<<ch;
else
cout<<ch+1; cin.get(ch); }
}cout<<++ch;输出的是 相应ASCCI码加一之后的 字符cout<<ch+1;输出的是 相应ASCCI码加一
阅读全文
摘要:转至:http://blog.csdn.net/q283595518/article/details/4122053Field 'id' doesn't have a default value昨晚做项目的时候遇到一个问题,在测试数据存储的时候老是报Field 'id' doesn't have a default value异常,从网上找了好久,根据各位大虾的说法也测试了好久好久,可就是没发现原因所在,鼓捣了两三个小时的时间,最后总算找到问题所在:原来是我的数据设计的时候,把主键的类型定义为int的,原本想是用自增的方式来的,可是由于自己的粗心
阅读全文
摘要:package tangzl;public class Sum{public static void main(String args[]){int i,j;int intArray[] = {23,12,45,11,9};int l = intArray.length;for(i=0;i<l-1;i++){for(j=i+1;j<l;j++){if(intArray[i]>intArray[j]){int t = intArray[i];intArray[i] = intArray[j];intArray[j] = t;}}}for(i=0;i<l;i++){Syst
阅读全文
摘要:之一,之二合并显而易见的代码所谓显而易见的代码,就是看上去和别处相同的代码。在这个例子中,就是View‘中初始页面显示的内容与未来刷新的内容重复;Controller中初始显示的运算和刷新的相同。Controller好办,如此: private void PrepareAssignItemsData(int sprintID) { var sprint = ... var team = ... var overTimes = ...; var itemsTreeInSp...
阅读全文
摘要:之一,之二案例背景本文将介绍如何通过一行代码实现下图中的功能。红色框中是http://blog.csdn.net/cheny_com/article/details/7234619提到的AjaxValue,也只有一行代码,看上去类似一个下拉菜单,但能从内部把Ajax功能执行完毕并显示到屏幕上。现在要做的业务需求是:在上述任务分配界面,做右边红框边点选人员并调整名字后,左边的蓝框中整个页面要更新。这是常见的一种业务操作,没有什么新奇之处,本文讨论的是:能否只用一行代码实现?当然,这里所说的一行代码,是指在调用处只需要一行代码(因此以后这类功能都只需一行代码),后台则需要一些储备。传统实现步骤1.
阅读全文
摘要:package tangzl;public class Sum{public static void main(String args[]){System.out.println("**求100~200间的所有素数**");int n=0;outer:for(int i=101;i<200;i+=2){int k=15;for(int j=2;j<=k;j++){if(i%j==0)continue outer;}System.out.print(" "+i);n++;if(n<10)continue;System.out.printl
阅读全文
摘要:我 找了好久原来是个低级错误,在copy的时候不小心的缘故<hibernate-mapping package="com.strive.entity"> <class name="Dept" table="Dept"> <id name="deptno" column="deptno" type="integer"> <generator class="assigned"></generator>
阅读全文
摘要:/*** 用户工号转换成姓名加工号 <功能详细描述>** @param usersName* @return [参数说明]** @return String [返回类型说明]* @exception throws* [违例类型] [违例说明]* @see [类、类#方法、类#成员]*/private String getEmployeUserName(String usersName) {StringBuffer buf = new StringBuffer("");if (usersName != null && !"".e
阅读全文
摘要:一、 mysql对单表备份的方案: 1、很简单的方法:select * from 表名into outfile 备份文件; 2、 Runtime rt = Runtime.getRuntime(); Process child = rt .exec("mysqldump -u用户 -p密码 数据库 表名-c -t --default-character-set=utf-8"); 得到文件流以后自己处理生成备份文件 InputStream in = child.getInputStream();二、sqlserver2000的单表备份方案: 1、建立第三张表作为备份表(个人认
阅读全文
摘要:一,for循环 1,在C++中每一个表达式都有值; int a=0//声明表达式 23+17 //数学表达式 a=(b=3)+4//a的值为7 2,表达式跟语句的区别 表达式加上";"就是语句 a=10为表达式 a=10;为语句 3,前缀式和后缀式 ++i;比i++速度更快,效率更高; 【注意】前缀递增(++)、前缀递减(++)、解除引用(*)优先级相同; 并且从右向左的规则进行结合 例:*++pt; //先将++作用于pt,然后将*...
阅读全文
摘要:类结构图:jar包:Webroot目录:1.==============================package com.strive.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;import com.strive.ser
阅读全文
摘要:开学了…… 拖着久未平息的童心,迈着恋恋不舍的脚步,踏入寒冷、清静的校园。也许是在家玩的Happy吧,来到冷清的校园里感到丝丝落寞感…… 跟爸爸通了两次电话,照例是对未来的信誓旦旦,和对自己发达后的种种幻想……算是对自己埋藏于心底的自信的一种宣泄吧。 我喜欢这种略带些夸张跟浪漫色彩的谈话, 我喜欢对自己未来美好的憧憬, 我喜欢把责任拦在自己身上的霸气, 我喜欢我为家做出的贡献, 我喜欢听到父亲因为他的儿子而感到骄傲, 我喜欢为着自己所吹过的牛逼而不知疲倦的奋斗, 我喜欢幸运女神光顾我这个为理想而拼搏的年轻人。 接下来面临的最关键的事情是:找工作 所有我吹过的牛皮,归根...
阅读全文
摘要:这是IT职场人生系列的第二十一篇。(序言,专栏目录)之前泛泛地讲了一些危险职业,基本包括两大类:没有积累的(可替代的)和出路狭窄的(但未必差的)。中间有不少读者写来邮件问了一些自己的职业,有的作答,有的暂时没有作答。由于工作内容差别很大,很难一一给出恰到好处的答案,这篇文章将概括地分析其中几个问题。危险行业?危险职业?未来会有行业专门的文章,这里只提一下和职业的关系。有人问:“我正在一家安全技术公司工作,这个行业非常窄,是否我很危险?”实际上,整体上不存在一个行业比其他行业差很多,如果从两面性看,行业大致可以划分为:1. 整体收入和出路较差(不是刚说了没有差的吗?),但是对人的要求比较低(哦,
阅读全文
摘要:转至:http://blog.csdn.net/dingx/article/details/2242105Spring Framework可以被使用在很多场合之中,考虑到目前大多数Java EE的项目是B/S结构的,所以这里的快速上手教程会以Spring MVC为切入点,用最简单的代码一步一步来实现一个图书列表的页面。在正式动手之前需要做一些准备工作,先安装并设置好JDK 1.5和Tomcat 5,关于数据库及其访问方式可以根据个人习惯进行选择,教程中使用MySQL数据库和Hibernate(映射由Hibernate Annotation实现)。请将实际使用到的jar文件复制到WEB-INF/
阅读全文
摘要:之一,之二,之三之前讲到,方法声明为: @SFCUI.AjaxValue(story.ID, effortValue.ToString(), Effort.EffortPlannedValues, "/SFC/Efforts/AjaxSetEffortPlanned?itemID=" + story.ID + "&value={0}", ajaxOnSuccess: "refreshLeftPad");
调用的例子: @SFCUI.AjaxValue(story.ID, effortValue.ToString(), Effo
阅读全文
摘要:之一,之二,之三 先重温一下原则:最小信息原则:方法接口应只传递最必须的业务信息。包括两个层面:1. 技术信息不要暴露2. 业务信息不能重复业务信息分析先别管技术问题,想一想做这个事情需要哪些数据才能完成?1. 原来的值是多少(显示用)2. 可能的值有哪些(选择用)3. 点一个值后,应该执行什么操作(这个是核心业务)4. 返回后做什么(刷新用)还有一些问题哪去了?5. 返回的值刷新到哪里?这个调用者不管,他让我们安排,显示也是我们显示(比如一个DIV),刷新自然就是刷新我们显示的那个位置。6. 如果返回后什么都不做怎么办?看着办。最终方法接口设计为: public static ...
阅读全文
摘要:之一,之二,之三 有很多时候,需要我们在代码中执行很多重复的工作,这时候要涉及到如何使用可复用的方法来解决重复性问题。比如一个项目管理系统,要求在不同的页面的不同位置都能调整任务的估算工作量,而且要使用Ajax方法(因为每次调整后都要实时看到总计),应该如何做呢?从操作步骤上看,大致分为这么几步:0. 显示当前的值(应该看上去能修改的样子)1. 点击当前值,弹出一个小窗口,里边是可能的取值(比如0.25, 0.5, 1, 2, 3,5……天),且显示为链接(因此用户会去点)2. 点击其中一个链接(Ajax链接),执行某个Ajax功能3. 若成功,应该返回新的数值4. 如果需要,更新某些计算结果
阅读全文
摘要:这是IT职场人生系列的第二十篇。(序言,专栏目录)果然还有下篇,说说不危险和危险职业的基本定义,与以前的维度有点不同的。核心与非核心职业实际上软件企业中间有一根中轴线,是每个企业的核心。在产品研发型企业中,大致是:市场-销售-产品-项目(部门/项目,开发/测试)-运维。在项目型企业中大同小异。所谓核心,就是与企业的营收密切相关的,上述的几个部门如果出了问题,企业的营收都会受到直接的影响。此外的部门,如行政/人力资源/财务/售后/支持,都是非核心的。身处这些部门,有以下危险活动或禁忌要注意:1. 不要把核心的做成非核心的比如产品部门,本来是个核心部门,但是如果产品经理乃至总监没有做自己最不可或缺
阅读全文
摘要:这是IT职场人生系列的第十九篇。(序言,专栏目录)这本来是危险职业的下篇,但感觉还有很多危险职业,所以留着以后写。窄出路职业泛指所有越走越高但越走越窄,前途无量但是需求量很少的职业,典型的是质量和过程管理工作,以及咨询师。质量管理/过程管理这个曾经是我放弃了在即将上市的公司做技术骨干的机会而投身去做的一个工作,结果……先说说质量和过程管理是管理什么的:首先不是测试,所以手底下一般没有那么多兵;其次也不是做研发/生产的,所以不是一个技术积累型职位;然后也不是和销售/市场等业务相关的职业。其具体工作,一般是负责制定和改进企业的过程,以达到更高的管理水平。这个本来是很好的一个职业,但是在中国存在以下
阅读全文
摘要:这是IT职场人生系列的第十八篇。(序言,专栏目录)IT职场中,有几个看上去就很危险、没有前途的职业;也有一些看上去很美,但前途也很危险的职业。本系列将大致列举其中一些,并给出一些如果已经位于这些职业中,应该如何处理的方法。如何判断危险职业整体上有两种危险职业:无积累和窄出路。无积累职业指那些做了很久,但是很难有所积累的职业;由于没有积累,也就很容易因为技术的更新而淘汰,或被年轻人替代。无积累,可替代,无出路,说的是一件事。在非IT的日常生活中常常可以看到这类职业:出租车司机,看门人,高速收费员,等等。IT业中,黑盒测试人员,售后,技术支持,协调员,过程管理员(PPQA),都很容易陷入这种状态。
阅读全文
浙公网安备 33010602011771号