考虑用户需求及痛点

  • 老年人由于特殊的生理特点,需要考虑其阅读的痛点,加入例如文字大小自定义,朗读新闻,放大镜功能。同时在软件设计上减少文字的量,多放入一些多媒体的内容。
  • 老年人会对过去发生的一些事情产生怀旧的心态, 因此提供一些旧闻的阅读会给他们带来特殊的美好体验。
  • 老年人也有交友需求,在这样一款专门针对老年人的App中嵌入社交化的功能,会给老年人带来较好的交友体验。
  • 老年人往往更加关注本地新闻,因此在展示内容时候有所侧重会提升用户体验。

Feature设计

  1. 基本新闻功能
  2. 新闻朗读功能
  3. 文字大小自定义和放大镜功能
  4. 特殊频道:本地频道、旧闻频道,听新闻频道
  5. 用户中心
  6. 社交化功能(交友,聊天,分享等)

项目实施阶段

首先是搞清楚资源,在于面试官的沟通中得知该项目有三个开发人员,时间是三个月。

接下来我们应该确定feature的优先级,在这里我们应该用敏捷开发的思想,先做最需要完成的并且要确定产品基本需求的核心功能,在这个项目中基本的新闻功能以及针对老年人的一些辅助工具是核心的功能,因此我们应该先完成,具体的优先级如下(数字越小优先级越大):

  1. 基本新闻功能 (P0)
  2. 新闻朗读功能 (P0)
  3. 用户中心 (P0)
  4. 文字大小自定义和放大镜功能 (P0)
  5. 特殊频道:本地频道、旧闻频道,听新闻频道 (P1)
  6. 社交化功能(交友,聊天,分享等) (P2)

确立了初期的目标之后(完成P0的任务),我们要将每一个小目标分解成若干个work item,确定各个item之间的顺序以及相互之间的依赖关系,以此来确定分工以及时间表安排,同时为项目设立几个milestone节点,另外别忘了考虑可能会遇到的risk,包括人员、资源、进度等,为这些risk提出初步的解决方式以及预留出可缓冲的时间。

项目发布

经过了一段时间的开发工作后,项目满足设定目标,可以上线了,在上线之后我们需要继续跟踪和衡量三件事情:

  1. 我们的App是否Work,这部分需要考虑所有功能是不是如预期运行正常,包括各种移动终端的适配,各种使用环境下的运行状况,各种按钮和导航是不是能让用户轻松使用等。可以定义一些metrics来衡量,例如统计用户浏览时间确定用户是否迷失,统计用户等待时间用来确定有没有死链,通过监控用户第一次使用情况来确定是否能正确安装。
  2. 我们的App是否受欢迎。这部分可以通过考察用户每天的使用时长以及使用频度来确定App是否成为用户的日常使用项,另外可以监控在SNS中分享和传播的情况来看软件的传阅度。
  3. 我们的App有何改进之处。目的是为了发现用户新的需求,不断满足需求使得软件有所提高。我们可以通过感性和理性的方式来进行该项工作,理性的调查如统计用户在哪一类新闻上的点击率和停留时间较长或者统计在用户分享的数据里那些话题具有很高的传阅度等来给新的需求做出建议;感性方面我们可以和重度用户聊天,查看用户发送过来的Feedback以及发放调查问卷的方式来收集用户的使用感受和对新功能的建议。
 本文用菊子曰发布

【PM面试题】请设计一个老年人用的新闻App的更多相关文章

  1. 【PM面试题】设计一个股价推送工具

    这一轮面试时间比较短,问题在短时间内不能很全面展开,因此抓住一些关键点变得尤其重要,这里我记录下当时是怎么想这个问题的. 问题解析 子问题1:推送什么?从问题中看出我们需要推送的是股价,用户可以自定义 ...

  2. 请设计 一个密码生成器,要求随机生成4组10位密码(C语言)

    请设计 一个密码生成器,要求随机生成4组10位密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码. #include<stdio.h> #i ...

  3. 笔试题&amp;面试题:设计一个复杂度为n的算法找到单向链表倒数第m个元素

    设计一个复杂度为n的算法找到单向链表倒数第m个元素.最后一个元素假定是倒数第0个. 提示:双指针查找 相对于双向链表来说,单向链表仅仅能从头到尾依次訪问链表的各个节点,所以假设要找链表的倒数第m个元素 ...

  4. Jsoup抓取网页数据完成一个简易的Android新闻APP

    前言:作为一个篮球迷,每天必刷NBA新闻.用了那么多新闻APP,就想自己能不能也做个简易的新闻APP.于是便使用Jsoup抓取了虎扑NBA新闻的数据,完成了一个简易的新闻APP.虽然没什么技术含量,但 ...

  5. java算法面试题:设计一个快速排序。双路快速排序,简单易于理解。

    package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Compar ...

  6. 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。

    // 第一种方法 // ConsoleApplication10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include < ...

  7. 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bccced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中

    // test20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  8. 对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。 给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。

    /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x ...

  9. python学习:设计一个算法将缺失的数字找出来。

    算法题   已知整型数值 a[99], 包含的所有99个元素都是从1-100中随机取值,并且这99个数两两互不相等,也就是说从1到100这100个数字有99个在数值内,有一个缺失.请设计一个算法将缺失 ...

随机推荐

  1. Android系统常用的权限

    开机自动允许  android.permission.RECEIVE_BOOT_COMPLETED,允许程序开机自动运行. 电量统计  android.permission.BATTERY_STATS ...

  2. Android 如何添加一个新的时区

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  3. 关于Object.defineProperty的get和set

    面试经常提问vue双向数据绑定的原理,其主要是依赖于Object.definePropety(); Object.definePropety下面有get和set方法. get指读取属性时调用的放法,s ...

  4. windows下检測软件的网络连接

    首先打开任务管理器选中你要查看的应用.右键转到进程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFwZW5nMDExMg==/font/5a6L5L2 ...

  5. remove &#39;^M&#39; in shell script

    近期在windows上编辑一些shell脚本后上传到交换机框体上. 但这些shell脚本无法运行,每一行结尾都有'^M',同一时候框体上又没有dos2unix工具. 这么多脚本也不可能一行一行来改动. ...

  6. linux下的QQ执行玩法:pidgin-lwqq

    安装pidgin: sudo apt-get install pidgin 安装pidgin-lwqq: sudo add-apt-repository ppa:lainme/pidgin-lwqq ...

  7. case when then 中的条件里面加上 and or 的处理方式

    错误的方式: end 正确1: end 正确2,去掉括号: end

  8. 跨浏览器的CORS

    function createCORSRequest(method, url){ var xhr = new XMLHttpRequest(); if("withCredentials&qu ...

  9. C++的泛型编程方式

    1.使用类模板创建数组 下面这段代码:是创建一个元素为 T 类型的数组. #pragma once template<class T> class MyArray { public: // ...

  10. FreeSWITCH小结:关于export的原理介绍及应用

    FreeSWITCH小结:关于export的原理介绍及应用 Export原理 普通export用法 在dialplan中经常会用到export,如下所示: <action application ...