【PM面试题】请设计一个老年人用的新闻App
考虑用户需求及痛点
- 老年人由于特殊的生理特点,需要考虑其阅读的痛点,加入例如文字大小自定义,朗读新闻,放大镜功能。同时在软件设计上减少文字的量,多放入一些多媒体的内容。
- 老年人会对过去发生的一些事情产生怀旧的心态, 因此提供一些旧闻的阅读会给他们带来特殊的美好体验。
- 老年人也有交友需求,在这样一款专门针对老年人的App中嵌入社交化的功能,会给老年人带来较好的交友体验。
- 老年人往往更加关注本地新闻,因此在展示内容时候有所侧重会提升用户体验。
Feature设计
- 基本新闻功能
- 新闻朗读功能
- 文字大小自定义和放大镜功能
- 特殊频道:本地频道、旧闻频道,听新闻频道
- 用户中心
- 社交化功能(交友,聊天,分享等)
项目实施阶段
首先是搞清楚资源,在于面试官的沟通中得知该项目有三个开发人员,时间是三个月。
接下来我们应该确定feature的优先级,在这里我们应该用敏捷开发的思想,先做最需要完成的并且要确定产品基本需求的核心功能,在这个项目中基本的新闻功能以及针对老年人的一些辅助工具是核心的功能,因此我们应该先完成,具体的优先级如下(数字越小优先级越大):
- 基本新闻功能 (P0)
- 新闻朗读功能 (P0)
- 用户中心 (P0)
- 文字大小自定义和放大镜功能 (P0)
- 特殊频道:本地频道、旧闻频道,听新闻频道 (P1)
- 社交化功能(交友,聊天,分享等) (P2)
确立了初期的目标之后(完成P0的任务),我们要将每一个小目标分解成若干个work item,确定各个item之间的顺序以及相互之间的依赖关系,以此来确定分工以及时间表安排,同时为项目设立几个milestone节点,另外别忘了考虑可能会遇到的risk,包括人员、资源、进度等,为这些risk提出初步的解决方式以及预留出可缓冲的时间。
项目发布
经过了一段时间的开发工作后,项目满足设定目标,可以上线了,在上线之后我们需要继续跟踪和衡量三件事情:
- 我们的App是否Work,这部分需要考虑所有功能是不是如预期运行正常,包括各种移动终端的适配,各种使用环境下的运行状况,各种按钮和导航是不是能让用户轻松使用等。可以定义一些metrics来衡量,例如统计用户浏览时间确定用户是否迷失,统计用户等待时间用来确定有没有死链,通过监控用户第一次使用情况来确定是否能正确安装。
- 我们的App是否受欢迎。这部分可以通过考察用户每天的使用时长以及使用频度来确定App是否成为用户的日常使用项,另外可以监控在SNS中分享和传播的情况来看软件的传阅度。
- 我们的App有何改进之处。目的是为了发现用户新的需求,不断满足需求使得软件有所提高。我们可以通过感性和理性的方式来进行该项工作,理性的调查如统计用户在哪一类新闻上的点击率和停留时间较长或者统计在用户分享的数据里那些话题具有很高的传阅度等来给新的需求做出建议;感性方面我们可以和重度用户聊天,查看用户发送过来的Feedback以及发放调查问卷的方式来收集用户的使用感受和对新功能的建议。
【PM面试题】请设计一个老年人用的新闻App的更多相关文章
- 【PM面试题】设计一个股价推送工具
这一轮面试时间比较短,问题在短时间内不能很全面展开,因此抓住一些关键点变得尤其重要,这里我记录下当时是怎么想这个问题的. 问题解析 子问题1:推送什么?从问题中看出我们需要推送的是股价,用户可以自定义 ...
- 请设计 一个密码生成器,要求随机生成4组10位密码(C语言)
请设计 一个密码生成器,要求随机生成4组10位密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码. #include<stdio.h> #i ...
- 笔试题&面试题:设计一个复杂度为n的算法找到单向链表倒数第m个元素
设计一个复杂度为n的算法找到单向链表倒数第m个元素.最后一个元素假定是倒数第0个. 提示:双指针查找 相对于双向链表来说,单向链表仅仅能从头到尾依次訪问链表的各个节点,所以假设要找链表的倒数第m个元素 ...
- Jsoup抓取网页数据完成一个简易的Android新闻APP
前言:作为一个篮球迷,每天必刷NBA新闻.用了那么多新闻APP,就想自己能不能也做个简易的新闻APP.于是便使用Jsoup抓取了虎扑NBA新闻的数据,完成了一个简易的新闻APP.虽然没什么技术含量,但 ...
- java算法面试题:设计一个快速排序。双路快速排序,简单易于理解。
package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Compar ...
- 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。
// 第一种方法 // ConsoleApplication10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include < ...
- 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bccced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中
// test20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...
- 对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。 给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x ...
- python学习:设计一个算法将缺失的数字找出来。
算法题 已知整型数值 a[99], 包含的所有99个元素都是从1-100中随机取值,并且这99个数两两互不相等,也就是说从1到100这100个数字有99个在数值内,有一个缺失.请设计一个算法将缺失 ...
随机推荐
- DotNetBar ComboBoxEx
DotNetBar ComboBoxEx using System; using System.ComponentModel; using System.Drawing; using System.R ...
- Handler(2)
andriod提供了Handler 和 Looper 来满足线程间的通信.Handler先进先出原则.Looper类用来管理特定线程内对象之间的消息交换(MessageExchange). 1)Loo ...
- 集合系列之fail-fast 与fail-safe 区别
一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加.删除.修改),则会抛出Concurrent Modification Exceptio ...
- 解复用-mpeg2
http://blog.csdn.net/yipie/article/details/7612226 数字高清晰度电视(High Definition Television)简称HDTV,是继黑白电视 ...
- 视频质量评价方法:VQM
如何确定一个视频质量的好坏一直以来都是个棘手的问题.目前常用的方法就是通过人眼来直接观看,但是由于人眼的主观性及观看人员的单体差异性,对于同样的视频质量,不同的人的感受是不一样的.为此多个研究机构提出 ...
- 使用Firefly编写简易聊天室
1.创建工程命令行下输入firefly-admin.py createproject chat_rooms(linux在终端输入),<ignore_js_op> firefly会在C盘Us ...
- iNode协议再次分析
iNode协议再次分析 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系作者bitpeach删除相应部分 ...
- Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节
声明: 本博客文章翻译类别的均为个人翻译,版权全部.出处: http://blog.csdn.net/ml3947,个人博客:http://www.wjfxgame.com. 译者说明:这是一个系 ...
- Hadoop-2.4.1学习之怎样确定Mapper数量
MapReduce框架的优势是能够在集群中并行运行mapper和reducer任务,那怎样确定mapper和reducer的数量呢,或者说怎样以编程的方式控制作业启动的mapper和reducer数量 ...
- user-defined conversion
http://en.cppreference.com/w/cpp/language/cast_operator