Ready to embark on a new software project? Read this first!
The lead-up and initial phases of a software project are the most crucial to
ensuring a satisfying end product. By carefully assessing expectations on your
side as well as the development house’s side and then starting off on the right
foot, you’ll both be well-poised for ongoing success.
Here’s where to start:
Does similar software already exist?
There’s no point reinventing the wheel - unless making a new wheel is going to cost you a lot less in the long run or, conversely, make you lots of money by selling it.
If there is already a commercial software available that fits your idea, or near enough to it, then have a good long think about whether it’s necessary to build something new. Often, you can make existing software fit for purpose, or build something small to integrate with it to suit your needs.
If you’re creating new software to sell rather than for internal use, think carefully about your differentiating features and the current market.
Have at least three consults
The rule of three! When you’re looking at important and pricey services like elective surgery, auto repairs, or home renovations, it’s best to do research, find your top three potential choices, then ask for consults with each. The same goes with finding a software house to build your software.
By undertaking multiple consults you can get a feel for the software company, their processes, whether they sound like they know what they are talking about, and whether you think they’d be a good fit.
Be wary of people who use too much industry jargon (they should be tailoring their consults to your knowledge level), seem disinterested or that they’re trying to wrap up the meeting quickly, or hardly ask you any questions. This is like an interview - seeing if you’re both a good fit for each other.
Be aware of the scope of your project
When stepping into a software project, many make the mistake of either not understanding or defining the scope of their software very well.
These could be some potential questions that you may not have considered at length:
●What data sources will it need to function, and is that data readily available or does it need to be harvested first?
●Who are the users of the software? By knowing your audience persona well, you can gauge the type of UI needed, what functions to implement, and the help systems needed.
●Will it require machine learning? This is a complex, often time-consuming, and costly undertaking.
●What will the running costs be? If you need highly-available, multi-connection, high-data applications, then server costs once the software is up and running will likely be significant.
●What about privacy? Regulations like the GDPR may come into play and require heightened security measures.
A good software partner will help ask these types of questions to scope your project accurately.
Have good project management tools and practices in place
Project management and communication tools are advanced to the point where workflow feels smooth, everyone in the team can be on the same page, and project information and work itself is easy to find.
Every team and management style is a little different, which means there will be different tools in place already to oversee projects. A typical tool stack for project management might include Slack for communications, Confluence for documentation, Github for the codebase, and Jira for project tracking.
While there are other tools for specific software-related activities, such as DevOps pipelines and monitoring, as a non-engineer these may not be necessary for you to view, other than perhaps weekly generated reports.
Be aware of time differences
If you’re choosing to go with a remote team, then you will want to determine general working hours for your software development team upfront. For instance, if you’re located in the UK and have a remote, mixed time-zone team, one of your developers could be in Australia - 11 hours ahead.
Having a number of set hours a day that you can contact team members, regardless of where they’re located in the world, ensures that communication isn’t stilted with a question one day and a reply the next, over and over.
Start small
Rome wasn’t built in a day and your software won’t be either - unless it’s a quick little bot. When starting a software project, you need to start with a small, working product. Generally, this is the most important ‘core’ of your application - whatever that may be. Perhaps it’s migrating all your company data from Excel files to a cloud database service. It might be coding the game logic for a blackjack app you’re making. It might be a way to identify dogs in images.
Using Agile software development processes, you’re able to start small and build incrementally as you go. This also helps ensure that development stays on track, feedback can be given fast, and you can see progress made on a regular basis.
Ready for a consult with CodeFirst?
We’d love to be one of the three software houses that you choose to consult with before your project jump off. With a wealth of knowledge, talented developers, and mature software development processes, we are able to build great products for our clients. Learn more about what CodeFirst can do for you and get in touch today.