我是一位经验丰富的C#开发人员(约5年经验),最近被我的第一个开发团队负责作为技术主管(在3-5个其他开发人员之间变化).在这个角色的过去4个月中,一直存在的两难困境是试图在项目经理,客户经理,客户,设计师,CEO和我之间找到正确的沟通意识(特别是通过电子邮件) .
一方面,我知道每个开发人员对项目总体方向的了解越多,他们就越能够理解他们的特定功能在大局中的范围.
然而另一方面,我的很多时间似乎都丢失在所有不同的利益相关者和管理者之间的电子邮件海洋中,所以我想将开发人员隔离到"他们需要做什么工作当前的工作" "将使他们免受干扰.
我考虑过只是BCCing所有的开发人员,所以他们可以过滤这些电子邮件,并基本上"选择"所有的电子邮件,但我担心一些开发人员会认为这是额外的噪音来处理.如果所有的开发者都希望为太多的讨论做出贡献,它可能为"太多厨师"敞开大门.然而另一方面,其他意见可以帮助我做出更好的决策(即众议院MD风格).
Phew ......非常值得考虑.有人在这方面有一些明智的指导吗?
我正在计划一个协作平台,将由来自20个不同国家的学者在同一研究领域内进行合作.理想情况下,我希望将我的工作建立在现有的开源平台上,该平台可以扩展以满足所有要求.
最终平台具有以下要求:
此外,该平台将托管在Linux环境中.理想情况下,它会使用MySQL作为底层数据库.编程语言可以是Java或PHP,其中Java是首选.
我的问题:是否有任何符合上述要求的开源协作平台?你的建议是什么?
非常感谢提前!
从阅读邮件列表和查看规范,我无法分辨HTML5作为软件或编程技术的限制.我已经看到他们试图在HTML5中标准化视频和音频格式,似乎他们可能正在将XHTML5的定义写入HTML5规范.此外,该规范似乎非常冗长,涵盖的主题远远超出了仅仅定义和标记语言最低要求的处理指令.
HTML版本5现在是一个与标记语言相对的应用程序界面吗?如果是这样,那么该技术的界限和界限是什么?如果没有,那么为什么这么多主题与标记的处理无关,在技术的开发过程中如此受到关注?什么时候标记语言的边界结束,用户代理应用程序的应用程序首选项何时开始?使用HTML5,分离看起来不是很清楚,但作为行业标准,它应该是清晰的,对吧?
我现在正在使用Git的团队,我们有一个非常好的工作流程.我们有一个中央存储库,有两个分支,dev和master.我们创建了本地分支机构来处理各个任务.当他们准备好时我们合并到dev.然后我们在事情准备就绪时合并为主人,并标记我们的所有版本.如果多个开发人员需要更直接地合作完成任务,我们可以为他们创建另一个可能是临时的远程分支来共享补丁.这对我们来说非常好,但它给我们留下了两个问题.
一个问题是备份问题.当然,大部分代码库都是备份的.每个具有存储库克隆的计算机都具有大部分代码.但是,有人在一天中写入的代码在合并到dev和push之前不会备份.如果他们正在处理的任务非常重要,那么他们可能需要几天时间才能完成任何合并和推动.我们如何确保将正在进行的工作代码备份到中央安全位置?只需使用Git外部的一些备份解决方案?
第二个问题是监控员工进度的问题.经理希望能够看到开发人员每天编写的代码.如果在没有推出任何东西的情况下购买一天,看起来你整天都没有做任何事情.我们需要某种方式来每天展示我们的工作,这不会迫使我们提交和推送尚未准备好提交,合并和推送的代码.
我们考虑的一个解决方案是在我们制作的每个本地分支的中央仓库上创建一个远程分支.这可能会有效,但即使我们经常删除旧的未使用的分支,它也会是一个混乱的混乱.管理所有这些也需要做很多额外的工作.
如何在不中断Git工作流程的情况下满足这些业务需求?
我们的一些主要开发人员已经寻求管理层指派一名初级开发人员为他们记录他们的代码.
他们的论点是:
然而,为了保持最新状态,他们保持忙碌的程序员数量似乎随着时间的推移而增加.
这是一个好主意吗?
哇!这不是我们的经验!
以下是一些重要的澄清说明.
高级开发人员是反身自我记录员.这是一个核心招聘问题.他们有时需要被告知"为初级人员留下这个".
这是作为高级家伙的验证工具(我们的初级人员被聘用,我认为相当高的标准清除).
是的,代码应该是单一目的和自我记录.如果初级人员不能轻易评论,这是老年人认真对待的反馈.
期望青少年将其视为重构练习,并且它的工作方式比您预期的更频繁.特别是捕捉YAGNI问题,范围过大等问题.他们将老年人放入十字准线.事实上,他们起源于这种变化.(如果他们真的开始反对,我们会支持它.老年人非常愿意调整 - 他们明白他们比其他任何人都更有责任成功.)
难道你的资深人士不想解释他们的代码吗?
我们坚定地致力于"每个人都拥有代码"的敏捷原则.我们认为这会加速这一进程.
最后,个人笔记 - 当我试图理解别人的代码时,我想要做的第一件事就是在我试图理解它时重新评论它.为什么评论被视为如此繁重?
也许我们过滤掉一些初级申请人,因为我们明确说明这是我们的工作方式.但这不是营业额问题.(但这只是3个月.)
前一段时间我开始了一个开源项目,对我来说意味着(直到现在)我只是将源代码推送到公共存储库(Google Code上的Mercurial).最近,我收到了其他人就我的项目进行合作的请求.以前从未在开源项目上合作,我不知道如何继续:
现在:
另外,我有点不愿意让任何人参与我的项目.如果他们这样做,请原谅这个表达,新手?我想我可以回滚它们的变化并告诉它们,原谅表达式,gtfo,但这不会特别好.
这通常是怎么做的?
我想就如何满足以下要求的专业开发设置提供一些意见.
我给了一些特定的技术,不要太抽象和b/c我也会对插件等的具体建议感兴趣.
在该设置中,我想到了几个问题.
1)因此每个开发人员都将在个人分支机构工作.
2)该分支在工作副本中签出.
现在......这个工作副本在PC上使用dev的IDE进行本地编辑,并在服务器上执行/测试.
在这种情况下,最好/通常的做法是什么?我的意思是 - 如何在不造成太多开销的情况下在服务器上获取编辑后的代码?
开发人员会在他的本地磁盘上有代码吗?或者让IDE通过隧道或特定协议在远程虚拟服务器上写入会更好吗?
3)每天,开发人员都会将他的工作投入到他的个人分支中,该分支位于中央存储库中.
是否有关于存储库应该位于何处的最佳实践?一个单独的服务器?
4)然后在开发人员完成任务后,他/她或团队负责人将新代码合并到相应的主分支或主干中.
最令人困惑的部分是我在2)和3)之间写的内容.因为到目前为止我只使用本地服务器.例如,具有运行代码的服务器的VM位于共享文件夹中,因此我将能够直接编辑它.当服务器现在实际上是远程时,我不确定如何有效地弥合差距.有效地意味着不必通过FTP手动上传.
欢迎外部资源或书籍推荐.
我的问题是/准目标是准标准/最佳实践.我认为这几乎是一个标准的开发方案,因此必须有一个"通常"的解决方案.
好的...所以让我们尝试一下图片:

V是一个或多个开发人员的虚拟测试服务器D. C和C'是两个代码版本.它们应尽可能保持一致.
我想到了两个解决方案:
1:编辑C,然后将其上传到C',然后执行C',然后提交C.
2:没有C存在.Just C',它是通过一些隧道技术编辑并执行和提交的.
我的胆量告诉我两种解决方案都是半最优的.那么什么是"专业"/最有效/最快/最方便/最无摩擦/最不容易出错/最佳实践/行业标准?
任何问题?
我作为研究生研究的一部分与团队进行软件开发.我们参与了许多在不同地方托管的项目:一些在公共GitHub项目上,一些在私有Redmine实例上,等等.一些逻辑项目被分成多个项目存储库,通常包含一些公共部分和一些私有部分.我们正在为每个项目使用问题跟踪器来确定其各自的托管位置,这很好,除了我们现在有很多地方需要检查,我担心我们正在接近"工具超载" - 报告的地方太多了bug,太多地方检查错误报告.
所以,问题是:是否有一个聚合器工具/网络应用程序,我们可以配置为向我们展示至少一个来自多个不同的错误跟踪器的组合错误列表?如果它还能显示一个组合的"活动源"(如同GitHub和Redmine提供的那样),那就更好了,如果我们可以添加"一次性"外部错误来跟踪(例如上游bugzilla中的某些内容),那就更好了但现在我真的进入了梦境.
"我也是"更新2013-02-14:
我打算发一个明显与此重复的问题.由于它没有得到一个公认的答案(并且这些答案似乎都不是特别令人满意),我将扩展这个:
我正在处理多个团队(多个站点),每个团队使用不同的问题跟踪器(目前所有的Redmine,Jira,FogBugz和Trac).我可以通过Web访问跟踪器,我对每个跟踪器感兴趣的问题通常非常适合在其他跟踪器中交叉引用相关问题(理想情况下在自定义字段中).
是否有任何工具可以某种方式呈现一个更有统一的特定项目视图,有效地分布在多个团队中,而不是我现在从打开多个浏览器窗口时获得的?
我正在努力改进的工作流程的一个例子是发现一个团队声称已经修复的问题,但是下游相关团队需要刺激来挑选并验证它,或者发现下游何时确定不需要的东西更多,但没有通知上游.
请注意,流程,政策和政治是没有希望每个人都同意在某个地方使用一个共同的跟踪器.
我正在寻找一个轻量级的IDE(轻量级,可以在树莓派上运行,类似于此线程中所描述的,并具有类似于Google Docs,Gobby,Cloud 9,Codiad等的协作支持,因此我可以帮助教授编程。
似乎有很多协作编辑器,很多非常好的IDE,但是很少有带有调试支持和运行按钮的协作IDE。
就个人而言,如果我要进行协作编辑,我会使用带有出色插件CoVim的vim,但是vim并不是特别用户友好。
开源是一个巨大的优势,尽管并非绝对必要。跨平台支持(包括linux)是必须的(不仅仅是在Mac上通过x11和gtk +进行访问-许多应用程序都说它们在Mac上可用,但实际上,如果您希望它们工作,则必须安装一半的Linux发行版)。如果它支持vim绑定,我会很高兴,但这完全没有必要。
现在,我想到了一个具有课堂支持和作业提交功能的完整教育IDE,这将是一件非常有用的事情。只是想一想。