应用程序开发的入门故事

“嘿! 您是否想知道以经验有限的人的身份制作应用程序是什么感觉? 好吧,这个问题很夸张,因为您单击的文章非常抽象。”

为了给本文提供背景信息,我和我的搭档正在为软件产品开发课程制作一个应用程序,目的是学习协作的最佳实践。 我的合伙人在后端工作时,我负责应用程序的移动/客户端。 我们俩都是编程/软件开发的新手,时间表也大相径庭。

规划过程

尽管不仅开发软件而且进行协作工作对我来说都是新的,但我知道计划和研究必要的材料,适当地确定项目范围并为基于开发过程的清晰路线图至关重要。在我们的技能水平上。 遵循这些粗略的准则,我和我的合伙人可以平等地委派任务,以提高开发过程中的个人效率。

在第一周,我们计划在整个学期中定期召开每周会议,并决定在项目的计划过程中花费两个星期。 我们决定花两个星期的时间来计划自己,以便有足够的时间在其他课程上取得领先。

我们在计划过程中能够完成的工作:

  • 为我们域内的应用程序集思广益。
  • 确定了MVP(最小可行产品)及其之后的版本/扩展目标。
  • 在Trello板上列出必要的任务和准则。
  • 确定对应用程序的必要研究。
  • 将任务适当地委派给每个人。
  • 制定线框和项目时间表。

头脑风暴时的白板(上图)。

在我们的集思广益会议期间,我们决定做出一些能够解决旅游/探索问题的事情。 更具体地说,我们想开发一款能够激励和激励人们去探索自己的地区并在旅行过程中轻松地导航新的陌生地区的应用程序。

我们的解决方案

我们的解决方案是创建一个可用作个人导游的应用程序,奖励用户步行即可到达景点。 我们的主要目标是对探索进行游戏化,以鼓励人们更多地走出去,并帮助不喜欢旅行的旅行者。 在讨论这些目标时,我的一位同学同意这一观点,说:

“制定行程会浪费一半的乐趣。”

我们决定采用此想法的另一个原因是,我们希望在可能会很有趣的同时又提供足够的空间使其复杂并具有更多功能,从而使之有趣。

详细的应用程序

该应用程序将使用自定义api向用户显示要探索的各种位置,这些位置均在用户位置的步行距离内。 一旦用户选择了感兴趣的位置,该应用程序便会将用户重定向到Apple地图。 我们的主要激励机制是与用户互动的吉祥物/伴侣,并向用户奖励各种化妆品,以指示他们探索了多少地方。 这个应用程序的主要目的是游戏化探索,以鼓励任何人走出家门,并在自己的家乡或旅行时探索他们所在的地区。

我们对该应用程序的灵感来自一位同学向我们提出的类似想法。 他们正在制作一个应用程序,该应用程序将允许用户沿用当地人创建的路线,以探索和发现不同的区域(类似于地理缓存)。

另一个灵感来源是《神奇宝贝GO!》,这是因为它们使用了游戏化的现实世界探索以及其中包括的他妈哥池方面。 经过广泛的计划,下一步就是开始开发。

冲刺计划和回顾:

在开始编写第一行代码之前,我们需要计划冲刺。

“冲刺计划”是在短期会议上进行的,小组在此期间确定在特定时间段内要完成的任务,确定特定任务的优先级并设定小组目标。 在小组中,我们将冲刺设置为两个星期,并为我们每个人委派了一些任务,从而使我们有足够的灵活性来完成其他课程的工作。

冲刺结束后,我们还计划召开回顾性会议,以回顾迄今为止的进展和工作质量。 我们在这次会议上提出的问题包括:1)进展顺利吗? 2)什么进展不顺利? 3)我们是否需要重新安排积压的优先级? 和4)在下一个Sprint中我们可以做哪些小的改进?

在这段时间里,由于社区事件和/或无法控制或意外的情况,我们通常转移并重新安排任务的优先级。

糟糕,存在一些问题:

即使经过了广泛的计划,也可能总是存在一些无法控制的因素,使工作陷入僵局。 我们在执行此项目时遇到的一些问题是:

  • 疾病
  • 无法互相追究责任
  • 拖延
  • 无法有效地概念化
  • 缺乏沟通

由于这些问题大多数与组织和团队合作有关,因此在感恩节期间,我们召开了一次长期回顾会议,在会议上我们分析了自己的优缺点,并制定了一项计划来帮助我们克服挑战。 我们的新计划之一是在星期二和星期四上午参加一场小型会议,在那里我们将进行检查并确定彼此的进度。 另一个计划是将小的,通常是美观的UI任务(选择配色方案和创建应用程序图标)委派给我的伴侣,以便我可以花更多的时间将程序与我的教练配对,以便更快地了解陌生的移动概念。

通过加倍并相应地调整时间表,我们能够完成带有硬编码数据的基本原型并进行用户测试。

用户测试我们的原型

您可能会问,为什么我要这样做? 嗯,当今的应用程序已经经历了多个版本和设计更改,以便更有效地迎合其用户。 在完成应用程序之前,重要的是要包括用户测试过程,因为它会为您提供更多反馈并确定是否必须进行次要/重大更改以提高用户的生活质量。 除了所有这些好处之外,此过程还使我们能够更好地了解用户,进一步阐明我们对将来可能实现的功能的想法,并帮助我们重新确定任务的优先级。

在进行用户测试时,重要的是首先为用户做序。 请他/她大声说出他们的想法,并解释说此过程可以帮助您(作为开发人员)获得尽可能多的反馈。 当用户浏览应用程序时,重要的是在用户被卡住时对其进行引导。

我们的一个用户测试会话如何进行的示例

我学到了什么:

忙于这个学期的工作量很容易引起压力,但是我们设法在大多数期限内完成了MVP。 有许多深夜的编码会议,虽然这可能对我的身心健康不利,但与另一个人创造愚蠢的东西却很有趣。

下一个是什么?

我们计划将来进行此项目,并随着我们的技术水平的提高而对其进行改进。 期望它具有更多功能(AR集成?)的App Store(也许)比这里显示的功能更多。

我们的产品宣传