考虑用户需求及痛点

  • 老年人由于特殊的生理特点,需要考虑其阅读的痛点,加入例如文字大小自定义,朗读新闻,放大镜功能。同时在软件设计上减少文字的量,多放入一些多媒体的内容。
  • 老年人会对过去发生的一些事情产生怀旧的心态, 因此提供一些旧闻的阅读会给他们带来特殊的美好体验。
  • 老年人也有交友需求,在这样一款专门针对老年人的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. [Algorithm] Find Max Items and Max Height of a Completely Balanced Binary Tree

    A balanced binary tree is something that is used very commonly in analysis of computer science algor ...

  2. .Net Framework 之 框架图

    .Net Framework框架图,如下图:  它表明了这么一种编写软件的方式或者说表明了.Net平台下开发软件的思想和规范. .Net Framework框架实际只包含两部分: 1.公共语言运行时( ...

  3. github 管理图示

  4. PyPy与VirtualEnv的安装问题

    PyPy与VirtualEnv的安装问题 说明:本博客由bitpeach原创撰写,请勿商用.转载免费,请注明出处,谢谢. (零)背景 VirtualEnv工具的详细内容是什么,请自行百度.这里大概简介 ...

  5. RSA/DSA 密钥的工作原理

    下面从整体上粗略的介绍了 RSA/DSA 密钥的工作原理.让我们从一种假想的情形开始,假定我们想用 RSA 认证允许一台本地的 Linux 工作站(称作 localbox)打开 remotebox 上 ...

  6. 基于redis的简易分布式爬虫框架

    代码地址如下:http://www.demodashi.com/demo/13338.html 开发环境 Python 3.6 Requests Redis 3.2.100 Pycharm(非必需,但 ...

  7. lucene示例

    搭建环境 搭建Lucene的开发环境只需要加入Lucene的Jar包,要加入的jar包至少要有: lucene-core-3.0.1.jar(核心包) contrib\analyzers\common ...

  8. gitlab8.0 一键安装 经过自己测试 发送邮件部分最难搞 国内没有说明白的

    邮件发送部分,弄了一天终于弄好啦,FQ过去查的资料,奶奶的无语 Gitlab搭建步骤 一:操作系统环境 CentOS: 6.5 –x86-64 二:安装方式 一种是自定义安装,一种是一键安装 三:自定 ...

  9. 跨浏览器的CORS

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

  10. 自实现部分string类的功能

    #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; class MyString { publi ...