Answers:
* 1.)与开发人员交谈,看看他们真正需要什么!*
2.)研究一种可真正快速启动多个环境的解决方案(如果您不符合流行语,请考虑使用公共或私有云实例或老式虚拟机)
3.)源/版本控制
4.)代码审核系统(以Crucbile / Fisheye为例)
5.)看板墙(或类似的东西)
6.)通信协议(实时聊天是一大优势),Wiki也鼓励协作。这也涵盖了内部的公共关系-您将如何与企业主,技术支持人员和其他团体互动?
7.)电子白板
8.)为开发人员提供舒适的环境(沙发,桌子,休闲区,良好的WiFi等)
9.)很棒的咖啡!!!
让我们从为您的项目雇用一支由合适的专业人员组成的优秀团队开始。在典型的业务应用程序中,您至少需要聘请数据库开发人员和数据库管理员,质量检查人员,系统管理员,业务分析师,应用程序开发人员,UI专家和团队负责人。DBA,System Admin,业务分析师和QA应该与开发团队位于单独的报告链中。开发数据库专家应向应用程序开发人员和UI专家报告相同的技术负责人。
设置办公空间。如果可以的话,私人办公室是个很好的选择(我希望您对此感到很幸运),但是至少要有办公桌,电话,电脑,白板和几个专用的会议室。确保有午餐休息的地方,冰箱,汽水,小吃和咖啡。免费提供软饮料和咖啡。
为应用程序和数据库设置dev / qa / staging和prod服务器。数据库不应与应用程序位于同一服务器上。根据项目的大小和范围,每个环境可能需要多个服务器或SAN等。
设置服务器后,立即安排文件系统,数据库和数据库事务日志的备份。设置第一天就要做。雇用像Iron Mountain这样的公司每周进行异地备份。
设置源代码管理系统并创建描述其使用方式的文档。不要忘记坚持所有数据库结构更改和查找类型表的数据插入都应在源代码管理的脚本中。这将使部署更加容易。
购买商业软件或为您决定与所有相关用户一起使用许可证的工具集下载开源软件。
购买开发者机器,它们尖叫得很快并且有两个监视器。购买至少一台测试设备,该设备运行缓慢,并且具有典型的用户台式机性能。
培训新开发人员如何完成任务。如果您的团队规模足够大,可以聘请一些初级开发人员,则可以为他们安排额外的培训,并将时间包括在项目计划中。至少三个月密切监视初级人员。在第一个月密切监视所有新员工。尽快摆脱枯燥无味的开发人员。
确定需要以什么顺序(关键路径)完成什么。在关键任务结束之前,请勿在关键路径的末尾分配任务。
创建测试计划和要求。
与客户定期安排进度会议。他们应该知道您在做什么以及遇到什么障碍。不要不告诉他们什么时候会迟到。如果您距离最后期限还有三周时间,并且您已经知道自己会错过最后期限,那么在您必须告诉客户之前,这种赤字不会神奇地消失。确保客户知道增加的需求意味着增加的成本和时间,并且每一项增加的需求要么必须放弃其他任务,要么最后期限将因新任务的小时数而改变。从一开始就明确这一点,将节省大量的痛苦和加班时间,并且使您的小组而不是客户承担的费用超支。
设置一个环境进行性能测试,不仅要测试一个用户的速度,还要测试一个可以同时预期的用户数的环境。在上线之前的一天,不要等待进行此测试。
在项目计划中,假设质量检查人员会发现错误,并且需要花费一些时间进行修复。最后不要只安排一天的质量检查。
创建大致与您认为数据库大小相同的测试数据。让所有开发人员针对这种大小的数据库测试其代码。不允许开发人员仅在其个人计算机上针对小型数据库进行开发。这是导致代码正常运行的一个常见原因,直到它正式投入生产。
将奖励计入预算。当人们坚持不懈地工作数月且只有经理人获得奖金时,这会激励人们。还要经常以书面形式表示谢谢。
您可能需要项目管理系统或至少设置电子表格来跟踪需要跟踪的内容。在进行项目计划时,假设您每天的计划时间不得超过六个小时。这有助于说明将花费在项目上的时间,例如休假,病假,假期,人力资源会议,绩效评估等。 (从美国的11月1日到1月1日),您可能需要为更多的假期和休假时间分配额外的津贴。期望开发人员放弃休假和假期是不公平的,没有人能够预测何时会发生诸如病假,陪审义务,丧亲时间等事件。假设他们将在您的团队中发生此项目。
我在问题和后续答案中看不到的一些内容:
灾难恢复计划。您如何备份开发箱,暂存,测试等?每个开发人员在偶尔的下雪天都有在家工作的需要吗?等等。
培训计划。您的开发人员每年需要培训几周以保持精明?有人追踪吗?(对于大多数团队来说,一个摊贩就足够了。)有一种机制让他们报告(向某人发送电子邮件,说他们观看了2个小时的“任何内容”网络广播),并且管理层可以进行计划-例如,我们应该将谁发送给今年的会议。
工具位置。这是“我们为您提供了所有MSDN订阅;请不要在您的工作机上安装其他任何东西”还是“我们想要您的代码,但我们不在乎您使用什么来编辑,编译和测试它”那种地方。做出并记录决策。
您可以承受或负担得起的尽可能多的集成ALM。通常,“阻抗不匹配”,重复输入,工具重叠以及转椅应用程序集成的原因是系统一点一点地增长。从头开始,您想表明您的员工可以在整个周期中停留在一个工具中。不使用X输入代码,不使用Y进行编译,不使用Z进行测试,使用A更改工作项/任务的状态,报告他们在B上花费的时间,告诉正在等待的人现在可以继续使用C,试图弄清楚列出D下一步要做什么,以E衡量总体进度,等等。
人们最初分配足够的钱时,这是罕见的事件。
[以后... 重新协商 ...]
对于组织而言,高昂的成本并未在整个开发生命周期中将预算分配给安全性,这意味着安全性通常是在效率低下,代价高昂的活动或控制措施实施得太迟而无法起到很大作用之后才出现的。
与关键的里程碑一样,从初始项目计划中构建安全性,与在开发的所有其他方面一样,并使用迭代过程使安全性指南保持最新。来自安全性的最终签发应该是十项毫无疑问的检查,以确保所有安全控制措施均已按照设计实施。
否则,您将在实施后最终运行安全性-可能花费8到10倍的安全性(来自Gartner,IBM和其他公司的数据),会使人感到不安,因为功能可能受到影响,并且为时已晚,无法阻止开发和损害。