极端黑客:骇客马拉松成功秘诀

来源:岁月联盟 编辑:猪蛋儿 时间:2020-01-28

黑客马拉松通常是为期一两天的编码竞赛,开发人员会提出解决现实生活中的问题并构建可行的技术解决方案的想法。尽管缺乏睡眠,但我个人还是很乐意参加黑客马拉松,因为这给了我一些质量关注的时间,可以将我的一些想法发展为原型或产品,还可以与一些聪明的人建立联系并进行协作。这是一个可以尝试使用我尝试中的某些技术的好地方。


黑客马拉松的典型心态是临时的,有创造力的,自发的,同时要适应某种模式,这将有助于团队找到将想法转化为可展示产品的关键途径,并减少在以下方面花费的不成比例的时间没有必要。

对关键路径的关注将强制短时间的有效利用和任务的并行化。作为板球迷,这就是为什么我在骇客马拉松和T-20游戏之间取长补短!

ThoughtWorks在过去25年中因在软件开发中采用敏捷实践而闻名,而我已经在ThoughtWorks工作了将近6年。我从事敏捷开发的工作越多,我意识到敏捷不仅适用于长期运行的项目,而且在必须从头开始以在很短的时间内实现特定目标时,也可以提供很多帮助。好吧,黑客马拉松就是这类项目之一,不是吗?

从我的黑客马拉松经验中得出以下观点,这就是我为什么应用敏捷实践将成为成功的黑客马拉松秘诀的秘诀,以及它如何帮助您的团队将您的绝妙想法带入可以展示的有效产品中。

敏捷软件开发

让我们快速回顾一下敏捷软件开发的价值。

个人与流程和工具之间的互动
工作软件胜于完整的文档
客户合作而非合同谈判
响应计划变更
极限编程(XP)是一种敏捷的软件开发框架,最适合用于黑客马拉松,因为XP围绕简单性和构建当今而不是未来的需求而进行。

黑客马拉松中的敏捷

敏捷本身并不是一套规定的规则。如果时间安排不错的小团队决定不结成对子,不处理拉取请求,那也很敏捷。在敏捷中,没有妥协,只有“如果我们遵循,什么才能使我们富有成效”。将hackathon的某些结构和准则定为框架可以帮助团队获胜,这是将Agile的本质提取到hackathon中的更大动机。

角色:

黑客马拉松项目团队中成员的角色非常简单-预期他们将在需要时扮演所有角色。由于团队中的人数将会减少,并且黑客的想法是通过协作构想的,因此团队中的每个人都是产品所有者/客户,分析师,设计师,开发人员,测试人员。

起始时间:

黑客马拉松的起始阶段是

定义了问题陈述,并且
集体讨论了潜在的解决方案。
创新是主要重点,因为它将使黑客脱颖而出。这里的目标是“实践上具有创造性”,而无需过多考虑实施障碍或技术约束。团队必须清楚“电梯音高”。有助于提出设想的解决方案的各种因素包括成本,规模,市场性,可持续性,易用性等。

在其中一项黑客马拉松中,我们提出了一种基于VR的体验,供用户在预订时可视化和浏览酒店房间。获胜的优势是借助Android应用程序借助手机中的摄像头轻松捕捉房间的体验。

MVP / MSP:

团队现在确定最低可行产品(MVP),即在市场上发布产品所需的一组功能。如果在骇客马拉松中开发所需的时间似乎不足以在给定的团队规模下构建MVP,则团队必须决定最小的“可展示”产品(MSP)。MSP更像是一种概念验证,将重点放在与该想法相关联的“ X”因子上,这将为您带来制胜的优势。

发布计划:

然后,团队以有限的明确边界来划分功能和任务。在这里要记住的重要事情是每次编写故事时都会问一个问题:“这能被降低吗?”。不需要花哨的项目管理工具-只需写些便笺或Excel文件就足够了,因为故事将不再详细介绍。

发布计划涉及确定精益的关键路径-解决相关问题以尽早实现MSP,并列出故事的播放顺序。通常,重点是在样板功能上分配最少的时间,并更多地关注hack将要带来的创新。

并行化工作是关键要素,每个人都应严格执行的规则应发挥所有作用,这可能会给创造力带来挑战。如果团队具有相同的“必需”技能,它将完全有效。

在敏捷项目中,迭代通常需要一周或两周的时间。团队成员每小时或每两个小时检查一次,这是非常重要的,并且要突出显示他们面临的障碍。这将帮助您每两个小时达到一个“可展示的”状态,这一点非常关键,因为您将有导师来跟踪您的进度并帮助您完善自己的想法。

迭代0:

这是项目设置阶段。团队决定黑客的技术堆栈。主要因素是“冷静”因素和与用例的相关性。并非所有团队成员都必须掌握黑客将要使用的所有框架/工具。您可以随意将自己限制在黑客的特定部分,例如,以API形式公开所需数据的前端或服务等。在这一阶段,技术架构/信息流的设计非常重要。高级别和所需的VCS存储库已建立。部署策略/最终展示策略也由团队决定。

发展:

开发人员在咖啡的帮助下,继续开发产品,并经常检查漏洞的进度,以及他们是否在规定的时间内完成MSP。虽然代码是模块化的,这一点很重要,但是有时候编写一些脏代码是可以的-但请确保它简单,可理解且可扩展。黑客时,工作代码优先于干净代码。

测试:

黑客马拉松期间,开发人员通常不会编写任何测试,并且团队中没有特定的测试人员/质量保证人员角色,因为主要的工作重点是在规定的时间内发布可运行的产品。测试通常由团队成员自己进行-在很高的级别上检查“快乐之路”方案是否按预期工作,并且每个功能都与系统的其余部分兼容。至关重要的是,必须经常签入,开发人员必须在它们之间同步代码并定期运行完整的应用程序。

最终演示:

黑客马拉松结束时,所有参加比赛的团队都通过向他们的问题陈述和有效的技术解决方案进行解释,向评审们展示了他们的产品。

生命周期中的活动来自我在黑客马拉松中的经验,生命周期只是我的建议,因为它帮助我确定了其中的一些。正如电影《敌人》中引述的那样,“混乱是有序的,但尚未破译”,我希望这种结构将有助于破译黑客松的混乱部分,但又要让每个人都乐在其中,并获得很多教训,最重要的是获得奖赏。