Building custom software is a delicate balancing act. Even for the largest organisations, every project is subject to constraints. And since almost all organisations have commercial goals, many of those constraints are business-related.
Yes, we’re humans designing experiences for other humans, and we pride ourselves on finding ways to improve people’s lives. However, for the majority of designers / developers, the reality is that most software projects are judged on the value they provide to a customer or stakeholder. Designing software is more art than science, and art has always relied on patronage.
Whether you’re an agency, an in-house team or an individual working on a personal project, business-related constraints are ever-present. To deliver a product that’s truly viable, it’s important to understand the relationship between the needs of the end user and the commercial goals of any business(es) involved in the project, including your own.
Here we unpack some of those business-related constraints and considerations. In doing so, we hope to provide a useful reference for anyone evaluating or undertaking a software project, whether you're designing a new product or service, or expanding an existing solution.
These considerations fall into three interrelated areas: Project Evaluation, Capability, and Processes and Tools, with three considerations in each. They are framed as questions but there are no right or wrong answers.
Depending on your situation (e.g. agency, in-house, individual) some sections may be more applicable than others.
While the considerations are not linear, there are some gates along the way. For example, if you choose not to embark on a project because it’s not a good strategic fit, you don’t need to worry about whether you have the people or skills to tackle it.
1. Project Evaluation
When evaluating a new product, solution or feature, what are your criteria? How do you ensure the project is a good fit for you and your customer(s) or stakeholder(s)?
Purpose and Values
- Are your own purpose and values sufficiently clear that you’re able to apply them as criteria when evaluating a new project?
- When considering a new project, do you assess the purpose and values of your customer(s) or stakeholder(s) before making a decision?
- Under what circumstances would you decline a project (e.g. on ethical grounds) even if it could be financially lucrative?
- In your view, does the project have genuine strategic importance? Does it solve a problem that is worth solving?
- Is the project part of a broader business or go-to-market strategy? If so, how well do you understand the wider strategy and how does this project fit within it?
- Is the project a good fit with your own strategic goals? Is this the type of work you want to be doing?
- Are you and your customer(s) or stakeholder(s) fully cognisant of the estimated project costs? Can all parties afford to embark on the project?
- Who is paying for the project, and when? Has a fee structure been agreed? Do you need a contract?
- Do you or your customer(s) intend to monetize the product or solution? If so, what is the business model? Is the ongoing success of the project dependent on generating revenue?
Do you have the capability and resources to plan and execute successfully? What are the gaps?
Knowledge and Expertise
- Do you / your team have existing domain knowledge or industry experience in this area?
- What insights do you have about the users you are building for? How well do you understand their pain points? What are the gaps?
- How well do you know your customer(s) or stakeholder(s)? Is there a good level of trust on both sides? If not, how will you build it?
People and Skills
- Do you have sufficient people (designers, developers, etc) to tackle the project? What are the gaps?
- Do you have the relevant skills to tackle the project? Do you have the right blend of specialists and generalists? What are the gaps?
- What will you / your team learn from the project? How does it contribute to your professional development goals?
- How do you plan a project? Do you plan collaboratively with your customer(s) or stakeholder(s)?
- Do you have sufficient time to tackle the project? What is driving the timeline and can you influence it?
- What other resources do you need to complete the project to a high standard (e.g. office space, equipment, etc)?
3. Processes and Tools
What processes and tools do you need to execute successfully?
- What overarching design and/or development methodology do you use when undertaking a project? Do you need one?
- Is your methodology appropriate for the type and size of your team, project or customer?
- Is the project team set up for success? Are roles and responsibilities sufficiently clear?
- What tools and systems do you use to forecast and track progress, time and costs? What is the process for communicating changes?
- What tools, meetings and forums do you use to communicate? Do the tools have sufficient capability and flexibility? Do the meetings have a clear purpose and cadence?
- How do you capture learnings and hindsights during / after a project? What is the process for flowing those insights back into your process?
Review and Approval
- Who is involved in the quality, review and approval process? What is the workflow? Are roles and responsibilities sufficiently clear?
- Is the review process working? Are the best ideas rising to the top? How could this be improved?
- Who makes the final decision on if/when a product or feature ships? Is the approval process sufficiently clear?
If you found these considerations helpful, please visit our Software Evaluation Tool.
The Software Evaluation Tool is designed to be used by anyone working on a software project of any size (either individually or as part of a team) to help with decision-making and provoke new lines of questioning. We use this tool at Smudge to sense-check our own decisions and we thought other people might benefit from using it, too.
Please contact us if you have any feedback or suggestions.