艾伟也谈项目管理,项目开发经验谈:如何成为出色的开发人员

简介:   前言:之所以有此一文,不是空穴来风,也不是故意的哗众取宠,而是最近的一些所见,所感。在本文中总结出来,希望对大家有帮助。  因为一些工作原因,其他的系列文章没有接着写下去,还望大家见谅。  不要成为代码的机器  开发人员的事情就是coding,没日没夜的coding,而且大家都是这样在coding,但是效果和结局就不一样:有人coding了N多年,技术还是原地踏步,编写出来的代码还是bug连连;有人coding就变成了技术骨干,甚至有人成为了CTO, 架构师等。

  前言:之所以有此一文,不是空穴来风,也不是故意的哗众取宠,而是最近的一些所见,所感。在本文中总结出来,希望对大家有帮助。

  因为一些工作原因,其他的系列文章没有接着写下去,还望大家见谅。

  不要成为代码的机器

  开发人员的事情就是coding,没日没夜的coding,而且大家都是这样在coding,但是效果和结局就不一样:有人coding了N多年,技术还是原地踏步,编写出来的代码还是bug连连;有人coding就变成了技术骨干,甚至有人成为了CTO, 架构师等。

  为什么?

  首先从一个小的故事说起:一个项目,分配给了项目组的人开发。于是大家就热火朝天的干了起来。当时,就发现了一个现象:任务已分配完成之后,有人就开始coding了,噼里啪啦的开始敲代码,不久之后又开始噼里啪啦的改代码,然后又开始不断的调试,找出bug,然后修改bug。很快,这个迭代的期限就到了,原计划要完成的功能很多没有实现,有的人也确实做完了,问题也一大堆,有人也确实完成了,没有bug,但是在审查他的代码的时候,就是看不懂。

  这里想起了自己刚刚步入IT开发行业时候的情景。总是希望尽快的把事情搞完,因为只要没有做完,就拖了项目的后腿,很可能被leader训导,甚至可能被认为没有能力而被开除。在写代码的过程中,发现一点:尽管写代码的速度是快了,但是在写完了之后,每次编译,都发现错误,编译通过了吧,逻辑又有错误,然后就这样不断的缝缝补补,功能是完成了,但是心里有一种想法:以后千万不要让我来看和来改这段代码。因为代码写的很烂,烂的连自己都不想看,而且很多实现的方式也是很诡异。反正结果是:功能完成了。其实自己心里也很清楚,在写代码的时候,脑子有点糊,而且写着写着就不知道写什么了。

  后来慢慢的发现:如果再这样下去,对自己的发展是没有好处的,而且原本认为很有技术含量的编程活动也变成了一种没有技术含量体力活,有时候甚至不用脑子。

  就如软件开发中的需求一样:变化。

  人也要:改变。

  所以在之后的项目开发过程中,就给自己定了一个目标:写完一个小功能的代码,确保一次就编译通过(当然,在写代码的时候肯定得注意逻辑,但是偏重在使得编译通过),于是,在开发的时候,就开始“用心”了,或者说是更加的细心了。

  一段时间的磨练之后,这个目标达到了,而且还超出了期望的值:写完一个大的功能代码之后,编译也没有错误。

  所以这里悟出了一点:同样是做事情,做的也是同一件事,目标不同,结果就不一样。

  这样之后,写的代码质量确实是提高了,但是另外的问题又出来了:写出来的代码总是在缝缝补补,总是这里差一点,那里差一点。很多地方很欠考虑。

  怎么办?

  发现了怎么一个问题:每次在任务分配了之后,就开始coding。这没有错。大家都这么做的。但是有一点:每次在实现一个功能的时候,总是一边写代码,一边思考,就这样,一步步的把功能实现。其实这就是问题所在。

   就好比下棋,你总是走一步算一步,但是你的对手在走一步的时候,已经想到了后面的3步,4步,甚至更多步怎么走。如果你和这样的对手下棋,输家常常是你。

  写代码也是一样的,不要走一步算一步。在写代码之前,首先从业务上,要把这个功能的流程搞清楚,然后再考虑:如果实现这个流程,要怎么写代码。然后在开始写代码,于是带着这个思想,发现自己写出的代码逻辑错误就少了,起码在总体的流程上是对的,可能在有些地方缺少一些考虑,如验证等。这样bug也少了,开发的速度自然快了。

   说白了,就是在实现一个功能之前,先要设计,或者专业一点,画画流程图,其实流程图也不一定非得用UML画的那么标准,很多时候,就是拿一支笔和一个练习本开始画了,只要自己认识就行了。

  采用这种方式之后,发现不仅自己的设计能力提高了,而且对开发出来的功能也是很有信心的。

  一个功能,在草纸上设计,一个模块,也这样设计,甚至一个小的体统也这样设计,慢慢的,就可以上机coding之前,整个功能就已经在头脑中实现了,剩下的就是转为代码的事情了。

  如何有效的项目评估

  在项目中,总是想控制项目的进度,但是每次在开会的估算一个功能什么时候可以做完的时候,往往听到的却是这样的话“应该可以在一周之类完成”,“估计应该可以吧”,等等,诸如此类的没有把握的话,最后的结果是:什么时间规划都是白搭,延期,再延期。

  其实很大的程度上就反映了设计的问题。

  怎么说?

  其实当我们在估算项目的时候,很多的时候我们没有一个准确的估算,或者说只有一个大概的估算。其实这就是设计做的不够。

  当一个任务分配下来之后,我们确实一直在考虑业务流程和怎么实现,但是终究只是停在“考虑”上,没有进一步的细化,细化的颗粒度不够,没有细化到用到几个类,几个方法,很多的时候只是大概的想想怎么实现。就因为这样,项目的风险很大,甚至不能控制项目,而且也不知道项目是否按照计划在在进行。

  如果设计做的充分的好,最后的结果就是:整个类,流程都基本敲定,只是填充方法的实现而已,这样项目是否按照计划进行就一目了然。

  当然,这里不是闲着没事专门的说教,也不是说些大话,空谈,大谈。

  其实,编程终究是需要动脑的,多多的思考。

  其上是自己的一些经验,希望对大家有点作用,也希望大家多多的交流。

目录
相关文章
|
7天前
|
存储 数据可视化 BI
如何提升项目管理效率?2024年最受欢迎的团队管理软件对比评测
本文介绍了8款适合远程团队使用的团队管理软件,包括板栗看板、Monday.com、ClickUp、Basecamp、Notion、Slack、Zoho Projects和Teamwork。这些工具各有特色,如板栗看板适合中文环境下的远程团队,Monday.com强调高度可视化的管理,ClickUp则提供全面的任务和项目管理功能。选择合适的软件能显著提高远程团队的工作效率,促进项目顺利进行。
如何提升项目管理效率?2024年最受欢迎的团队管理软件对比评测
|
11天前
|
搜索推荐
专注力差影响工作效率?这5款办公软件让你事半功倍
本文介绍了5款提高专注力的办公软件:板栗看板、Forest、Focus@Will、RescueTime和Cold Turkey。这些工具通过任务管理、时间追踪、音乐辅助等方式,帮助用户减少干扰,提高工作效率。板栗看板适合任务管理,Forest通过“种树”机制培养专注习惯,Focus@Will提供科学背景音乐,RescueTime追踪时间使用,Cold Turkey则强力屏蔽干扰。选择合适的工具,结合有效的方法,可显著提升职场人士的工作专注度和生产力。
专注力差影响工作效率?这5款办公软件让你事半功倍
|
12天前
|
存储 项目管理 数据库
设计师协作工具的功能评测:提升设计师效率的关键
在现代设计工作中,团队合作与项目管理至关重要。本文推荐五款适合设计师的协作工具:板栗看板、Notion、Figma、Monday.com 和 ClickUp。这些工具各具特色,支持任务管理、实时协作、文档共享等功能,适用于不同规模和需求的设计团队,有效提升设计效率和项目管理质量。
设计师协作工具的功能评测:提升设计师效率的关键
|
19天前
|
监控 数据可视化 数据挖掘
如何高效管理项目?小团队到大企业的多功能项目管理工具推荐
项目管理工具是高效管理的关键,适用于各种规模的团队。本文介绍了五款多功能项目管理工具:板栗看板、Asana、Microsoft Project、Trello 和 Wrike,分别解析了它们的核心功能、操作便捷性和优缺点,帮助团队找到最适合的管理方案。无论你是初创团队还是大型企业,都能从中找到合适的选择。
49 6
|
2月前
|
敏捷开发 网络协议 测试技术
|
2月前
|
搜索推荐 项目管理
提高团队执行力的工具多种多样,以下是一些常见的工具:
提高团队执行力的工具多种多样,以下是一些常见的工具:
25 2
|
2月前
|
监控 供应链 数据可视化
团队高效流程管理必备:方法与实用软件推荐
在当前激烈的商业竞争环境中,高效的业务流程管理对企业成功至关重要。本文介绍了业务流程管理的方法,包括流程梳理、优化、监控与评估及员工培训与参与,并推荐了几款实用的业务流程管理系统(BPMS)。BPMS能自动化、可视化业务流程,提升效率。具体推荐包括板栗看板、Trello和Wrike,它们分别在任务管理、团队协作及项目管理方面有各自的优势。选择合适的BPMS有助于提高工作效率、增强流程透明度、提升团队协作能力,规范管理并降低风险,从而增强企业竞争力。
72 0
|
4月前
|
开发者 项目管理 开发工具
震惊!单人开发者如何成功过渡到团队协作?Xamarin 项目管理经验大揭秘,让你的开发之路一帆风顺!
【8月更文挑战第31天】Xamarin 是移动应用开发领域的热门跨平台工具,适用于个人开发者及团队。个人开发时需明确需求、运用版本控制(如 Git)并合理规划项目结构以增强代码可维护性。团队协作时,则需建立有效沟通渠道、统一代码规范、严格版本控制及合理分配任务,以提升开发效率与项目质量。
67 1
|
6月前
|
存储 Java 开发者
《AIGC+软件开发新范式》--07.通义灵码实战系列:一个新项目如何快速启动,如何维护遗留系统代码库?(2)
在AI 热度持续上升的当下,阿里云推出AI智能编码助手—通义灵码。通义灵码是一款基于阿里云通义代码大模型打造的智能编码助手,基于海量优秀开源代数据集和编程教科书训练,为开发者带来高效、流畅的编码体验。
251 1
|
6月前
|
人工智能 IDE 测试技术
《AIGC+软件开发新范式》--07.通义灵码实战系列:一个新项目如何快速启动,如何维护遗留系统代码库?(1)
在AI 热度持续上升的当下,阿里云推出AI智能编码助手—通义灵码。通义灵码是一款基于阿里云通义代码大模型打造的智能编码助手,基于海量优秀开源代数据集和编程教科书训练,为开发者带来高效、流畅的编码体验。