Before you begin your quest, this blog will share various insights and considerations to help in your selection. Software development companies are not all equal, so your search for a perfect match should be carefully considered.
This article is meant for owners of SMBs and executive leadership teams expressing the need and interest in collaborating with software development companies to improve operations, build digital products, and initiate digital transformation opportunities within their organization.
While there are many factors to consider, let’s first break down the topics up into four pillars:
- Chemistry – People invest in people, this industry is built on trusted relationships
- Process – How initiatives go from concept to fully executed is important
- Experience – Skills, talent and resources will vary uniquely from team to team
- Types - There are different types of development companies
The best choice comes down to how you balance deciding factors from these four important categories.
People invest in people, and this industry is built on trusted relationships.
After being a part of the industry as a professional since 2000, I know all too well that in most cases, it’s mostly about people and relationships. The cool tech, widgets and systems are important by all means. But most successful collaborations are based on building trust and working with united teams that all understand the endgame.
Chemistry in these relationships is really important. But how can you trust any team when you have just met? At Alliance Systems we try to define this as going beyond delivering solutions on-time and on-budget. We are looking to innovate with “partners” not just clients, and we strive to become a trusted advisor. This is because we genuinely care about the endgame for our clients, and this means far more than designing, building and launching new initiatives. This comes down to understanding operational systems and how they generate sustainable revenue. The basis of all great relationships is good intent, but then it must be followed by continuous and dedicated collaboration until goals are achieved.
There’s a certain level of respect that is required. In most cases you want to hire a team with thought-leadership that has your best interest in mind. We’ve all heard of horror stories when tech teams are just order takers. They do exactly what the client asks them to do, but initiatives still fail. This is especially true when a non-technical founder is trying to achieve a great vision.
These efforts involve teams with various production specialists and experts. And the larger and more complex the initiative is, the longer teams will have to endure and work together towards a common goal. Therefore, managing expectations and transparent communications are essential to kicking off and ramping up the relationship.
Make sure engage and connect with teams at every level within the organization. Common mistakes include interfacing only with sales executives. Being able to connect with a range of production experts can give you tremendous insights as to the team you will be working with, their style of communication and availability. While you are connecting with the team, you can learn more about the culture of the organization and how teams come together to execute successful projects.
An insight I learned from a mentor a long time ago is to discuss an important question - what if things go wrong? The character of people and how they act when there are challenges is what you’re really after. Anyone can get along when a project is going great! Challenges are just around the corner and having a team that has the same level of commitment as your organization is what you are after.
- Meet and interview people across various levels – understand accountability
- Connect with people at a deeper level – discuss their “Why” and “Goals”
- Discuss how important Communications and Transparency will be moving forward
- Learn about alignment through Core Values, Future Vision and Team Culture
- Ask for references and follow up to learn about Customer Service and Experience
How initiatives go from concept to fully executed is important.
Once you feel the chemistry is good, the next logical step is to learn about the organization’s process. And while we all are different on the spectrum from dreamer to sequential-thinker, you will want to ensure that the process followed fits. Many software initiatives begin with a concept.
Like many, my philosophy is that that ideas are a dime a dozen. Anyone can come up with a great idea. However, turning that idea into a fully executed solution takes a ton of effort. And this takes teams, not an individual. Within our industry, designing and building software is an elaborate orchestration across stakeholders, product owners, project managers, and producers (analysts, designers, developers, testers, and more).
It typically starts by asking what methods or approach does your company take to manage and deliver solutions. And if you are interviewing companies to deliver a custom software solution, they’ll need to have experience with Agile.
Agile Basic Concepts
Agile is defined as an iterative approach to project management and software development that helps deliver value to customers faster than traditional approaches. The premise is that agile teams deliver work in small but consumable increments. Often this is referred to as “Product Increment” across one initiative, or “Program Increment” when referred to as a series of initiatives. The main goal is that requirements planning and results are evaluated continuously and this enables teams to be more adaptive and respond to necessary changes quickly. Common topics around Agile include: Agile Manifesto, Scrum, Kanban, Agile at Scale and DevOps.
Another important concept to familiarize yourself within Agile is CI/CD – this stands for Continuous integration and continuous delivery. This concept embodies a culture through a collection of practices that enable application teams to deliver code updates more frequently and reliably and it is often referred to as a CI/CD pipeline.
Documentation and Rituals
Documentation and consistent rituals are foundational requirements for success. In order to understand if an initiative is on-track, on-time, and delivering quality results requires all teams to be on the same page. Being fully transparent with everything and having key metrics that are measured throughout project development cycle is crucial. Lousy tracking, little to no documentation may feel like it’s saving you money. But managing true expectations without any metrics and well thought out documentation procedures causes most projects to fail.
When it comes to planning, the days of pre-planning an entire initiative from start to finish are long gone. Waterfall project management as a whole is an outdated methodology, especially in the software development space. How often do you recall having a perfect plan that doesn’t change throughout the lifecycle of a project? Reality sets in and life happens. What you know today compared to when you started might change and better options and solutions may need to be considered. Does this mean you don’t need planning? No, planning will always be necessary; but you can be smart and ensure that you are not wasting funds by overplanning. The key is to find an intelligent balance between planning and execution.
While concepts in Agile are similar, the process can be unique from team to team. Understanding how much participation time will be required by all parties, cadence and accountability structures will open up topics related to everyone’s expectations. Ask the team to explain rituals and how it all corresponds to developing and delivering software in smart sized product increments.
Having conversations in early stages and understanding how process and sequence trickles down to approvals and payment milestones can potentially alleviate a lot of heartache.
- While most will talk about Agile, the process may vary from vendor to vendor
- Which is the approach that best fits your culture?
- Discuss PM methodologies for an entire solution lifecycle – planning through execution
- Discuss documentation and rituals – to estimate engagement and collaboration
- How does the company’s process affect your initiative? Positively or negatively
Experience – Skills, talent and resources will vary uniquely from team to team.
As Digital Transformation initiatives get more complicated, it requires more experience team with a portfolio across a variety of skills and talent. There are so many specialists that need to be in sync, therefore it is good to have a base understanding on some of the essential roles.
Understanding the structure of an organization is very helpful:
- Executive Leadership
- Team Leads
Getting a sense for how the organization came together from inception is a great way to learn about the executive leadership team. There can be talented people that come together in different circumstances. Everyone has a different career path and how it entangles with partners to create a business can shed light on the quality of any organization. If you have the opportunity to meet with anyone from the executive leadership team, that will give you an advantage.
Production teams are important because they define the skills and talent for the people that will be directly working on your initiative. Within the production team, there were will team leads that span different disciplines. The most common of these as a rule are:
The highlight here is getting to understand how small or large the team is. Get a chance to meet and ask questions across a team, rather than just a sales person. Even small Digital Transformation initiatives or software projects require a solid team, and one person can’t be the expert in everything.
Analysts will help you with planning, reviewing data elements and piecing together business logic that is refined and handed off to design and development teams. Designers can be broken down into UX and UI, while some talented designers can be good at both. But please note, these disciplines are different. One focuses on the quality of the user experience, while the other focuses strictly on the quality and performance of the graphical interface. Eventually designs get translated into functional code and for that there is another logical split between front end developers and back end developers. While front end developers build the interfaces that the user interacts with, back end developers focus on system architecture, databases, and security aspects for your application. And finally, you have a variety of project management responsibilities with the ultimate goal of moving your initiative forward through to completion that is on-time, on-budget, while maintaining track of all details throughout the product lifecycle.
- Look for teams that are cross-functional with a variety of talent
- When complex initiatives need solutions, you want a reasonable size team
- Picking small teams is OK, but ensure there is proper coverage across disciplines
- Stay away from 1-2 person teams, the key is balance of talent with enough resources
Understanding the different types of technology firms allows you to compare organizations with clearer context. Having a perfect “apples to apples” comparison is not as likely as you may think. Here are a few company types to get us started.
Basic List of Company Types:
- Web Design
- Web Development
- Software/Systems Company
- IT Company
Creative Marketing Type
In this category, it is common for the agency to be strong in design solutions around branding and advertising. However, as agencies have seen the need for Digital Marketing strategies to be implemented for their clients, they have evolved and improved their “marketing tech”. This includes better websites, communications, integration of marketing systems, and tracking budgets across smart campaigns. In most cases, these teams are more marketing-centric as opposed to technologists. Their core team is a mix of marketing specialists, print designers, web designers, and web developers.
Web Design Type
Web Design agencies are very similar to Creative Marketing types. The biggest difference is they tend to focus on designing and building websites without necessarily having to offer marketing services. Their team is a mix of web designers and web developers. They are extremely focused and might have specialty platforms or systems that make up their core offering. They are typically strong in design and branding, but their focus is mainly in the digital interactive space. As example, it would be rare for them to take on traditional print media initiatives.
Web Development Type
Web Development agencies are an advanced evolution to Web Design Types. Though sometimes understood to be seen as similar to Web Design. However, these businesses have a team of proficient developers that extend their programming to web applications and mobile apps. The technical knowledge and capabilities are more established and the size and complexity of projects they can take on are typically larger. Most Web Development Type organizations will select a core set of systems and platforms. While this type is certainly capable of designing websites, they will be more attracted to larger advanced web projects. The level of competence depends on the technology and digital products they create.
Software companies and Web Development Companies can overlap as they both participate in building applications. The main difference is most likely the types of initiatives and industries they are after. Software companies will most likely focus their talent more analysts and developers. This doesn’t mean they don’t work or collaborate with designers, but it does mean there is a deeper-rooted technical focus. There are applications that are written that work behind the scenes and only used by system admins. Which means the design for those applications will not require high end UX/UI.
Not all IT companies offer software application consulting services. While they may take a lot of calls as initial line of defense, make sure that they have a dedicated team of software designers/developers to take on your project. In most cases, IT companies are focused around hardware infrastructure. This leads to having managed IT services to coordinate your networks and security through servers, firewalls, routers, switches etc. This also includes managing cyber security, accounts and permissions for all the combination of software and computers used within an organization. And all these services are typically surfaced and co-managed through a professional help-desk team. Although IT companies overlap some knowledge, building and designing software requires a very specific kind of talent. Many IT companies do not offer these services.
One Size Does Not Fit All
And finally, once you talk to a variety of companies, you will have to select the one size that fits the best. There is no one perfect size of an organization that is best for everyone. Common sense will tell you that larger firms will be the most expensive, and that smaller ones will be cheaper. But cost is only one factor to consider.
Essentially, we are after the Goldilocks Principle... not too hot, not too cold, it has to have the right temperature. In our case, the company can’t be too larger and it can’t be too small, it has to be the right size. Let’s examine both sides of the spectrum.
If a company is too large, you may have the advantage of ensuring that they have all the right capabilities to see the product launch through to the end. And by having all the talent and skills in place, your product will see itself on the market. However, the cost and timeline may be too much and too long as compared to your budget and timeline. You also have to think in terms of support and attention. If you are the smallest account on the roster, you may not have the level of attention that suits you best.
If a company is too small, you may have the advantage of a faster timeline and lower development costs. But are you adding too much risk by your team cutting corners, not have certain blocks of experience, and launching something that is too premature and not ready for prime time? In this scenario, you might be the largest account for a company. But is their capacity slowing you down and holding you back?
Understanding the pros and cons when dealing with firms at different sizes can be a key factor in you deciding which company is best for you.
- Understand the differences and positioning of different company types
- Consider the Goldilocks Principle; you want the best size to match your needs
- Stay away from the cheapest solutions offered. They are risky and too good to be true
- Understanding the types of initiatives that the teams are looking for is important
Before you begin interviewing companies for your next Digital Transformation initiative, ensure that you have a balanced approach to reviewing all the pros and cons when selecting your technology partner. We say partner as vendors now a days are a commodity. The last thing you want is a team of order takers that don’t hold themselves accountable for their actions.
When you consider important consideration factors across Chemistry, Process, Experience and Types, it will provide a wholistic review and allow you to select the best company to work with.