我们花了两周时间来设计和构建一个iPhone应用程序。我把程序的名字和单行描述用邮件发给母亲。她回复了一句话:“我不明白。”我放弃了代码和产品,并从头开始。
我们在应用商店里学到的最重要的一课,同时也是大多数失败的开发者至今没有领悟的是:如果我母亲通过名字和单行描述能够立即理解一款应用程序,
那么一天至少能卖30份。反之一天卖不到5份。不幸的是,那只是我母亲,其他的应用程序开发者无法和她联系,也吃不到她做的美味面包圈,因此我们仍将保持
这个特殊的战略优势。
在软件方面成功的核心原则是:确保用户可以立刻理解
你的软件
。如果不是,简化软件。
当你做这个的时候,你会发现下面所说的其中一件事:
就像Microsoft Word。如果你真的真的要简化它,你得到的会是Notepad,并且Notepad仍然是一个有用的工具。我可以一句话描述Notepad:它可以让你编写、保存和打印文档。
如果你不能一句话描述你的产品,它就卖不出去。人们不想听你解释,他们只想听一句简单清楚的回答:它是做什么的?如果你一句话说不清,那你会有麻烦。
当你撇开想象出来的外层特征时,将会发生下面的事情:你的核心属性对人们来说有价值吗?如果你的核心属性没有任何价值并且你想卖的主要是外层特征,那你会有麻烦。
顾客有两个问题:
- 它是做什么的?
- 和我现在用的东西相比,它好在哪里呢?
能用一句话回答这两个问题,你就能赚钱。例如,如果我想把Microsoft Word卖给Notepad用户,我会这样回答:
- 它可以让你编写、保存和打印文档
- 你可以使字体加粗、倾斜,并且可以添加图片。
简化的步骤
- 1.
首先,写下你正在构建的软件最重要的一个特征。是的,不是两个,也不是三个,只写一个。你的应用程序的核心是什么?是的,其他应用程序也可能有这个核心特
征,但是这不成问题。你想要知道人们是否需要你的核心特征并且如果其他应用程序也有类似功能,人们会不会选择你的程序。
- 2. 用单行文字描述这一特征对用户的好处。即这个特征会为用户解决什么问题?
- 3. 对于一个你正在进军的特殊领域,如果你用单行文字回答一个新手关于“它是做什么的?”的问题,他是否会感到满意并且接着问你关于程序的问题?如果不是,改变第一项和第二项直到如此。
如果你已经将核心概念简化,那么非常快速并且廉价地构建这一概念。在浪费时间构建特征之前,你希望拿出一个非常简单的原型在真实用户身上进行测试。对这个原型进行设计使其能够良好运行,并在朋友、家人和你的twitter关注者身上进行测试。籍此获得反馈和想法。
然后不要基于你的观察构建程序特征。在你拥有简单原型之后,再最终决定你该如何继续或者是否继续。
如此一来你让生活变得简单,成功的机会最大并且如果你初始的猜想有误,你可以把损失降到最低。这就是成功做成生意的方式,不是吗?
转载于:http://www.oschina.net/news/15495/steps-to-simplify-software-products
分享到:
相关推荐
而对于个人项目而言,虽然可以简化某些步骤,但仍需遵循基本的开发流程,这样才能确保最终产出高质量的软件产品。同时,正如描述中提到的那样,“建议你要好好学习,打好基础”,只有扎实的基础知识才能支持开发者在...
该PDF文档可能详细阐述了如何实施上述各个步骤,以及如何利用STM32的特性来优化自检流程,减少人工介入,降低认证成本,同时提高产品的整体安全性。 在实际应用中,结合STM32的HAL库和CubeMX配置工具,可以方便地...
《世纪星简化版软件升级办法》是一份详细指导用户如何升级该软件的文档。此次升级主要涉及两个核心版本的更新,即上层软件更新至6.3A版,底层软件更新至5.50版。由于功能上的显著增强,整个升级过程需要遵循一定的...
2. 算法流程:描述从输入网格数据到输出简化网格的具体步骤,包括数据预处理、错误度量计算、顶点删除策略等。 3. 实现细节:介绍Java代码实现的关键部分,如数据结构设计、函数功能和调用关系。 4. 性能分析:对比...
这个标题提到的“hfs 简化服务器”实际上是指“HTTP File Server”,它是一款轻量级、易用的个人Web服务器软件。HFS(HTTP File Server)旨在帮助用户在没有专业服务器管理经验的情况下,快速搭建起一个简单的文件...
软件规模度量是进行软件项目管理的重要依据,在项目早期阶段尤其具有重要...该简化方法降低了标准功能点方法的使用难度,简化了度量步骤。通过实际项目验证,度量可靠性在60%以上,与其他简化方法相比,结果更加准确。
- **定义**: 软件过程是指在软件开发周期中所采用的一系列步骤和活动,旨在提高软件产品的质量和开发效率。 - **重要性**: 软件过程对于确保软件产品的质量和可靠性至关重要。良好的软件过程能够帮助开发团队更好地...
由于这里不能直接提供一个完整的软件系统,我将提供一个简化的管理系统脚本框架,包括一些关键组件和步骤,这些可以作为开发实际管理系统的起点。 一个【管理系统】的脚本通常涉及多个方面,包括需求分析、系统设计...
WindChill是由PTC(Parametric Technology Corporation)开发的一款企业级产品生命周期管理(PLM)软件,主要用于管理和协同产品设计、工程数据以及整个产品开发流程。WindChill 10是该系列的一个重要版本,提供了...
2.3 软件过程模型是对软件开发实际过程的抽象,是从一个特定角度提出的对软件过程的简化描述。软件过程模型包括构成软件过程的各种活动、软件工件(artifact)以及参与角色等。 制定计划是软件生命周期模型的第一个...
一个简化的Web开发设计流程,并提供一个基于这个流程的示例性“脚本”或步骤清单,这些步骤将指导你从项目启动到部署的整个流程。 这只是一个非常简化的示例,实际的Web开发设计流程会根据项目的复杂性和团队的具体...
5. **在主表示与简化表示之间切换**:用户可以根据实际需求在主表示和简化表示之间进行切换,以便更灵活地管理和查看不同版本的装配体。 6. **进一步编辑**:如果需要对已创建的简化表示进行修改,可以通过再次进入...
* 软件过程模型是对软件开发实际过程的抽象和简化,是描述软件开发过程中各种活动如何执行的模型 * 主要的软件过程模型有:瀑布模型、增量模型、螺旋模型、喷泉模型和基于知识的模型等 五、软件工程目标 * 软件...
在MATLAB环境中进行控制系统的开发是一项复杂而精细的工作,它涉及到多个步骤,包括模型的建立、简化和控制策略的设计。本篇文章将详细讲解基于MATLAB的模型简化和控制技术,并结合给定的文件"MATLAB开发-模型简化和...
集成测试是软件开发的关键步骤,用于验证不同组件的协同工作。Python提供了unittest和pytest等工具来简化集成测试的编写和执行。编写良好的集成测试有助于提高软件质量、减少缺陷和改进应用程序的稳定性。通过遵循...
在实际操作中,卡诺图化简软件通常具有以下功能: 1. 输入布尔函数:用户输入一个或多个布尔函数,软件会自动将其转换为卡诺图形式。 2. 自动化化简:软件内置了高效的算法,能够自动识别并合并卡诺图中的1格,生成...
4. **简化培训**:离线环境可以让新员工在无实际设备风险的情况下学习和熟悉操作,缩短培训周期。 总结,三星SM系列贴片机离线软件是提升SMT生产线效率、优化生产流程的关键工具。其强大的功能、良好的系统兼容性和...
在使用AutoPress软件设计模具的过程中,设计师需要注意每个步骤的细节,确保数据的准确性,并结合实际经验优化设计,以提高模具的性能和使用寿命。同时,软件提供的各种功能可以帮助设计师简化工作流程,提高设计...
为了达到这一目标,通常会采取如下步骤:制定详尽的安装计划,准备业务应用所需的各项材料,并与客户进行深入的沟通与协作,以确保软件产品能够无缝地融入用户的实际工作流程中。 在应用安装过程中,为不同类型的...