开发牛逼移动应用(APP)的那些事你知道吗?(一)

发布于:2023-05-15 17:50:27

从1993年开始涉足IT行业,(当然那时还只知道叫电脑行业,那时做这个行业的公司里还基本没有妹子 ;),现在想一想已经在这个行业里摸爬滚打了23年,也算是个IT老人了。这些年里管理过几百人的团队,和分布在**不同国家的合作开发团队。 回国后在国内第一的软件企业又做了五年外包。在软硬件设计,开发,测试,服务与外包这个链条上可以说扮演了所有的角色。

这些年合作的国内外客户有几百个,但纵观合作的客户里产品开发的综合情况来看前三名是 日本,美国和德国。**在软件产品的开发管理上还是初级阶段。这几年见过很多的客户,大部分都不了解软件产品的开发流程,其中很多人走了弯路,浪费了很多时间和金钱之后来找我们做善后(擦屁股)。总结下来这些失败的客户绝大部分都不了解软件开发流程。不能说了解了开发流程就一定能出成功的项目,但是最少可以加大成功的机会。所以个人认为无论是产品经理,项目主管,还是开发人员或是想在互联网+上创业的新兵都应该了解开发的流程,并根据自己的情况进行选择性的套用。

今天就借助互联网+的大潮专注的说一下移动应用(可以是手机APP,微信公众号,或者一个H5网站),虽然移动应用也是一种软件,但它有其特殊性,所以开发流程相比传统软件产品还是有比较大的区别的。接下来让我们步入正题: 移动应用开发流程

APP的开发流程与传统的电脑软件有所不同,总结移动的开发流程大体上可以从原有软件工程学中的7个阶段浓缩成4个阶段。 它们分别是:

功能与体验设计

开发与测试阶段

发布与上线阶段

维护与更新阶段

阶段一:功能与体验设计

了解痛点:与目标用户进行交流,了解他们的的痛点和真实需求。注意不要闭门造车,一定要确定需求真实的。 

编写用户故事:确定用户需求后,根据用户的描述与目标用户的使用场景编写用户故事 (User Story)

确定第三方关联:确定在解决痛点进是否需要涉及与其它硬件连接(如蓝牙或RFID),或其它第三方软件的交互等。

简单定义APP功能:编写应用需求文档 (Application Function Specification)

设计APP框图 (Wireframe Design):不要上来就设计高清图,先从框图开始其定功能和流程是否和理。

进行可行性分析: (Feasibility Study)需要有技术人员加入

选择目标机类型 :(Android , 苹果,手机平板 确定下来使用的手机品牌与型号) 一些国内的手机如小米 OPPO 等UI定制比较多,开发上一定要注意。 比如图片上传,消息接收,震动控制这些操作会与更接近原生的手机如Google,摩托罗拉等手要有所不同。在开发中一定要注意针对性的全功能测试。

重新定义(精简)定义的功能:将设计的框图与用户使用流程进行比对,并确定是否有必要进行改动

高清交互设计:设计APP的高清设计图(HD DESIGN)和基本用户体验(User Experience Design UE),可以没有动态交互,但一定要有PSD,这些会大大加快开发的效率。 

确认审批 :(用户 -**导必须点头)Sign Off:无论颜色,布局,排版,样式,字体这些都要确认好。 

PRD:编写详细产品需求文档 (Product Requirement Design ) 

任务管理:并将全部任务加入任务管理系统 不一定要是多牛的系统,一张Excel表也可以的。

在这个阶段如果发现的功能,团队,费用,或是质量无法达到要求那么请认真的考虑解决办法。如果实在无法解决建议暂时不要进入第二阶段,直至找到可行的解决方案后在进入下一阶段。也有些公司叫 QG1 (Quality Gate 1)。

阶段二:开发与测试

PRD 移交:将PRD交给开发团队并与开发团队共同协定开发计划 (Development Plan与Schedule)。将相应的需求任务按时间与任务进行分配,设定相关的负责人。定义全部的资源纯需求,包括人员

确定技术框架:开发团队根据需求确定开发所使用的技术和框架,建议有框架的尽量用,实在没有的在自己开发。 因为这样其实比全新开更保险。如原生,Hybird, 或是 HTML5这些方式要先确定好。 如果程序有微信端,那么服务端开发需要兼顾两边的开发形式。

开发团队进入:根据需求确定所需要的开发团队组成,如安卓程序员,iOS程序员,服务端,前台,与后台开发人员。

详细设计架构与接口:进行软件的架构设计,如网络接口,错误处理,日志上传等需要先行设计完成,并对公用部分进行实践。先完成基本框架后,然后在框架的基础上完成其它功能。

部署开发环境:安装开发系统,购买服务器,设立版本管理与问题(Bug)管理的流程与工具。

开发进度日报:开发团队进行产品开发,并进行日常跟进与汇报。将全成的任务更换成完成状态,以便可以了解开发的进度情况。

解决开发外的“难题”:第一时间解决开发中遇到的问题 (这里不只是技术问题,还有比如 测试机, 测试环境, 服务器等)都需要根据开发计划进行解决不要造成开发的延误。一定记住,开发人员都很会解决计算机问题,但大部分不太会沟通,所以这样的问题不要等开发人员提出来。因为很可能你听到时已经是马上就需要的时候了,但采购确需要时间。

进行测试:根据开发计划设定的里程碑(Milestone)进行项目跟进测试,并进行必要的调整(一定不要等到最后在调整)

同步进行:测试最好与开发同步,建议尽量使用敏捷的开发管理方式,并有测试团队全程配合。 

测试验收:不要让开发团队自己验收,不是开发不认真,BUG是一定会有的,并且最重要的是开发和测试的想法是不一样的。 测试团队根据PRD进行逐条验收并验收(SIGNOFF)。如果发现问题要及时记录BUG管理系统中。

种子用户测试:如果有条件建议拉种子用户进来使用,那怕是给用户钱也让他们先用着。

本地化与国际化:如果针对的市场不止国内,还要进行本地化和全球化的开发与测试

Note:金融与支付相关的软件一定要注意支付方式,并预留出足够的开发时间。 一般每种新的支付方式如果没有人使用过那么从了解到开发完成都需要3周到6周的时间。

阶段三:发布与上线

选择发布的时间:这个很重要。你发布个农民工应用,结果上线的时间是过年。你 发布个大学生应用,上线时间是暑假,那只能祝你好运了。 在做计划时一定要考虑好发布的时间,并合并到开发计划中。

APP市场进行发布:在国内发布可以考虑 应用宝,360, 百度助手,GOOGLEPLAY (2016年可能会重新我天朝)*先选择要发布的市场,这里请注意不是每种应用都可以发布的,各大市场会对应用进行严格的审查(比如 P2P,投资类)的软件基本上就无法新进市场。 所以一定要留出足够的时间。平均每个市场在3周左右。另外各市场对游戏类和支付类软件的要求不同。 各市场对发布一个产品的支持力度也不同。 在国外发布GOOGLEPLAY是必选。

对应用进行保护:选好市场后发布前 如果是Andriod程序,可进行签名,混淆,加固,兼容性测试 ,病毒测试,第三方测试。 一般这些任务可以在几个小时内完成。这里一定注意Android应用是很容易破解的,并且有多种破解方式。如果你不想你的应用明天换个名出现那就一定要进行保护。 我个人比较喜欢360的保护方法,当然如果你不介意外语国外也有很多不错的。

发布苹果市场:如果有苹果程序,请一定确认 IPHONE4S上可以使用, 并且IPAD上放大后也能使用。苹果一般的发布时间在 1 - 1.5个月之间。 也见过三周就搞定的但很少。

提示功能:发布前一定不要忘了给APP加一个新版本提醒 (不多说,你懂得)

收集意见反馈:如是联网程序建议加上客户意见反馈功能

网站备案:如果有网站在国内上线的网站需要对网站进行备案,一般时间在10到15个工作日之间。

注意第三方SDK或SAAS的使用:如果使用了第三方的组件如友盟,或百度,微信的SDK发布时可能根据不同的市场和应用会有相应的附加更改。比如最近出现的百度市场更新必须使用百度的自动更新SDK。 在国内市场发布这些一定在选择市场上要做好调查

编写用户说明书,USER Guide 文档, 和宣传文档。 无论发布还是推广的地方都使用的。

阶段四:维护与更新

清理数据并添加实际运营内容

应用推广:(刷榜), 推广包括 市场的渠道,*发等特定活动。

事件处理:特别是有服务端的APP,如果服务端被攻击或是服务器出现问题。 所以要安排客服和紧急应对团队24x7做应急准备。

开发总结:把设计团队,开发团队,所有相关的人,甚至种子用户一起开会做个总结。 总结出那些是做的好的以后继续,那些是做得还可以但有改进空间的,那些是做的不好的需要解决的。

监控用户使用情况与状态,分析客户反馈的信息和需求。

市场更新方式与原则:这个也很重要,比如Android市场更新不能更换签名文件,所如不小心换了更新就会被驳回。 每个市场的更新原则是不同的,要分别了解,并有专人跟进避免返工。

已发布版本管理:做好已经发布的版本的代码管理非常重要,如只是应用版本管理相对简单,做个备份就可以了,但如果有服务端那么就要非常小心。 尽量新加接口不要改动原有接口以免老板本用户的应用因为接口(API)的改动而无法正常使用。

新需求的定义:把总结的结果变成任务做到第二个版本的更新中来。编写产品更新需求文档。

制定更新版本开发计划:定义新的BACKLOG,并与团队一同制作开发计划(Development Plan)

(最后吐槽一下,经常有客户来说这是我们的PM,PM如何... 如何... 。 但我想说的是请一定知道 PM是一个简称,但同时也是一个很容易混淆的名字。PM 可以是 Product Manager, 可以Program Manager, 也可以是Project Manager。如果搞不明白区别自己去脑补)。这些职位都可以简称为PM,但这几个职位所做的事情是有区别的。 建议如果不清楚就不要用简称,

坐者 : 奉天雷鸣 (站着不会打键盘)***次发头条 好多排版还没搞明白,请多见谅,欢迎吐槽!

欢迎加我微信 沟通交流: lixinsong1977


免责声明:本站所有内容及图片均采集来源于网络,并无商业使用,如若侵权请联系删除。

上一篇:贺喜灿在“鹰潭在线”新闻网站调研

下一篇:吉林28星网络从*简到*致,只专注软件定制开发

资讯 观察行业视觉,用专业的角度,讲出你们的心声。
MORE

I NEED TO BUILD WEBSITE

我需要建站

*请认真填写需求信息,我们会在24小时内与您取得联系。