问题:
我的经理目前认为设计很重要,但对于除了最雄心勃勃的项目之外的所有项目都不是至关重要。我认为他认为设计很重要,但不是必要的,泥浆编程的大球可以“完成工作。”
讨论(主题,例子等)规划和设计的重要性有哪些方法?我正在寻找可以做的事情,比如说或者改变我的权力作为'代码peon',所以答案,如雇用另一位资深人士,解雇弱势成员等等对我来说并不是很有帮助。
或者,他是对的,我是那个应该重新思考我的发展方法的人吗?
一些背景:
从本质上讲,我们的团队由三位强大的开发人员,一些弱势开发人员以及一些在我看来甚至不应该在现场的人组成。
我们没有专门的建筑师,所以作为非官方团队领导的三个最强大的开发人员有点想要设计除了最微不足道的项目之外的所有项目,除非经理决定“泥球”足够好。他们还负责自己的(有时是多个)正在进行的项目,同时指导和帮助他人。这导致了这些人每周可接受但充分的工作量。
我对这个团队描述背景的观点是三倍的:
总结:
经理是一个聪明,虽然顽固的人会听取理智,但你必须彻底说服他“为什么”。
目前没有足够的时间注入任何培养方法,这些方法不会影响发展的日常工作,也不会很快雇用任何人来减轻负担。
目前使用团队中可用的个人创建更好代码的唯一方法是为他们设计项目并指导他们完成实施过程,因此,我们有这个问题。
答案 0 :(得分:9)
2个字:记事本架构
除非你在大多数情况下成为老板,否则你无法改变老板的思维方式。
你说没有“时间”进行设计,考虑分配的项目,深入的设计会议和代码审查等......我同意。
您需要做的第一步是让您的“潜在客户”更加平易近人。成为领导者的最大部分是成为领导者,这意味着他们必须得到信任和尊重才能成功领导任何事情。
下一步是开始获得jr。开发商在行动前思考。对于大多数开发人员而言,想要深入研究代码是很常见的,但是在几分钟内多花一些时间可以在失败时获得成功。我会假设你得到“某些东西”无论是口头还是写下要做什么工作,用这个假设,试试以下。
在记事本中:
记下需要完成的任务(程序,功能,等等)。
写下需要完成的事情才能在组件级别完成此任务。
在他们完成指出他们认为需要做什么之后,让他们转到其中一个线索并询问他们的想法,然后领导会花一些时间并且同意他们的笔记或提出不同的建议处理事物的方法,并通过询问jr来检查是否有任何遗漏。开发人员对他们正在使用的域名提出疑问,而不是通过查看并为他们执行此操作。
现在您有一个半详细的项目任务列表以及系统的基本设计。
接下来让你的潜在客户花一些时间喝咖啡休息时间,早上去询问jr项目的进展情况,并向他展示一些设计。如果设计可以使用一些改进,再花5-10分钟来解释更好的方法,并建议实施它,不要为它们做,指导它们成功。
所以,总之,如果你的潜在客户可以每天额外说20分钟,那么你的小伙伴。开发人员在潜水前需要额外30分钟,你应该在噩梦般的维护和QA周期中节省吨数。
答案 1 :(得分:4)
这是一个非常困难的情况。
您将始终拥有正常的程序员分布 - 团队中会有“最佳”和“最差”。你唯一能做的就是尽可能地将整个钟形曲线向右拖动,这样“左尾”,最弱的开发人员与一般人群相比仍然足够好。
总是需要帮助的“弱”开发人员的心态是什么?他们这样看吗?他们如何接受你的指示?他们是个人接受纠正,还是想学习?
您的团队是否有学习文化?会员是否一直在努力提高自己的技能,学习新事物?
我认为缺乏该领域是你真正的问题。如果你的团队以这种方式运作,经理就不会那么重要了。
你有没有尝试和你的队友交谈?由于缺乏规划而导致的滞后是否足够引人注意?
我不知道如何在这里编写一个获胜的论点。管理者喜欢指标。也许你可以开始保留一些证明你的观点。那里的问题是选择有意义的问题。
小心:不是每个人都以同样的方式看待“最佳实践”。对你而言显而易见的可能是对他人的诅咒。在你去经理之前先与你的团队讨论。你不想疏远它们。如果你达成共识,这将有助于你的论点。
答案 2 :(得分:1)
欢迎来到stackoverflow,
这个问题很难回答恕我直言。但看起来你需要像SCRUM这样的东西。(见http://en.wikipedia.org/wiki/SCRUM)
这将有助于您的老年人了解项目和开发人员所承担的任务,并尽早解决问题。
但老实说,我不能给你一个完全正确或错误的答案,没有:改变这个和这个,它会起作用。
了解软件开发方法(http://en.wikipedia.org/wiki/Software_development_methodologies)并找到适合您(或您公司)需求的方法。通常这将是敏捷(如SCRUM)或快速变体。
但要注意,阻碍这样的工作流程并不是一件容易的事,你需要很多平静才能使它走上正轨。
答案 3 :(得分:1)
一些想法:
如果您可以量化您对经理的陈述,由于时间浪费在无组织的编码实践和冗长的QA周期中,较弱的团队成员的项目花费了他的钱,他可能会倾听。
如果您花时间为初级会员设计代码,并在不解释您的决定的情况下指导他们完成整个流程,他们就没有机会成长为更高级的职位。
如果你摆脱(或促进;))一些不属于这个职业的人,你可能会为一个富有成效的人开放人数,他们的努力远远超过一些非表现者。
答案 4 :(得分:1)
有一篇关于Technical Debt的文章我认为可以帮助你向老板提出这个问题,并帮助老板理解你为何坚持这个问题。
答案 5 :(得分:0)
也许你可以给他买一本好书。
E.g。我开始阅读的Software Project Survival Guide。它有一些很好的清单,可能是令人信服的 - 例如。通过这份清单为自己的项目是否具备成功的基本要素打分。
尝试谷歌搜索“软件项目最佳实践”,看看你得到了什么。例如。 "Best practices for software development projects"。他们总是会支持你的目标。
答案 6 :(得分:0)
不是对你的问题的完整答案,只是一个想法。
制定计划非常重要。制定过于详细的计划是有限制的。你必须能够即兴发挥。计划大局,根据计划的目标对细节进行处理。如果有迫切需要,请准备好改变计划。 Adopt, adapt and improve
答案 7 :(得分:0)
重要的是要注意有反例。 Linus Torvalds表示Linux的开发没有计划或整体设计。但随后他在项目的整个生命周期中都有持续控制/监督的优势。
答案 8 :(得分:0)
经理的工作是确保以尽可能最有效的方式完成工作,但政治,无知和自我通常会妨碍思维的发展。最有效的方法是通过自己引入它来展示变化......只需要一个问题/问题区域(设计?),并通过实现它来非常直观地和声音地展示您认为应该发生的事情,即使它是由您自己和你自己。当其他人看到你在做什么,并意识到/见证这样做的好处,他们会遵循。一旦你完成了一个流程,坚定地介绍另一个流程。要意识到并非你所介绍的所有内容都会有效或将会持久,我们的想法是你需要不断引入新流程,尝试新流程并帮助其他人理解它们。没有人(几乎没有人)想要更加努力工作然后他们必须而且没有人(几乎)想要推出垃圾代码......在这种情况下以身作则,如果经理值得他/她理解和开始支持你。