Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >一个(初级)开发人员应该努力在他们的开发/IT团队中推动更好的过程和实践吗?

一个(初级)开发人员应该努力在他们的开发/IT团队中推动更好的过程和实践吗?
EN

Software Engineering用户
提问于 2019-01-08 14:59:02
回答 13查看 22.9K关注 0票数 114

我是一个初级开发人员,如果我能够证明变更是正确的,并且帮助团队完成工作的话,它就有能力帮助塑造我的团队的流程。这对我来说是新的,因为我过去的公司或多或少都有来自管理层的严格定义的流程。

我的团队相当小,有点新(<3岁)。他们缺乏:

  • 定义良好的软件开发/工作管理框架(如scrum)
  • 强大的产品所有权
  • 明确定义的角色(例如,业务人员将进行手动测试)
  • 定期起立会议
  • 一个统一的问题跟踪过程(我们有一个工具,这个过程仍在开发中)
  • 单元、系统、回归或手动测试套件或列表
  • 关于业务逻辑和流程的文档
  • 用于文档化内部和客户面对提示的知识库

名单还在继续。管理是开放的实施改进,只要价值是合理的,它有助于完成最重要的工作(即开发)完成。然而,基本的假设是,您必须在实现中获得所有权,因为没有人会为您这样做。不用说,上面的一些项目是非琐碎的,无疑是耗费时间的,而且显然不是开发工作。

随着时间的推移,是否值得(初级)开发人员努力尝试并推动上述工作?还是最好是“留在你的车道上”,专注于开发,并将大部分的过程定义和优化留给管理层?

EN

回答 13

Software Engineering用户

发布于 2019-01-08 20:52:22

到目前为止答案还不错,但并不能涵盖所有的基础。

根据我的经验,许多刚从大学毕业的人都拥有非凡的理论知识--比我或其他几十年来以软件为生的大四学生要好得多。

但是,这是个很大的问题,但这些知识并不是建立在任何实际情况下的。在现实世界中,很多理论都是平淡无奇的,或者至少要用大量的盐来理解,因为在实践中发现,在现实世界的场景中,这种理论是行不通的。

例如:我很久以前工作过的一个应用程序是由一位杰出的OO理论家设计的,他的设计目的是将OO原则和理论应用到T中,并将许多模式应用到任何地方。

这是一款非常棒的软件设计。

可悲的是,这导致了生产和维护的噩梦。代码库是如此庞大和复杂,以至于不可能改变位置;不是因为它特别脆弱,而是因为它太复杂了,没有人敢去触摸它,担心会发生什么(最初的架构师/设计人员是一个早已离开的承包商)。

它的性能也很差,这正是因为模式的多层结构,以及设计所需的类库。例如,单击屏幕上的一个按钮对数据库进行一次调用,将导致数百个对象实例化和方法调用--所有这些都是为了确保松耦合之类的。

这位建筑师曾是一名大学教授,他的名字中有几本关于这个题目的书。他从未有过一天的商业项目程序员的工作。

有实际经验的软件开发人员会意识到,设计将不可避免地导致并采取更加务实的方法,从而形成一个更易于维护和性能更好的系统。

同样的事情也适用于你刚毕业时遇到的许多其他事情,或者是任何公司的新员工。不要认为,因为你的理论基础告诉你某些事情是错误的或次优的,所以没有很好的理由这样做。

即使是现在,在这一领域已有20多年的经验,我对批评与我一起工作的公司的做法还是很谨慎的。我顺便提一下,我注意到事情与我的经验是不同的,因为我的经验是最理想的,但不是好战的。这往往导致有趣的对话,为什么这些事情是这样的。变化可能会发生,也可能不会发生,这取决于改变事物的价值是否小于成本。

不要害怕说事情可能会做得更好,但一定要确保你不是一个无所不知的孩子,而是一个同事,他不仅努力学习,而且愿意帮助改善公司的发展过程,而不仅仅是理论上的正确。

票数 182
EN

Software Engineering用户

发布于 2019-01-08 16:32:16

是的,但是非常小心!

,让我澄清一下。

您应该努力提高软件的可居住性。如果您查看代码/团队/业务/项目/管理,而您的第一个响应是淋浴,那么它是不适合居住的。如果你的第一反应是喊耶!然后抱怨当你被赶出办公室,然后你需要让你的家更适合居住。这是一种感觉,你会知道的。

尽管如此,您是在一个复杂的合成中工作。你做的任何事情都有可能出错,而且至少在短期内会使事情变得更糟,因为一个简单的改变会带来涟漪。所以,首先要变得谦逊,我的意思不是成为一个推动者或接受事情一定是坏的,我的意思是要接受的事实,你的良好意愿将对你不利。

问题

怀着最好的愿望,你可能会觉得需要进行广泛的变革,我不反对这些情况确实存在,但是花点时间想想。当前的系统正在工作,您和您的团队正在生成代码,可能是缓慢的,也可能是痛苦的,但它正在工作,而且大家都有如何做到这一点的经验。你大概知道该期待什么,简而言之,你是这个系统中的专业人士。

然而,在这一彻底的变化之后,除了实现者之外,没有人知道该期待什么。简而言之,在系统的这一部分,每个人都被重置到了一个新的层次。这可不妙。新手必须学习新的规则,这需要时间。在那个时代,新手犯错误是因为他们没有练习。这些错误变成了系统的一部分,你现在必须接受,而现在它并不像现在那么闪亮。

--

的前进之路

有时候,砍、烧和重建是你所能做的最好的事情。如果没有人在旧系统中练习,那就特别吸引人了,因为唯一失去的就是成文的知识。如果这种知识是完全无法理解的,那么它已经失去了,重新开始是唯一的选择。相反地,如果编纂的方法,或者它的使用方式是有问题的,但起作用的话,那么这些知识仍然是可以获得的,也许是值得保留的,也许它不值得--只是不要轻率地做出决定。

另一种选择是与系统一起工作,这样每个人都有一个参考框架,但是要改变系统的小部分,使团队中的每个人都知道,或者如果他们没有意识到变化,这是很容易注意到的,也很容易学习。这是称为凯岑的实践的基础。在演示文稿中给出了一个更面向开发人员的公式--剃须金牦牛,我强烈建议您观看它并仔细考虑。

所以,找一件可以改变的小事情来改善你的生活,希望能改变一些其他人的生活。解决或改善这种情况。这将给你实践实践的实践和经验。确保你得到了反馈:你是否能更好地讨论它,如果它真的有用的话,它是否会使系统的另一个部分感到不安。培养你对能做什么以及如何去做的感觉。

现在发生了三件事:

  • 你改进了系统,
  • 您已经获得了如何更改系统的经验。
  • 团队已经看到您成功地更改了系统。

现在,选择另一件事情来改进,随着您的经验的增长,以及您消除低挂问题,您将开始在系统中面对更困难的问题,但至少现在当您说我们必须改变X时:

  • 你知道这种变化会对系统产生什么影响
  • 你知道它会产生什么问题(什么规则需要重新学习)
  • 您知道一些立即修复的方法,或者改进更改将带来的问题。
  • 你周围的人都知道你对这个系统很了解,并且能够成功地改变它。
票数 42
EN

Software Engineering用户

发布于 2019-01-09 00:39:17

可以,停那儿吧。但你得小心点。

在我职业生涯的开始(很久以前),我有幸/不幸地进入了一个几个月大的项目,作为“初级”。

我立即注意到(OMG)没有代码存储库!所有代码合并都是通过通过邮件向对方发送zip文件手动完成的。

所以我去找了我的(也是新的)经理,建议我们应该有一个存储库。答案是:“好的,组织起来”。

因此,在没有帮助的情况下,组织一个代码存储库,并且是公司的新成员,这是一种令人谦卑的体验。

当我把它全部设置好的时候,(震惊),没有人愿意使用它。所以我试着把事情做好,幸运的是我的经理明白它的重要性,所以我得到了支持。

但这导致我不受欢迎。

我的建议是先感受一下你的团队成员。他们认为重要的是建立下一个步骤。

也许他们也有和你一样的名单。也许他们已经把所有的事情都考虑清楚了,他们想要做清单上的“事情”。

整个团队都必须团结一致。

但如果他们不是,那么你仍然可以在职业上工作。找出志同道合的人,一起合作,你认为应该怎么做。如果这能带来好的效果,那么更多的人会和你一起工作,最终会成为“过程”。

与代码一样,开发过程也是如此:需要持续改进。

所以,是的,你应该一直努力改进那些有可能改进的东西。

但也要记住,你和很多人一起工作也可能是专业人士,他们知道什么是错的,什么是需要的。

票数 22
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/385149

复制
相关文章
MTCNN人脸检测 附完整C++代码
Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Neural Networks
cpuimage
2018/05/07
4.5K8
MTCNN人脸检测 附完整C++代码
记录C++遗忘项
extern那些事 extern "C" 是放在.cpp文件中,而不是放在.c中,不然会有编译错误。放在.c的情况都是加上了#ifdef __cplusplus#endif即用来识别当前文件用C++进行编译,所以才不会报错。 static那些事 静态成员变量未赋值的存放在bss段,赋值过就放在data段. 类的静态数据成员如成员函数或者成员变量,不依赖于类对象本身,即类中的静态数据成员由对象共享。因此静态变量不能使用构造函数初始化;静态函数仅能访问静态数据或静态成员函数。 静态类对象和静态对象(变量)一样,
Rock_Lee
2021/01/13
6210
从超过100万个项目中搜索C++代码示例
  此服务可以帮助程序员找到使用类和方法以及文档的真实示例。我们的系统会自动搜索、检索和排序来自超过100万个开源项目的源代码示例。该服务的主要功能是有机会在单个页面上查看多个项目中使用特定类或方法的示例。
Qt君
2023/03/17
2690
从超过100万个项目中搜索C++代码示例
java检测网站死链,网站死链检测工具
一个网站死链过量,对付访客来讲,无奈关上的链接是对付友好的用户体验的一大袭击。而对付搜索引擎来讲,站点假如存在过量的死链接,那末搜索引擎的蜘蛛就会逐步的不再来匍匐你的站点。其成果便是网站的快照不更新,收录量骤减,排名降低及访客的大批散失。
全栈程序员站长
2022/09/15
1.3K0
C++ OpenCV凸包检测
凸包指如果在集合A内连接任意两个点的直线段都在A的内部,则称集合A是凸形的。简单点理解,就是一个多边型,没有凹的地方。凸包(凸壳)能包含点集中所有的点,凸包检测常应用在物体识别、手势识别及边界检测等领域。
Vaccae
2019/07/24
1.9K0
C++项目中采用CLR的方式调用C#编写的dll
1、注意事项:在编写C#DLL类库时,最好不要出现相同的命名空间,否则在C++中调用可能会出现编译错误。 2、将C#的源码生成的“dll”文件复制到C++项目中的Debug目录下 3、将C++项目属性设置为公共语言运行时支持 4、在项目中导入dll文件和引用命名空间
指尖改变世界
2018/08/31
2.4K0
C++爱心代码[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/04
6.3K0
C++爱心代码[通俗易懂]
C++小代码
这个代码示例实现了一个简单的学生信息管理系统,包括学生类 Student 和学生数据库类 StudentDatabase。学生类具有姓名、年龄和专业等属性,并提供获取这些属性的方法。学生数据库类具有添加学生和打印学生信息的方法。
青灯古酒
2023/10/16
1240
删除有序数组中的重复项 C++
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。
叶茂林
2023/07/30
2880
C代码调用C++函数
编译为动态链接库 g++ -fPIC -shared -o libhello.so hello.cpp
十毛
2019/03/27
2.2K0
C#引用C++代码
现在在Windows下的应用程序开发,VS.Net占据了绝大多数的份额。因此很多以前搞VC++开发的人都转向用更强大的VS.Net。在这种情况下,有很多开发人员就面临了如何在C#中使用C++开发好的类的问题。下面就用一个完整的实例来详细说明怎样用托管C++封装一个C++类以提供给C#使用。 比如,现在有一个工程名为NativeCppDll的由C++编写的DLL,里面输出了一个CPerson类。下面是具体的代码:
全栈程序员站长
2022/07/15
1.3K0
盘点C++开源项目中的十大Bug
又一年即将结束,是时候盘点一下开源项目中的 Bug 了。2020 年的盘点可能还需要点时间,本文我们先来看看 2019 年开源 C/C++ 项目中遇到的一些最有趣的槽点。
深度学习与Python
2020/11/05
8910
N年前的旧代码,爆炸
最近刚接到的任务是要在官网商城PC版上面添加一些功能。第一次体会到糟糕的代码是多么的可怕。不论是从项目结构,还是代码风格,经历了“几代人”的“锤炼”,早已风化腐朽多时。
上山打老虎了
2022/06/14
3060
N年前的旧代码,爆炸
旧键盘 C语言
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。
叶茂林
2023/07/28
1410
OpenCV检测轮廓极点(Python C++)
今天分享一个OpenCV检测轮廓极点实例,原图如下,我们需要检测出地图中最大轮廓的上下左右四个极点,并进行标注显示。
Color Space
2020/08/21
1.3K0
OpenCV检测轮廓极点(Python C++)
C++ OpenCV SVM实战Kindle检测(二)----目标检测
我们新建一个opencv-svm的项目,然后在源文件中新建一个svmpredict.cpp文件。
Vaccae
2019/10/16
1.5K0
C++ OpenCV中Canny边缘检测
Canny边缘检测算子是一种多级检测算法。1986年由John F. Canny提出,同时提出了边缘检测的三大准则:
Vaccae
2019/07/24
2.4K0
C++ OpenCV SVM实战Kindle检测(二)----目标检测
前一篇文章《C++ OpenCV SVM实战Kindle检测(一)----训练数据》我们除了介绍了一下SVM,并且做了对Kindle的图片进行了数据的训练,生成了模型文件,这一篇我们就主要来看看怎么识别预测。
Color Space
2021/07/01
5050
C++ OpenCV SVM实战Kindle检测(二)----目标检测
C++代码简化之道
我是极简主义者,崇尚简洁明快的代码风格,这也可能是我不喜欢Java全家桶的原因……当然我说的简洁是要建立在不降低可读性的前提下,即不影响代码本身的表现力。如果为求代码精简而让代码晦涩艰深同样不可取。
果冻虾仁
2021/12/08
1.4K0
C++静态代码分析
运行完后,系统目录/opt/ros/galactic/bin下就会被安装下图所示的文件。
首飞
2022/07/31
1.1K0
C++静态代码分析

相似问题

我怎么才能躲过一个街区呢?

10

我怎么能用相同的主题来主题一些街区呢?

20

我能用Twig和Apache来调试Twig模板吗?

10

我该怎么处理“文件”?

10

有一个新的元标记设置可以从令牌中修剪内容。我该怎么用呢?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档