之前一篇文章谈到国内IT软件开发人员现状,其中涉及软件开发专业化的问题。那么如何判断一个公司或企业是否是专业化的公司?公司情况如何? 下面我们从两个方面来讨论, 通过分析公司(企业)来决定为公司是否值得工作,对可能出现情况进行预测,制定相应计划对策略。
1. 企业一般情况调研:
(1)领导者素质和职工素质分析(领导素质是首要考虑的因素)
可以通过访谈做初步了解,如具有观察能力,心理学知识体系分析结果更佳。也可以说,分析是不是好老板,跟对人才有发展。与你一起工作的人,将一定程度影响你的未来。
(2)企业发展情况分析(上升,下降)
通过媒体或渠道调查,如互联网,报表等。了解公司的发展趋势,是否支柱产业,潜力产业。
(3)企业管理素质分析(管理水平高低,管理智能高低,管理技术强弱,经验管理还是科学管理)
初次访谈可能难了解更多,更好的做法是与公司各层次人员访谈,从不同方面了解公司管理情况。留心平日职员工作中细节,流程,企业文化。
(4)企业技术素质分析(设备、技术、工艺、计量、仪器仪表、技术工人、技术人员能级结构等)
(5)企业生产条件分析(对生产的适应性,计划水平,现场管理水平)
(6)企业营销情况分析(市场分布、市场份额、渠道、价格、服务)
(7)企业财务、成本和经济效益分析
如果是上市公司,可以查询该公司的财务报表,通过购务报表来分析财务、成本和经济效益
(8)企业资源供应分析
(9)企业组织结构分析
先通过访谈做初步了解,后可整理出组织结构图,了解组织如何运作的。
2. 企业经营实力分析
(1)产品竞争能力分析(质量、价格、交货期、商誉、品种等)
(2)技术开发能力分析
利用从研究和实际经验中获得的现有知识或从外部引进技术,为生产新的产品、装置,建立新的工艺和系统而进行实质性的改进工作的能力。
(3)生产能力分析
对于IT行业公司是产品发布与提供服务能力。
(4)市场营销能力分析
(5)产品获利能力分析
我们可以将上面14个项目,每个项目以10分为最高,打分后加权,最后按权值选出最好一家公司或企业,以做决策参考。由于篇幅有限并没有对各种分析方法做详细描述,有兴趣可参考相关资料。
其次,另一个方面从IT行业软件开发领域,通常可以向公司或企业询问以下问题,以下也包括对各个问题做了注解:
1. How many developers in this project? Do we need to cooperate with other co-worker?
了解这个项目的规模有多大? 以估计在项目你有多大锻炼机会,人越多的项目分工越细,你可能只负责其中一模块,反之人越少的项目,可能分工不明确,你可能同时需要负责多个模块的前端与后端,锻炼机会相对多一些; 第二个问题确认工作环节需要与其它同事沟通?有几种可能的情况,一种项目组是有较齐全的文档,如详细设计文档,那么编码大部分按照文档来,沟通交流的机会非常少,实际对全面发展不利。另一种情况是没有文档,或只有简单的文档,或文档中内容已过期,这时有很多不确定的问题,你需要频繁与Team中同事沟通,才能继续做工作,但这需要花费很多时间在沟通上。
2. What is the most important thing of project? Performance or User Experience?
这个问题取决于回答的人角色,PM与部门经理的关注点是不同的。 从侧面去了解主管人员对软件开发关注点,以及重要性。有的公司性能与UX都需要特别重视,还有其它方面。有的公司则没有一方面重视。
3. Are all components having specification or document?
这个问题以确认是不是所有模块都有文档,从侧面了解这个项目开发过程是否规范,是否专业。有的时候,是担心没有开发文档,但又得去熟悉一个已经存的模块。
4. What is software development methodology are you use?
了解项目使用软件开发过程, 迭代或Agile, Scrum, RUP还是其它的,也是了解公司在软件开发领域是否专业?另一方面,了解项目中现行开发过程是否适应。
5. Have chance re-design or re-develop these components/module?
从侧面了解公司上层是否开放,有没有创新与变革的思想。实际现在软件开发都是基于前面历史项目基础上进行开发,很少有完全从头到尾开发机会。所以对于系统中已经存在模块是否能重新开发,也可以说自己有没有发挥空间,一般重新软件设计和开发都比之前的要做得好。如果没有机会重新开发,那么就是一直做维护,时间长了,渐渐得也就是没有激情了。当然这些创新与变革是有风险的。
6. Does your project include a plan to take steps to assure software quality during each stage of software development?
这个问题了解项目有没有质量管理,QA。从侧面了解公司或项目组的专业化程度,软件测试是非常重要过程。有测试计划,可以再进一步询问,细节如何实现,细节也体现专业化程序。那些没有测试环节的软件公司可以说就是相当不专业的!
7. Is this position need to support for 24x7 ?
有很多的所谓开发工作实际上是维护工作,当这个工作需要24x7支持时,基本就是维护工作,有的公司叫做开发维护。也需要考虑24x7的工作量与频率,谁也不想半夜被叫起来去改bug之类的事情。
8 . Do you have the software developed framework/platform?
稍微有一点儿技术积累的公司,通常产品型公司,并且重视研发,会有自己的开发架框。开发框架通常是结合公司自身业务需求构建可重用扩展性组件或框架,它象征着技术标准,规范,技术能力,框架是知识,经验的积累。目前国内IT软件行业现状是大部分民营中小型公司都没有,因为这需要一群人专门做维护,不断更新与支持,得到上层支持。
以上是个人工作这些年的总结,希望对您软件开发职业生涯有所帮助。
作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog。