Showing posts with label tools. Show all posts
Showing posts with label tools. Show all posts

Wednesday, May 1, 2013

A Guide to Effectively Managing Your Solo Software Project



This article will help you create some very basic systems for managing your solo software project. It won’t help you decide what projects are good ideas, or successfully market your software, but following its advice will make you more likely to get to a finished product, instead of giving up in despair.
 

Who will find this helpful?


  • a hobbyist or pro using their spare time to build something they want
  • an entrepreneur building a minimum viable product for a business idea
  • a freelancer building a web or mobile app for a client
  • anyone who wants to learn by doing

I’m sure many people are already on board with the need for some systems to help guide the creation of their software, but I can literally hear some of your bloodshot underslept eye-balls rolling in their sockets and saying “processes and project management systems are for the office, this is just overhead that gets in the way of getting stuff done".

I beg to differ.

Why you need a system


Even a simple project has multiple moving parts. It may be that you’re capable of keeping track of them all, but that requires effort and costs you brain power, your most precious resource for software development. The reason for this is known as the Zeigarnik Effect:

The Zeigarnik Effect is the tendency to experience intrusive thoughts about an objective that was once pursued and left incomplete (Baumeister & Bushman, 2008, pg. 122). The automatic system signals the conscious mind, which may be focused on new goals, that a previous activity was left incomplete. It seems to be human nature to finish what we start and, if it is not finished, we experience dissonance.

The take home is, unfinished tasks will trouble your worried mind.  Storing your tasks somewhere trusted and finishing them as fast (or faster) than you start them, will free your mind for coding.  A simple system will serve this purpose, while introducing minimal extra effort.

1. Getting Started


It may seem obvious to you what your project is; but until you’ve written it down, and explained it to a few people, you can’t be sure that it’s well defined. Figuring out why you’re doing this project and what your goals are doesn’t take long, and will pay dividends down the road.

Create a one-page project charter to outline the scope, objectives and people involved with your project.  Your charter should answer the following questions:

What are your goals?

Get high level, ask yourself WHY you’re doing this, and what success looks like. If it’s a freelance project, establish this with your client.  If it’s a side project, by straight up about it. Are you developing a minimum viable product to test a business idea or is it just something you think would be cool to see or make your life easier.

Who are the stakeholders?

Whose input is important to guide your project to success? Maybe it’s just you, maybe it’s potential customers or a client.  How will you communicate with these people? How much influence will they have?

What will the product enable you to do?

This is akin to an epic user story for your product. Don’t talk about how the product will do what you want,  focus on what you want.

A basic user story format is:  "As a <role>, I want <goal/desire> so that <benefit>". This keeps the focus on solving the problem and avoiding tunnel vision around specific features for solving the problem.  For example the epic user story for your product might be “As a bowler, I want to know how what I eat for breakfast correlates with my bowling score, so that I can always eat the right pre-bowling breakfast”

How much time are you willing to spend on this?

Particularly if this is a side project, it will almost inevitably take longer than you think. At the outset, we tend to see the work breakdown at very low resolution. Once you’re face to face with a particular task, you see the fine details and nuances much more closely. In one of the most popular quora answers ever, Michael Wolfe deals with the reasons for this very astutely.

When it’s no longer fun and exciting, will you keep plugging away, or will you accept the sunk costs and move on? Decide beforehand how far down the rabbit hole you’re willing to go.

2. Doing it and Managing it

Planning

Since you’ve already created a scope now you just have to break it down into manageable tasks, ideally things which aren’t much more than what you can do in a given evening or two worth of project time.  Keeping your tasks small will help you to see your progress and feel great when you check something off.   

Tasks that are further down the road, will inevitably be more ambiguous; no problem, as they come closer to being executed on, you can split them up further.

Write each of these tasks on a sticky note, we’re going to use them to fill up your personal kanban board.

Tools


The Kanban Board


Find a visible place in your workspace and put up a whiteboard. Keep your kanban board really simple with three columns: Backlog, Doing and Done.

There are two simple rules for using personal kanban:

  1. Keep your work somewhere easy to see
  2. Limit your work in progress. Typically no more than 5 tasks at a time in the “Doing” column.   

Both of these rules would make Zeigarnik happy; they ease the burden of how much you have to store in your limited grey matter and put it somewhere you can trust you’ll see it.

Even when there is extra space in your “Doing” column, have a bias towards finishing a task over starting a new one.  Only introduce new tasks into “Doing”, if everything else is stalled, and there’s absolutely nothing you can do to move it forward.  

If you’re waiting on a domain transfer, go ahead and start working on wireframing. Don’t create a separate column for stalled or waiting items, even if you’re not working on it right now, it’s occupying precious brain cycles.

Time Tracking

No one likes tracking their time, and most time tracking software makes the process even less fun, but if you keep it simple, it can help to give you very valuable data and improve your sense of how long a task really can take.

Use your personal kanban to track when you moved a task into “Doing”, when you moved it into “Done”, and how many hours you spent on it.  You can do this just by writing it on your stickies like so:


Setting up these tools adds minimal extra time to the initiation of the project, and will pay huge benefits by releasing your mind from having to track all these items and allow you to focus on the execution.

Wireframing


I do believe that wireframing and mapping out the workflow of your product are very much worth your time. We use Moqups, which is really user friendly and takes no time to figure out.

Version Control


Even though it’s just you, using version control will help you to undo your mistakes and create an easily trackable history of your progress.

Git Immersion is a great tutorial for setting up a git system. If you want a cloud based repository, with pretty graphics illustrating your branches and merges, Bitbucket’s free plan should be totally adequate for you.

Execution


Here’s the fun part, I hope that creating the charter and setting up your tools only got you more excited about the awesome code you’re going to write.  

This is your project, it’s not my place to tell you which languages, frameworks and other technologies to use, you know what works for you. Unless this is a project intended to help you learn some new technologies and frameworks, you probably just want to get going with the least amount of new learning required.

Scope creep is the great enemy of getting things done. If your imagination, your client or other stakeholders are introducing new and wonderful features to distract you, nip that in the bud.  This is why you created your project charter. Keep it beside your Kanban board, where you can see it and remember what you’d first set out to do. If the project drifts from the charter, make sure there’s good reason for it.

Keep moving, do what you can to make some progress every day to stay motivated.  

3. Releasing 1.0 and/or Closing


Maybe you release your 1.0 and this project blow up into a huge success and becomes your life’s work.  Or perhaps you’ve met the goals of your original charter, but you see potential to go further.

On the other hand, maybe you’re completely done with this piece of software;  it’s served its purpose of satisfying a client, or teaching you what you set out to learn, or is now serving you as a handy little tool.

Either way, upon completing the first version of your project, it’s worth doing some work to close it out.  The scale of this effort really depends on the project.

At a minimum, you should archive your post it notes somewhere safe.  When starting your next project, they’ll be useful for remembering what tasks and time commitments were required last time.

Now sit down, have a beer, and contemplate how awesome your shiny software is.


From D.A.K Photography




References and inspiration:





-

Friday, April 12, 2013

The Truth about PMRobot


I was just in San Francisco on a business development and learning mission for PMRobot. It’s amazing how deeply integrated the culture of entrepreneurship is there. People ask a lot of good but tough questions. Of course, answering tough questions is the best way to get better at explaining our company, and how we can help software and design consulting companies to manage their projects better.

This has me thinking about the general business culture of exaggerating their strengths and covering up their blemishes.

Marketers Lie

You may not even think about it, but you've probably learned to approach most marketing with skepticism.

I’ve always been a terrible liar, of course it’s not something I’ve ever aspired to be. It feels though, that in business, and marketing especially, it's standard operating procedure to exaggerate in order to look bigger than you are. I recently watched an excellent talk by Jason Cohen from the Business of Software conference in 2011. He talks about the importance and value of being honest about your product's strengths and weaknesses. I’m putting this into practice by being brutally honest about our product in conversation with people I meet.   I want to take it a step further by putting it online.

The Benefits of Honesty

People are accustomed to falsehoods and half truths in marketing materials. 

They've developed an automatic filter:

Say you’re the market leader in something? “Yeah, right!”
Fill your site with nothing but unabashedly positive testimonials? “As if!”
Act like you’re a huge company (when you’re not)... people will see through your act.

I could make a high-minded, moralistic argument for honesty in this article, but I believe there’s also a sound business case for honesty.

My experience is that people find honesty refreshing, even disarming. By being upfront about your shortcomings, you give them a reason to trust your claims about your strengths. 

Honesty, also makes you more human and relatable. It makes you the kind of people others want to see succeed. It opens you up for receiving honest feedback, which is essentially to any lean startup.

So let’s be honest about PMRobot. I'll tell you who we are and our story.  By laying it all out on the table, you’ll know what you can expect if you choose to do business with us as a customer.

How was PMRobot Started?

PMRobot was started by Jason Hanley. He’s been running Syllogistic Software for a decade, and during that time, he’s managed his business from several distant corners of the globe. For the past 5 years, he’s been building a tool to help him manage his projects, employees and clients. This tool eventually became PMRobot, a tool to help consultants manage all the aspects of their projects.

Who is PMRobot?

The PMRobot team is still quite small, the development efforts on PMRobot are provided by Jason and his team of programmers at Syllogistic Software. I handle the marketing, blogging and engage with users to find out how we can make the product better for them. We’ve recently brought on Michele Macklin to help us improve our interface and user experience design.

We're passionate about agile and lean project management and productivity.  We believe we can help digital consultants adopt agile project management more effectively.

I’m thankful to be working with such talented individuals on a product that I believe in.

OK, What is PMRobot?

PMRobot is project management for software consultants. It was built by software consultants, and it works best for them and similar companies like internet marketers, app development consultants and digital product companies.

The product is very feature rich. In fact, PMRobot has so many features that it can be overwhelming to new users. However if they take the time to learn how to use the product, they’ll often find that it meets their needs really well.

Our product solves some problems better than others. One of its strengths is bringing together multiple tools into one system, such as workflow management, time tracking and client communication.

Some areas that we see opportunities to address real needs for our customers are in helping with human resource allocation across different projects and understanding the costs and profitability of different projects. Feedback from our users is hugely valuable to us, and it’s what informs our decisions about design and new features.

Why would you want to use a new and unknown app in your business?

Maybe you shouldn’t, it depends what you’re looking for.

We might be a good fit for you if you’re a software consultancy or digital agency, looking for something built to address the particular challenges of including clients in running your projects. You’d be an early adopter and you’ll get to experience working with a product that is evolving, both aesthetically and functionally. T

The benefit of this is that you’d be part of a community of companies using PMRobot and helping us to build a tool for a very specific group. If there’s something specific you’re looking for in a software tool, talk to us, and we’ll consider building it for you.

If you just want something really simple to use out of the box, and are OK with it not being so feature rich, we’re probably not the right product for you.

If you want to be a small customer for a big company, with dedicated 24/7 customer support, PMRobot isn’t the right product for you. But if you want to have a real relationship, and the ability to speak directly with the people building your project management tool, then you’ll appreciate working with us.

If you’re worried that we’re a new startup, and might not be around a year from now, don’t. Syllogistic Software has been around for 10+ years, we’re in this for the long haul.

Still not sure if PMRobot is right for you? Leave a comment and I’ll be in touch with you to discuss, or try us out. -

Monday, June 18, 2012

How to: Manage Remote Projects


Managing a remote project is hard work!

Before starting Syllogistic Software, I worked for a large software corporation, and managed several remote teams. It was always a challenge to:
  1. Stay on top of remote workers' task status
  2. Communicate questions and answers
  3. Help the remote workers keep up with everything else happening in the project
So what tools did I employ to help the situation?
  1. Email
  2. Conference calls
  3. Microsoft Project
When I started my own software consulting company, I tried using these same tools, but found a few problems:

Problem 1: People don't answer email

Even back then, people were buried in email. They choose the easiest ones to answer and ignored the rest.

If you asked them a complicated question about the next steps of a project, it sat in their inbox for days, gradually pushed down the list by other incoming emails.

Problem 2: People forget what is said in meetings

To solve problem 1, I would often call or schedule a meeting. During the meeting, we would go over the questions, determine action items, and record them in meeting minutes.

Unfortunately, some of these actions items would sometimes still fall through the cracks, and not make it to a remote worker's todo list.

Problem 3: Microsoft Project only works for initial high-level planning

MS Project is a great tool for coming up with a "grand" plan before starting a project. But the pretty Gantt chart you create is only valid for a day or two before -- you guessed it -- something changes.

Then you have to go back and re-adjust everything, and your beautiful chart starts looking messy. A week later, there are 5 new scope items, and you're already well behind the planned schedule. Your project plan has essentially fallen to pieces, because you've been so busy putting out fires that you haven't had time to keep it current.

So how do we solve these problems?

After many years of iterating through various fixes, I came up with several techniques that worked:

Solution 1: Clarification questions

The very first version of PMRobot came with a feature called "Ask a clarification question." This remains one of the most important innovations.

When you ask someone a question, it tracks its status, and helps remind the person who has been asked the question. This way, they don't delay the entire project by forgetting to answer.

Solution 2: Track work items in one place

Instead of requiring people to keep track of everything they need to do on their own, create a central work repository that's easy to keep up-to-date.

PMRobot provides a dashboard for workers that shows them exactly what needs to be done, in the exact order they need to do it. After a quick glance, they know their next step.

In addition, if they ask a question about a particular feature, the answer isn't lost in some document called "Week 5 Meeting Minutes." The answer to their question is in the exact same place as all of the other work details.

Solution 3: Use a dynamic project management tool

Microsoft Project is great for static, high-level, upfront planning. If you need a rough overview of the "grand plan," it can help.

Once the project starts, however, you need a dynamic tool that makes it easy to add and update new information.

A major part of project management is change management. Clients change their minds, technology fails, people get sick, and generally -- things change.

Your project management tool needs to be built with change in mind.

PMRobot is built with change management at its core. Every feature helps you control the chaos, and manage each change one by one, getting you closer to meeting your project goals.

Summary

As you can see, many of the features built into PMRobot have been designed to solve very specific problems -- problems that are very common to software consulting.

If you're struggling to keep up with emails and conference calls, consider trying a new approach, and see how these techniques can help tame your chaotic project.


About the author: Jason Hanley loves bringing order to chaos. He travels around the world, manages a team of remote developers, and is constantly iterating and improving PMRobot.com.
-

Monday, February 20, 2012

New Video: PMRobot tour

We've updated our product tour video at https://pmrobot.com/tour

The new tour features a fictitious software consulting company working for "Fun Pet Games Inc." to create the new hit app "Angry Hamsters".

We show you how quick and easy it is to:
  • Create and assign tickets
  • Ask and answer clarification questions
  • Log and track time and use automatic timers

Check it out at http://youtu.be/4Oy4-P9ZRF8 or below:

Sunday, February 12, 2012

The history of issue tracking systems

Web-based issue tracking systems (often referred to as "bug tracking" systems) have been around for a long time. Let's take a trip down memory lane and review issue tracking software to date.

1998 - Bugzilla

Bugzilla is arguably the great-grandfather of all web-based bug tracking systems. Written in Perl in 1998, and still in active use today, it defined a lot of conventions used by the systems that followed.

A bug in the basic Bugzilla workflow can be in one of the following states:
  1. Unconfirmed
  2. New
  3. Assigned
  4. Resolved
  5. Reopened
  6. Verified
  7. Closed
Bugs can transition between these states in a number of standard ways. For example, when a developer completes work on a bug, it moves from Assigned to Resolved. A quality assurance (QA) person then tests and can put the bug into the Verified state if the developer's fix is confirmed.

This workflow has remained largely unchanged over the years.

In addition to bugs, Bugzilla allows "tickets" to track and prioritize feature requests in the same database.

2000 - Mantis Bug Tracker

Started in 2000, but not reaching version 1.0 until 2006, Mantis Bug Tracker (or "MantisBT") is a popular open source bug tracker written in PHP.

It introduced a much nicer user interface than Bugzilla, and offered more customization, including customization of the bug workflow and state transitions.

Although primarily meant for open source projects, Mantis is a very capable system. We used it for several years at Syllogistic Software prior to development of PMRobot.

2003 - JIRA

JIRA, a commercial product launched in 2003 and built in Java, represented another step forward for issue tracking systems, adding additional customization options, and a powerful plugin architecture.

In addition to issue tracking, Atlassian offers a number of products that integrate with JIRA to help with project management, documentation, and source control integration.

The JIRA platform tends to work best for large enterprise software projects.

2006 - Trac and Redmine

In 2006, two similar projects were born: Trac and Redmine. Both are open-source project management and issue tracking systems. Both offer web-based ticketing system similar to Mantis, along with support for milestones, Wiki-style documentation, and source integration.

Trac is written in Python (a language favored by Google), whereas Redmine was developed on the recently popular Ruby on Rails framework.

Both systems have a multitude of functionality, but their user interfaces can be confusing for beginners or non-technical users. They are targeted towards open source projects, or other highly technical teams.

2008 - Pivotal Tracker

Although it focuses more on agile feature tracking than issue tracking, Pivotal Tracker introduced a number of innovative user interface enhancements.

Its extensive use of multi-column drag and drop allows quick reordering of "stories" (similar to tickets). The UI also allows for one-click transitions between states with buttons such as "Finish", "Accept" and "Reject" easily accessible on the main story list.

Using Pivotal requires a through understanding of the Agile Methodology, and is best suited for organizations that have fully adopted it. The software uses many Agile terms in the interface, and assumes that your process mirrors the built-in states.

It is best suited for organizations that have a stable, fixed team working on long-term projects. Otherwise the "story point" estimation methodology, and overall workflow, tends not to work well.

2012 - What's next?

It's been nearly four years since the last major innovation in issue tracking.

We're seeing a lot of action in the mobile world, but mostly iOS and Android applications to access existing issue tracking systems.

What's the next big thing in issue tracking? Let us know in the comments below.

Sunday, December 11, 2011

PMRobot Google+ Hangout

Just a quick little note that this Wednesday, December 14th at 11:00am Eastern, we'll be hosting a Google+ Hangout to chat about the latest PMRobot release.

Put PMRobot in your Google+ circles and join us to learn and give your feedback.

In the meantime, check out our new front page video explaining how PMRobot is the best all-in-one solution for software consultants!

Sunday, October 30, 2011

Boomerang for Gmail Review

As a "follow-up" to Ramy's article about FollowUpThen, I wanted to share my favorite email follow-up service -- Boomerang for Gmail by Baydin.

I've been using it since early beta, and it has become a powerful tool in my email productivity arsenal.

It's basically a snooze button for your email, and integrates right into the familiar Gmail interface.

At $50/year for a personal account, and $150/year for a professional account, it's not cheap compared to Gmail itself.

However, it works very well, is extremely reliable, and could end up being worth the money for someone who sends and receives ridiculous amounts of email. (like yours truly :)

The feature is use most is the basic "Boomerang incoming" functionality. Just tell Boomerang when you want the email to come back (tomorrow 8am, next thursday, etc.) and it disappears and is redelivered at that time.

For power users, here's an example of a more complicated workflow:
  1. You receive an email from Bob asking whether you can meet up next Friday, but you have a tentative meeting scheduled with Mary.
  2. You send an email to Mary asking if the meeting is still on, but click the "Boomerang this message if I don't hear back in 2 days" checkbox.
  3. If Mary responds promptly, nothing happens.
  4. However, if Mary does not reply, Boomerang puts the message back in your Inbox so you can re-ask her, or perhaps give a call or text.

Another feature I use often is the Send Later feature, which is similar to Outlook's Delay Delivery.

I sometimes find myself working at odd hours -- 2am, 3am -- and need to send various emails, like invoices, updates, etc.

Sometimes it might be consider a bit rude to send emails in the middle of the night. What if the recipient forgot to turn off their Blackberry and it buzzes and wakes them up?

I simply draft up the email, press Save, and then use Boomerang's Send Later button. A dropdown lets me specify when (usually "tomorrow morning").

In summary, Boomerang for Gmail is a nicely implemented service that does a great job of filling a void in Gmail's functionality.

Kudos to the folks at Baydin!

Thursday, October 20, 2011

Forget Flagging Emails - Follow Up Then

I've recently been introduced to a great tool that's helped me in managing projects and fits perfectly into my personal workflow of how I deal with emails and keep on top of things where I need to make sure some action gets taken.

In the past, I flagged emails. First in Outlook and then a few years later using "Stars" in Gmail. It works pretty well. After I sent an email, if I wanted to make sure that the person that I sent the email to actually did something with it, I would go into my sent items folder and Star the email. Once a week or so, I would cycle through my Starred items and see if there were any messages I needed to follow up on…

Enter Followupthen.com. Before I go on. I don't know the people who developed this product and I have no affiliation with them other than being a big fan of their service!

Basically, you can send an email to 1week@followupthen.com, 3hours@followupthen.com, nextmonth@followupthen.com or any other description of time you can think of. After that set amount of time, you'll get a reply/forward from Followupthen (with the same subject line so that message threading works correctly) which basically brings that conversation right back into your inbox.

There's a few reasons I like this. But before that, I'll illustrate the two different ways that I use this service.

If I'm sending an email and I want to basically remind myself to follow up a week later (if I don't hear back from the recipient) it's as easy as BCCing 1week@followupthen.com. No extra action is required. I don't need to look up the email after sending it and mark it. The recipient has no idea about it and I can feel confident that if I don't hear back in a week, that email conversation will magically pop back into my inbox for me to follow up on.

The other way I've used the service is when I receive an email that I don't necessarily want to write back to immediately. Whether it's a good practice or not, I'm a big fan of a clean inbox. So when I get those emails, if I want to remind myself to reply 2 days later, I simply forward it to 2days@followupthen.com and then archive it. Again, it fits right into my workflow, which is what makes the service so useful.

The one downside or questionable part of this is that I am sending some of my emails to this service. I'm careful that nothing with even the mildest amount of confidentiality goes out this way. That being said, considering that Google and Apple basically own most of my information anyway, it's probably not too big of a deal.

Finally, aside from actually using the service, it's also been a good learning for me in terms of creating meaningful business solutions. The service is simple. It does one thing. And it does that thing well. The most important part for me is that it fits into my workflow and as a result, it was really quick to adapt to.

We are taking this lesson into account as we continue to improve PMRobot and looking closely at the workflow of project managers and software developers to ensure that PMRobot slips right into the way most people are working already! Have feedback about how we can improve PMRobot from a workflow point of view? Drop me a line at ramy@pmrobot.com.