“软件工程”文章列表
没有比“可视化”更好的一个词能概括运维的本质,而“可视化”又应该分成两部分:可视化的服务交付和可视化的服务度量! 第一部分:可视化的服务交付 早期的运维是从ITIL开始的,那个时候大家都不知道运维是什么,幸好找到了一个IT服务最佳实践——ITIL。开始了互联网运维的摸索之路,从CMDB、服务...
英文原文:Technical Leadership: The Often Overlooked Skills and Responsibilities of a Technical Team 因为团队的存在,每个软件团队都会设置一位团队领导的角色。这一职位在不同的组织中的具体名称或许会有所不同...
英文原文:The Best Process Is No Process 前年,Wikispeed团队掀起了一场业界风暴。它们把敏捷实践应用到了最传统的行业:汽车制造业。它们在3个月的时间里就研发了一款绿色汽车,而这原本需要经历10-25年的产品生命周期。 而且,得益于独立组件的测试驱动开发,...
英文原文:Conversation Patterns for Software Professionals. Part 1 如果你觉得你所面对的业务人员不知道他们想要什么,那么这篇文章适合你。 在该系列文章中,你可以了解到与业务人员共事的方法。你将学到如何管理对话、挖掘需求及明确期望。让我们...
前言 随着移动互联网的迅速普及,手机淘宝业务在迅速的成长,目前已经发展成为拥有40多个bundle(业务模块)的超大APP产品,在这后面有着数百名的研发人员的努力工作。业务的成长和人员的倍增给技术架构、团队合作、产品的交付都带来了巨大的挑战。本文将会讲述手机淘宝研发团队在两年的时间为了达到高质...
前言 做运维的那么多,快乐的能有几个? 我们那么努力,为什么总感觉过得那么憋屈、苦闷?做的事情那么多,为什么业务部门、直接领导和公司貌似都那么不领情?怎么做才能自己更加开心些? 本专栏的主线实际是一个运维人员的十年成长史,从菜鸟到运维总监。但不是基础技术教学,也不会在运维技术的某一方面过深...
你有复用习惯吗? 你是程序员吗?我们经常要写数据库连接的代码,这些代码都类似,无非是new一个connection,然后配置connection的参数,然后open。很多编码新手,常常会在不同的地方编写这段类似的代码。其实很简单,这段代码应该抽取出来供每个地方调用。如果你编写的代码中发现很多类...
一张技术文凭就是铁饭碗敲门砖的时代已经一去不复返了。如今,各大公司寻觅的是具有商业头脑的IT高手,而不是单纯的技术专家。如果你现在是一个编程高手,想要成为一名软件工程师,探索和学习就不能停止。不久之前,软件开发者的软件应用编程和测试工作是相对独立的。如今,DevOps(开发运营)革新浪潮来袭,强...
英文原文:Software Development: Fast and Slow 本文作者 Michael Dubakov 从事软件开发方面的工作,他在读了 DanielKahneman 的《思考,快与慢》后,思考了软件开发中的快与慢,并且把书中的一些思想应用到实际的软件开发中。下面是笔者对原...
1、软件长期运营存在什么问题 一个大规模的客户端软件的生命周期中,我们可以把它分为两个比较粗的时期。一个是前期的搭建软件的时期,即从无到有的时期;第二个是搭建完成之后,进入的一个稳定的运营时期。第二个时期才是最关键的,在这个时期我们会持续的迭加需求,持续的优化功能,而且第二个时期也是代码在慢慢...
一个正在持续增加新功能的软件,尤其是类似QQ这种做为一个超大规模客户端软件,又随时需要适应用户要求和发展的需求,需要不断的做快速的更新,开发节奏非常快。而且因为我们的用户是海量用户,用户的软硬件环境非常复杂。性能作为软件的用户第一体验,如何去系统性地保障软件的性能,对于QQ来说就变得非常重要。 ...
英文原文:Swiss Army Knife Syndrome 如果大家认为这篇文章更多是在喷,我先说抱歉。“瑞士军刀综合症”的想法是起源于我和项目经理、客户、甚至其他开发者打交道的过程中产生的沮丧感,他们都以一种狭隘特殊的方式思考问题。我称之为“瑞士军刀综合症”。 瑞士军刀 “瑞士军刀...
这两天,在微博上表达了一下Code Review的重要性。因为翻看了阿里内部的Review Board上的记录,从上面发现Code Review做得好的是一些比较偏技术的团队,而偏业务的技术团队基本上没有看到Code Review的记录。当然,这并不能说没有记录他们就没有做Code Review...
Jim Bird是一位经验丰富的软件开发经理、项目经理与CTO,专注于软件开发与维护、软件质量与安全等领域中疑难问题的解决。在过去的15年间,Jim曾管理过团队建设并主导过高性能的财务系统的建设。他的主要兴趣在于如何提升小团队的效率以构建真正的软件:高质量、安全、可靠、高性能及适应性强。近日,J...
英文原文:El-Habya'a” or the Technical Debt 我们曾遇到过最后期限即将到来、时间非常紧迫的情况。当时,我们必须尽快修复Bug,然而其中的一个Bug特别坚韧,任我们百般努力也无可奈何!随后,我的某个同事接手了调试工作。他强行写入了一些应该从数据库中检索来获取的值—...
[注:原文发布于2011年12月23日] 背景 现如今,单元测试、自动化验收测试、持续集成等技术手段已被很多项目团队所采用,它们可以在软件开发活动中很大程度的保证开发软件的正确性,即是否满足了新的需求并且没有破坏已有的需求。但是如果软件无法顺利的部署到生产环境上,就不能带来任何商业价值。 ...
英文原文:Why Software Development Methodologies Suck 围绕软件开发实践和方法论,总有很多教条式的口水仗。阶段式(phase-gate)方法能够有效管理软件开发过程的风险,还是说只是风险管理中的花哨噱头?TDD真的能够促生出高品质软件?结对编程是代码评...
在《建设全功能团队》和《建设全功能团队——实践篇》两篇文章中,我的同事胡凯曾介绍过建设全功能团队的必要性和良好实践,此后在围绕这一话题的讨论中,很多人都分享了自己的理解,或看好,或看淡。在ThoughtWorks有许多团队一直在建设全功能团队方面实践着,在这篇文章中我希望与大家分享我从这些团队收...
英文原文:The Best Developer Team Structure 在灭火时,有一种“水桶阵型”——队伍中所有人排成一列或几列,将水桶从水源处传递到火灾现场。这样在团队协作时甚至不需要语言交流,但显然不适用于软件开发。 Scott根据自身经验,针对软件开发总结了以下几点建议,不一定...
英文原文:Patterns for Continuous Delivery 当你有了持续集成需要的构建服务器和脚本之后,下一个问题肯定是:“我们该拿这些构建版本怎么办?”持续交付,以自动化或半自动化方式,将构建版本从一个环境提送(promote)到更接近实际生产的交付准备环境;这常常是公司在这...