Four Things You Should Know Before Starting a Software Project


Creating custom software can add incredible value to your business by automating processes or easing pain points that keep your team from working at full capacity. Taking on a project like building a piece of software can be a daunting task, however, without doing a few things prior to starting.

Obvious things like finding a software engineer, picking a platform, picking a technology, and even more technical details will need to be decided. You will also need to put a good amount of thought into everything you want the software to do. Before all of that though, you need to think about these four things so your project can be successful. These four things are so important, you should stop now, and write them down before you put any more effort into planning your project.

Know Your Goals

A successful project will have clearly defined goals. You should not only think about what you want your custom software to do, but also think about the problem you want the software to solve. To identify your goals and bring clarity to this part of your project plan, it is often helpful to ask yourself a few questions.

  • What process is taking too long or what pain point are you trying to eliminate?
  • Is your team unable to do something fast enough because it’s not automated?
  • Is there a unique solution your software would bring to an industry or group of people? If so, what is it and who are they?
  • Why would someone use your software?

As you’re defining your goals, you should be as specific as possible. Don’t use general terms like “make importing orders into QuickBooks easier.” Instead, use details like, “increase the number of orders we can put in QuickBooks from 25 to at least 100 per day.” Using details like that will help you greatly as you define the second piece of your project plan.

Know Success

Success shouldn’t be a feeling or a subjective goal. Once you have your goals specifically defined, this step is easy. The main question to ask yourself when picking your definition of success is, “when the project is done, what goals must be met and which goals are less important?” It may be helpful to look at your list of goals and rank their importance on a number scale of some sort. For instance, put “1” next to your most important, “2” next to the goals that are less important, and “3” next to those goals that are “nice-to-haves.” Then, your success statement may be something like, “this project will be successful when all of the #1 and #2 goals have been achieved.” Alternatively, you may not have any optional goals and your success statement may be something like, “this project will be a success when all of these goals are met.”

When you define success in this way, you will have a much better sense for the last two items in your project plan.

Know Your Timeline

Now that your project plan includes your goals and a clear definition of success, you’ll need to consider what a reasonable timeline will look like. Typically, the temptation is put an ASAP stamp on your project and leave it at that. Of course, most of the time, this is unreasonable and sets your project up for failure. Failure would come – not because you can’t finish a project in a hurry, but because it puts no boundaries on your project and leaves room for the project to drag on beyond reason.

If you have never run a software project, you may not have a good feel for how long development may actually take. However, you can put things in your timeline before an engineer gets involved. If you have deadlines, appointments, or other projects that are dependent upon your software being complete, you should write those down. After you’ve cataloged your timeline restrictions, you can get a software engineer involved to see if your timeline is reasonable.

Remember, you define a timeline so your project does not drag on. If your timeline is not met or it appears that it will not be met, you can use that as a key performance indicator (KPI) and either make adjustments or re-evaluate the project as a whole. The next KPI and the final item on your project plan is your budget.

Know Your Budget

Just like defining your timeline, a budget may be difficult to get a feel for if you haven’t run a software project before. However, just like your timeline, you likely have some restrictions you can apply to your budget. It is often useful to think of the possible return on investment you may see from the software you want to create. For instance, if your software can save your team 3 hours of work per day and you pay your employees an hourly rate, it is easy to calculate how much money you may save in labor. That, of course, is a very simplistic approach to ROI, but estimating a return of some sort will often give you a feel for the top end of your budget. If you estimate a return of $5,000 annually for instance, and your software engineer estimates a cost of $10,000, you will need to decide if you can wait for 2 years before you see a financial return on your investment.

Final Thoughts

A successful project will start with goals, a definition of success, a timeline, and a budget. Once you have all four of those things, you’re ready to start a conversation with a software engineer. I should mention that while you are in the planning phase of your project, you should expect these four things to undergo slight adjustments before the project begins. For instance, you may need to re-define success by eliminating a subset of goals so you can meet your timeline and budget. Alternatively, you may need to adjust your budget to ensure success by meeting all of your goals. Small changes should be expected. However, once the project starts, you should strive to stay as close to the plan as possible.

After the project starts, for instance, it would be ill-advised to add goals to your project as that would likely cascade and cause your timeline or budget to increase. Be sure your plan is sound before you start and stick to it!

If you have any questions or comments about this, please leave them below. If you would like to start a software project, please email me using the form on this website.

Thanks for reading!