Advertisement
  1. Code
  2. Yii
Code

Building Your Startup: Issue Tracking and Feature Planning

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called Building Your Startup With PHP.
Building Your Startup: Improving the Mobile Web
Building Your Startup: Ajax for Meeting Times and Places
Final product image
What You'll Be Creating

This tutorial is part of the Building Your Startup With PHP series on Envato Tuts+. In this series, I'm guiding you through launching a startup from concept to reality using my Meeting Planner app as a real-life example. Every step along the way, I'm releasing the Meeting Planner code as open-source examples you can learn from. I'm also addressing startup-related business issues as they arise.

Learning to Manage Project Issues

Even for a one-person startup, it helps to have more than a spreadsheet (or paper) to track issues, ideas, and bugs. 

A few years ago, I'd used Lighthouse for my grant-funded NewsCloud Community Starter Project. Last year, I'd been introduced to Asana during a consulting gig. The pronunciation of the name drove me a bit nuts at first—as a yogi, I regularly pronounce the word āsana or asa·na, which typically represents a flow of yoga poses. The Asana folks pronounce it a·sauna. 

Meeting Planner Asana - Intro screen at Asana

Eventually, I found my way and discovered the tool works well whether you're working with a variety of people or just solo.

In today's episode, I'll walk you through how I began using Asana for Meeting Planner. I use Asana not only to track issues but to organize them and plan for the future. I also use it to track and process bugs.

I'll also cover how I used Asana to plan for the upcoming alpha milestone for Meeting Planner and its beta and release milestones.

I appreciate that Asana is ready for growth; as Meeting Planner adds contractors and full-time people, it will be easy to integrate them into my organizing efforts.

In the meantime, if you haven't tried out Meeting Planner yet, go ahead and schedule your first meeting. If you run into anything I should be tracking in Asana, begin by posting it to our Freshdesk site which I wrote about earlier in Collecting and Managing User Reports and Feedback. If it's a bug or feature that's needed, I'll migrate it to Asana.

I also participate in the comment threads below, so please share your experience! You can also reach me on Twitter @reifman. I'm always interested in new feature requests and suggested tutorial topics.

As a reminder, all of the code for Meeting Planner is written in the Yii2 Framework for PHP. If you'd like to learn more about Yii2, check out our parallel series Programming With Yii2.

Getting Started With Asana

The video below highlights the mission for Asana — put simply, it's an issue tracking, management, and communication tool primarily for teams:

I'll walk you through how I'm using Asana, but there are a variety of ways to configure it to organize your work and your team's work—its flexibility is one of the things that makes Asana powerful.

On my consulting work last year, one of the first things I did was step in and completely reorganize and simplify the company's use of Asana and its projects, tasks, and work items. This helped everyone in the team make better use of the tool and move forward with the critical work ahead.

Sign Up for Asana

To get started with Asana, just visit the home page and register via Google or traditional email. I chose Google:

Meeting Planner Asana - Sign Up for Asana

Sign in with your Google account to complete your registration:

Meeting Planner Asana - Google Sign In

Setting Up Your Project

Create Your Workspace

Asana allows multiple workspaces, but I began with just one for Meeting Planner:

Meeting Planner Asana - Create Your Workspace

Workspaces allow for multiple sub-projects, so the workspace is essentially a container for all things Meeting Planner. You can create another workspace for your other major efforts, such as your moonlighting startup or house remodel.

Creating Projects Within Your Workspace

Here's what Asana will look like with your empty workspace. You can create a number of projects within each workspace. Notice the Get started with a project hint at bottom left:

Meeting Planner Asana - Creating a Project

For Meeting Planner, I created an initial project for Release 1.0 and a separate project for bug tracking, which I'll address further below.

Here's the New Project form:

Meeting Planner Asana - New Project Form

Within the Release 1.0 project, I created tags for alpha and beta release to easily organize and migrate issues from one stage to another. You can't add tags until you have tasks.

Adding Tasks

To add a task, just click on the plus sign icon and then Task:

Meeting Planner Asana - Add Task Menu

Here's the New Task form:

Meeting Planner Asana - New Task Form

Tagging Tasks

Once you've created tasks, you can tag them. For my organization system, I used tags to designate incremental releases: alpha and beta. You can also use tags to organize topic areas.

Meeting Planner Asana - Adding Tags to Tasks

Navigation With Projects and Tags

Once you've created projects and tags, you can drag shortcuts to the Asana sidebar view. Below, you can see that I can easily navigate between the alpha release view, the beta view, the final release, and bugs:

Meeting Planner Asana - Left Sidebar Navigation View

Here's what the beta project view looks like; it mostly consists of tickets for Planned Features, a section I've created for the project. I'll review sections below.

Meeting Planner Asana - Beta Release View of Planned Features

Using Asana to Track Bugs

For tracking bugs in Asana, I created a separate project and set up sections for the priorities of the bugs: P0, P1, P3, P5, and Requested Testing. 

To add a section, you have to hover the mouse over the Add Task button to make Add Section appear:

Meeting Planner Asana - Hover to display the add section button

I created sections for each bug priority level. P0 is for critical bugs:

Meeting Planner Asana - The empty P0 Section

Adding a Bug

To add bugs, you just add tasks to the Bugs Project (shown as Quality Assurance below, a term I later abandoned):

Meeting Planner Asana - Adding a ticket for a bug

I also tag the bug for which release it needs to be fixed for. The above bug is tagged for alpha.

Looking Ahead to the Alpha Release

Once all the organizing work above is done, I can now get a clear view of both features and defects that need to be addressed to complete the alpha release milestone.

Here's the view of the alpha release, the bugs that need to be fixed and the remaining tasks:

Meeting Planner Asana - The current Asana view of the Alpha Release

What's Next?

With Asana, I've found this system of organizing greatly helps me stay focused and progress more quickly with Meeting Planner.

As I mentioned at the beginning of this tutorial, there are many ways to configure Asana for your team's communication, issue tracking, and processes. Don't assume that the way I've demonstrated here is the only way to use Asana. It's an extremely flexible tool.

Going forward, I'm working feverishly to prepare Meeting Planner for alpha release. Asana has made this easier.

I'm also beginning to focus more on the upcoming investment gathering effort with Meeting Planner. I'm just beginning to experiment with WeFunder based on the implementation of the SEC's new crowdfunding rules. Please consider following our profile. I will also write more about this in a future tutorial.

Again, while you're waiting for more episodes, schedule your first meeting (from your phone!). Also, I'd appreciate it if you share your experience below in the comments and I'm always interested in your suggestions. You can also reach me on Twitter @reifman directly. You can also post them at the Meeting Planner support site.

Watch for upcoming tutorials in the Building Your Startup With PHP series.

Related Links

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.