Software Failure Is Organizational Failure

Software Failure Is Organizational Failure

Brian Sletten

Beverly Hills, California, U.S.

WE AlWAyS BlAME DEvEloPERS when things go wrong with software proj- ects in an organization. When deadlines are missed, or when what is delivered has more bugs than an entomologist’s wildest fantasy, it may seem that the team is not good enough, smart enough, productive enough, or up to the challenge. While individual teams may deserve a fair amount of criticism, you cannot forget that successful software projects require active and adequate participation by all stakeholders.

Everyone’s participation is crucial, because in order to stave off failure, you need to know who is building what, when, and why. You need to add business func- tionality in deliberate, prioritized ways. You need to catch problems with poorly captured and expressed requirements. You need to nip latent impediments in the bud by spotting people who are potential blockers, noting communication failures, and soothing overwhelmed (but overeager) development teams.

Developing software requires valid metrics, clear communication, and engaged business and executive stakeholders. They must be involved in software deliv- ery efforts and assume partial responsibility for both positive and negative outcomes. The software project manager needs to measure and track success and failure records. Teams that consistently deliver can be trusted to do so again. Teams that seldom deliver require more oversight, further training, and realignment, or perhaps some members must be shown the door.

However, allow software teams time to clean up their own messes. As they rush toward various releases,* they will incur what wiki pioneer Ward Cunningham calls “technical debt.” Like real debt, if it is not paid down consistently and responsibly, it will become unwieldy and require too much attention to service.

* Releases: The agile development method of software development creates specific functionality within several short time frames. During each time period, requirements analysis, planning, design, coding, unit testing, and acceptance testing are performed. At the end of this time, a workable feature is “released,” or shown to the customer.

           Each iteration? of work should include new business functionality, as well as a sanctioned effort to refactor some of the hacks? that inevitably show up in the code. This is neither a license to goof off, nor the sign of a bad team. It is sim- ply a programming reality that must be routinely addressed with full support from the executive stakeholders.

The organization must commit to tracking industry trends, acquiring tools, and adopting practices that demonstrate productive influences on how pro- grammers work. Encourage developers to expand their knowledge, both on and off the clock. Playing around with new tools, being trained, attending high-value conferences, and reading books and blogs are all necessary compo- nents of the constant effort required by this field.

Organizing team lunches where members share knowledge and promote new ideas is a great, inexpensive way to foster growth. Software engineers who feel supported by their employers tend to be more loyal and willing to go the extra mile. They are also more likely to be able and ready to respond to changes in requirements and technical landscapes.

The software industry has a lot of work to do to help its practitioners be more consistent in the delivery of high-quality, on-time releases. Organizations that build software must be engaged in the process at all levels to improve their own chances for continued, repeatable success.

时间: 2024-11-05 16:06:55

Software Failure Is Organizational Failure的相关文章

Android: Failure [INSTALL_FAILED_DEXOPT] and Failure [INSTALL_FAILED_UID_CHANGED] 解决方案

1. 错误:  Failure [INSTALL_FAILED_DEXOPT]  Android安装App时 D:\WorkSpace\Administrator\workspace\svn\sootOutput>adb install OpenSudoku_1.apk 1032 KB/s (235960 bytes in 0.223s) pkg: /data/local/tmp/OpenSudoku_1.apkFailure [INSTALL_FAILED_UID_CHANGED] 原因是:

Radio Link Failure and Recovery

四种会发生Radio Link Failure的场景 -  DL Physical Layer Failure (PDCCH BLER > 10%) -  Random Access Problems (in Connected State) -  Failure after RLC retransmissions(specific PDU) -  Handover Failure - T304 expiry (Acquisition or random access) DL Physical

软件测试(二)之 Failure, Error & Fault

知识回顾 软件测试中的错误主要分为三种:Failure, Error 和 Fault. 下面就分析一下它们的不同: Fault的定义:可能导致系统或功能失效的异常条件(Abnormal condition that can cause an element or an item to fail.),可译为“故障”. Error的定义:计算.观察或测量值或条件,与真实.规定或理论上正确的值或条件之间的差异(Discrepancy between a computed, observed or me

CISSP AIO 2th: Information Security Governance and Risk Management

2.11 Security Steering Committee(安全指导委员会) A security steering committee is responsible for making decisions on tactical and strategic security issues within the enterprise as a whole and should not be tied to one or more business units. The group sho

加盐密码哈希:如何正确使用

Salted Password Hashing - Doing it Right If you're a web developer, you've probably had to make a user account system. The most important aspect of a user account system is how user passwords are protected. User account databases are hacked frequentl

[转]加盐hash保存密码的正确方式

0x00 背景 大多数的web开发者都会遇到设计用户账号系统的需求.账号系统最重要的一个方面就是如何保护用户的密码.一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码,即使网站被攻破的情况下也不会造成较大的危害.保护密码最好的的方式就是使用带盐的密码hash(salted password hashing).对密码进行hash操作是一件很简单的事情,但是很多人都犯了错.接下来我希望可以详细的阐述如何恰当的对密码进行hash,以及为什么要这样做. 0x01 重要提醒

Maste Note for OCR / Vote disk Maintenance Operations (ADD/REMOVE/REPLACE/MOVE)

Doc ID 428681.1 Applies to: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 11.2.0.1.0 [Release 10.2 to 11.2]Information in this document applies to any platform. Goal The goal of this note is to provide steps to add, remove, replace or mo

如何安全的存储用户的密码

大多数的web开发者都会遇到设计用户账号系统的需求.账号系统最重要的一个方面就是如何保护用户的密码.一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码,即使网站被攻破的情况下也不会造成较大的危害.如果你还在存储用户密码的MD5,那可真的有点弱了.赶紧来看看这篇文章吧. 保护密码最好的的方式就是使用带盐的密码hash(salted password hashing).对密码进行hash操作是一件很简单的事情,但是很多人都犯了错.接下来我希望可以详细的阐述如何恰当的对

Https适配

https封面 在WWDC 2016开发者大会上,苹果宣布了一个最后期限:到2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能.也就是说,自2017年起,网络请求必须由http改成https.正因为这个原因,我也打算尝试下适配Https网络请求.由于先前没有配置服务器经验,网上说的也很不详细,因此踩了不少坑,足足花了一天的时间.现在我把我配置的流程写下来,希望后来人能少走点弯路.(网上教程有,但是写得很乱,难理解,这里我打算用最通俗