文档章节

项目经理初长成1------软件开发

爱看博客
 爱看博客
发布于 2015/10/22 10:06
字数 1266
阅读 18
收藏 0
点赞 0
评论 0

    今天主要从项目经理的角度讲讲软件开发中遇到的问题与解决的方法。
    项目经理经常面临及早交付产品的巨大压力,而其中时间是最关键的,究竟如何才能完成任务?


一、代码审查的重要性

    假如你的团队中有两个人,知识面相同,编程技巧也相当。但是在实际开发中A实现产品功能的速度远远超过B。而实际上是当A正着力于快速完成编码时,B正花时间写代码并对其进行重构,一旦程序完整运行起来就分块进行测试与重构。假设你不知道这些,那么作为项目经理的你显然会认为A表现的更好,不是吗?这时就需要了解情况,并做代码审查。

二、技术债务不能欠

    技术债务其实是每一个开发者都会遇到的问题,在项目快到截止日期我们想到的绝对是管他三七二十一,先把代码提交了再说。这有时是迫不得已,好的开发者也许会在后期选择重构甚至重写这部分代码,而大多数,呵呵。作为项目经理,必须做到在项目收尾时估计这期间可能产生的技术债务,并在事后合理安排重构这部分代码。

三、编码规范

    首先,作为整个项目的负责人,你必须意识到,整个项目期间会有人离开,会有新人进来。在这个时候,整个项目的进度必然会减慢。如何将这个人员交替阶段的问题降到最低,这是必须考虑的。最好的解决办法就是做代码的统一规划,制定一套人性化的编码规范,让整个团队拥有整体的编码风格。当然这人性化三个字说起来容易,实现起来就很难了,毕竟每个人都有自己的编码风格,如果要考虑到所有人,必须首先对团队成员编程风格非常了解,同时了解哪些人适应性更强,哪些人不喜欢改变自己的风格。这里有一份google的《java编码规范》,可以值得你参考。

四、项目架构

    在很多时候,作为一个团队的领导者,更多的是需要你去从一个系统的角度搭建好项目框架。对于一个服务器端架构,抽象角度看设计模式你是必须能够熟练运用了,至少常用的那几种应该用在什么地方你是要知道的;在实际项目中,应该采用整体统一自顶向下的设计方式还是分布迭代模块化设计亦或两者同时使用,都需要根据实际业务逻辑来抉择。对于一个客户端架构,也许只需要常用的工厂,观察,适配,代理,命令,模板,这些要知道。客户端更重要的是用户界面,与用户打交道的一定要有优秀的交互体验,不要认为这不关你的事,一个按钮的响应时间有可能决定一个用户的去留。服务器端则需要更多的考虑安全性,在设计中要确保即使客户端完全开源也不会影响到服务器的正常运行。

五、不要指望完美的开发

    软件开发中有两个定律,28定律和60/60。用20%的时间完成80%的内容,用80%的时间完成剩下20%的内容;软件生命周期中60%的费用与维护有关,而维护活动中有60%的费用和改进相关。每一个发布的软件产品中都不可避免的有BUG,既有严重的原因(比如忽视了语言特性或细节处理)也有尚可原谅的原因(比如沟通或理解不畅)。而BUG却是软件发生变化的根源,因为当我们识别出BUG时就会重构代码来修复它们,从而也会在这个过程中增加新的BUG。因此一次开发出完美的产品是不可能的,更多的是需要你从开发那一刻就考虑到未来可能的无数次迭代,从而预留好可能会扩展改动的接口。


    以上几点,是有关软件开发过程中,项目经理所应该意识到的东西。有我自己的感悟,也有根据书本的理解,也有书本的原话,有什么写的不对的还希望大家能够严厉指出与批评。唯有在压力下才能逼迫自己学会更多,记的更牢。愿我们共同成长。

版权声明:本文原创,转载请注明来自 http://kymjs.com/

本文转载自:http://blog.csdn.net/kymjs/article/details/42640945

共有 人打赏支持
爱看博客
粉丝 5
博文 103
码字总数 23887
作品 0
深圳

暂无文章

c++ qt 组播总结

每个人都有不同的认知规律和习惯, 有的人喜欢搞一套严密的大理论, 论述起来滔滔不绝, 不管自己懂不懂, 反正读者/听者是没搞懂。 有的人喜欢从实践出发, 没看到代码, 不运行一下, 不看...

backtrackx
9分钟前
0
0
Sublime text2安装json格式化插件SublimePrettyJson[Windows]

一、下载SublimePrettyJson插件包 https://github.com/dzhibas/SublimePrettyJson 二、将下载的文件解压放到在package目录下面 C:\Users\lucky\AppData\Roaming\Sublime Text 3\Packages 每个......

lazy~
9分钟前
0
0
安装vue-cli 报4058错误

1. 4058是网络代理错误。 安装淘宝源修改一下就可以了: npm --registry https://registry.npm.taobao.org info underscore 改为cnpm执行: cnpm install --global vue-cli 安装成功: 试试版...

MrBoyce
11分钟前
0
0
CPU飙升分析

1、top -----看具体的进程 2、top -H -p pid ------该进程的线程 3、printf 0x%x 15248 ------将线程改为16进制 4、jstack 进程...

北极之北
13分钟前
1
0
新生代Eden与两个Survivor区的解释

聊聊JVM的年轻代 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我...

浮躁的码农
15分钟前
0
0
【JVM】JSTATD结合Java VisualVM进行远程监控JVM运行情况(二)

内存泄露指的是程序中动态分配内存给一些临时对象,但是对象不会被GC(java垃圾回收机制gabage collection)所回收,它始终占用内存。即被分配的对象很大但已无用; 内存溢出指的是程序运行过...

大白来袭
18分钟前
2
0
聊聊ribbon的超时时间设置

序 本文主要研究一下ribbon的超时时间设置 配置 实例 ribbon: ReadTimeout: 10000 ConnectTimeout: 10000 MaxAutoRetries: 0 MaxAutoRetriesNextServer: 1 eureka: enabled: ......

go4it
27分钟前
0
0
一行代码结果叹为观止,能做到这么极致的也只有python了

Python 这门语言非常的有趣,不仅可以做高大上的人工智能、大数据、机器学习。还可以用来做 Web、爬虫。还有其它很多的应用。今天我就给大家展示下一行 Python 代码都可以做些什么。 一行打印...

猫咪编程
30分钟前
2
0
KingShard使用

对于kingshard的功能,在git中可以看到明确的功能说明 主要功能: 1. 基础功能 支持SQL读写分离。 支持透明的MySQL连接池,不必每次新建连接。 支持平滑上线DB或下线DB,前端应用无感知。 支...

mickelfeng
32分钟前
0
0
Linux 下 查找某个字符串

如果你想在当前项目下 查找 "test" 这个字符串,可以这样: grep -rn "test" * * : 表示当前目录所有文件,也可以是某个文件名-r 是递归查找-n 是显示行号-R ...

nsns
32分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部