Staff Augmentation vs. Project-Based Consultancy—Which One Wins?

Bringing in an agency to help build your software platform is a winning strategy - it saves you time, and stress and most importantly keeps you within budget. But businesses often find themselves at a crossroads when it comes to outsourcing solutions. Two popular options—Staff Augmentation and Project-Based Consultancy—offer distinct advantages and cater to different needs. Let's delve into the intricacies of each approach and explore the benefits they bring to the table.

Staff Augmentation: Unleashing Flexibility and Scaling Capabilities

Staff augmentation in software projects refers to the practice of supplementing an existing in-house development team with external, temporary personnel or skilled professionals. This external workforce, often provided by an outsourcing or staffing agency, integrates seamlessly into the client's team to contribute specific expertise, skills, or resources needed for a particular project.

Staff augmentation strategy has a lot going for it, here are some big ones:

1. Greater Control and Flexibility:

Staff Augmentation is a go-to choice for businesses requiring temporary skilled workers or dealing with short-term projects. It provides greater control over the team, allowing seamless integration with in-house operations. The flexibility to scale the team up or down ensures that resources align with project requirements.

2. Immediate Access to Skilled Resources:

One of the standout advantages of staff augmentation is the swift access to a pool of skilled professionals. This is particularly beneficial for projects with tight deadlines, enabling teams to hit the ground running without the delays associated with traditional hiring processes.

3. Cost-Effectiveness for Short-Term Needs:

Staff Augmentation can be a cost-effective solution for short-term projects. While long-term costs may accumulate, the ability to bring in expertise only when needed can be a strategic financial decision.

4. Integration with Existing Processes:

Augmented staff seamlessly follow existing tools and processes within your company. This ensures a smooth workflow and integration with established methodologies, enhancing productivity.

5. Skill Enhancement for Ongoing Plans:

Ideal for developers familiar with project goals but needing extra support, staff augmentation aids in executing ongoing plans to scale. It provides knowledge of industry best practices and can contribute to achieving long-term objectives.

Project-Based Consultancy: Precision, Expertise, and Defined Outcomes

Project-based consultancy strategy in software projects involves engaging external consultants or consulting firms to provide expert guidance, strategic planning, and hands-on implementation for specific projects within a defined scope. Unlike staff augmentation, where external resources integrate into the existing team, project-based consultancy is more focused on delivering a comprehensive solution or achieving specific project goals.

Just like staff augmentation strategy, project-based consultancy has it’s upsides, here are some:

1. Expert Guidance and Implementation:

Project-Based Consultancy shines when businesses seek expert guidance and execution for specific projects. Consultants bring in-depth knowledge and experience, offering valuable insights that can elevate the project to market standards.

2. Defined Outcomes and Timelines:

Unlike staff augmentation, project-based consulting operates on a fixed or project-based cost structure. This clarity in financials and a clearly defined scope and timeline make it easy for businesses to budget and plan effectively.

3. Strategic Roadmap and Industry Compliance:

Project-based consultants provide strategic guidance in uncharted territories, ensuring adherence to industry compliance standards. They bring a fresh perspective, introducing efficiency to development processes and paving the way for successful project delivery.

4. Specialized Skills for New Challenges:

Consultants are aptly equipped to introduce businesses to new challenges. Whether it's accessing a new consumer platform or venturing into a new field, project-based consultancy helps enterprises apply their core talents to diverse and unfamiliar scenarios.

5. High Security Standards:

Consultants are expected to adhere to stringent security standards, providing a high level of data security. Their commitment to industry best practices ensures that projects meet the necessary privacy and security requirements.

Here’s the interesting thing, it doesn’t have to be one of those options! You could actually mix them up to bring out the best of both worlds.

Strength in Combination: A Holistic Approach

These two approaches need not be mutually exclusive. At Kaz we have have done many software projects where we have had both a dedicated team of developers working with our clients as part of their core team and separate parts of the system being built at the same time for that client in project based format. This gives our clients the flexibility and cost-control at the same time getting the benefits of the dedicated team. The added benefit of such a combined approach is that a component delivered as part of a project based work can then be looked after by the dedicated resource team (augmented staff) that has the benefit of co-located with the project team. This makes solving issues, knowledge transfer, future extension fast and accurate.

Also, initiatives that start as project-based consulting may evolve into more hands-on commitments, and vice versa. The combined strength of IT staff augmentation and project-based consultancy can lead to enhanced product responsibility, end-to-end support, and ongoing intellectual property advantages.

Making remote software team meetings fun

Remote teams spread out over multiple locations around the globe and speaking multiple different languages as their first are the norm these days for most software companies. This is a great trend, as it opens up the availability of software talent to software projects and makes hiring great software developers a much easier task for companies. But as with anything else in this world, those great things come with some downsides. One of the biggest downside is the lack of interaction between team members. Without that interaction the essential element of any good software team: “gelling”, doesn’t happen. We’ve written in the past about how to make the remote team gel so it’s worth a look up if you haven’t read it. Today, we’ll drill down to one aspect of remote team interaction that needs special attention: team meetings.

Team meetings are one of the holy grails for a software project to perform well. It’s a meetup of the team to discuss the project, where they are and where they are going. It essentially setups up the direction of the team at regular intervals. Hence it’s very important to get the meeting right. However, if the meeting is too formal, then it becomes a painful waste of time, where people just sit through boring proceedings and not really discuss the issues at hand in an open way. And the only way you can make that happen is if make the team meeting a relaxed and fun event that people actually like attending. As you can imagine, remote teams pose a difficult challenge to this premise of a “fun” team meeting. We been running remote teams for the past 18 years as a software development agency that helps companies build software products so we have a few tips and tricks to solve this problem. And in today’s post I want to share them with you.

Fun introductions and catch up games

By introducing a short game over the remote call you can easily “break the ice” for new members of a team or even reinvigorate an old team that has been working away from each other too long.

A classic in this remote meeting games is called the "what do you really know" game. This is where you (as the team lead/ project manager) begin a meeting by asking the participants to share something that they know really well. This could be anything from baking to e-bikes. The idea is to leverage people's expertise and build connection and trust right at the beginning of the meeting. You then ask questions about their areas of expertise, which led to interesting conversations.

There are many other virtual games that you can run on the meetings, a quick google search with get you a whole bunch of them.

Running the meeting in the radio host mode

In this this, you make everyone turn off their video! By turning off the video, you've shifted the norm from your team, which spikes the level of fun and engagement in the group. Then you ask someone to assume they are a radio host and then ask others questions like a radio talk show. Here’s an example:

Host: “So, Max, I read on the newspaper that your feature of calculating optimal rates in the software is going really well, tell us something about what you are doing right now?”

You could spice it up a bit to create the feel of a political leader interview, here’s an example:

Host: “But many people have protested that the it doesn’t do the calculation as you promised, is that true?”

There are many variations on this theme and after some practice you’ll find that this is a unique way running the meeting which discusses serious issues in a fun and engaging way. Best of both worlds!

Show and tell

This is modelled after the show and tell things we used to do in elementary school. On the fun introductions and break the ice mode you could ask the participants to find a specific item in their house and bring it back to the meeting. This could be anything from a childhood photo to a favorite book. This is a great way to build connection and get to know each other better.

And on the serious work side, you could ask team members to show the feature they are working on, and describe it in the elementary school “show and tell” mode.

Information sharing via Ice breaker sessions

Icebreakers are warm-up activities that help make virtual meetings exciting and engaging. They require little to no preparation, and they have a lot of potential when done right. Good icebreakers help mitigate the feeling of being a bunch of strangers hanging out in a room together. They have people acknowledge each other's existence, which is just enough to get people excited. Even the few minutes invested in an icebreaker might make people laugh, make them open up to dialogue, and even help them step out of their comfort zone.

One really good ice breaker session is the highs and lows. It’s an awesome way to help people empathize with their peers. You basically ask everyone to share their successes with tasks assigned “highs” and failures “lows”. The goal is to make it easy for everyone to share where they failed without feeling bad or trying to hide such failures. This activity will encourage people to engage in meaningful dialogue with their peers, and most importantly, it enables teammates to provide their colleagues with the support where they failed and needed congratulations on their successes. As a result, this helps create a sense of empathy among team members and promotes a culture of support. Plus, this exercise encourages the exchange of valuable information between people.

So that’s it for now, our top tips for making your next team meeting fun!

Finding great software developers

Your software business is growing. To keep pace with the upscaling, you need a great software team to handle all the tech things so that you can focus on your work of expansion. But, do you know how to find and hire that great software team? A team that shares the same vision as you?

It’s hard to find good developers, as their skills are so much in demand that unless you are Google or Facebook you’ll never attract top developers to build your software projects. Even if you find someone with great talent and skills that person may not be the right fit for you and your team: he might not understand your instructions well, or may collaborate well with the rest of your team. Yet it’s vitally important to get the fit right in software. Building a great software is all about a team working together.

So, how do find great software developers? Here are some tips from our experience in working with hundreds of companies around the world building their software products.

Know what roles you need to hire for

A software team is composed of many distinct roles. Each role is essential and together they move your project forward. Remove one and you’ll see that things aren’t moving as they should. A role doesn’t mean a single hire, many roles are one person but sometimes many persons also fill a single role. Let me give you some examples: you need a business analyst role, someone who would understand the business problem you are trying to solve, then also understand how the software will solve that problem and most importantly know what are the priorities within the solutions. You also need a product manager, who will know what the product is supposed to do, when a certain version should come out with what features to meet what business need. This product manager will be the coordinator who talks with the tech team communicating the need and scope and then understand the technical challenges that the team faces and then faces the business side to understand their needs and communicates what’s what’s possible and what’s not. Now these two roles - the business analyst and the product manager tends to be two very distinct role but if the project size is small or if you just can’t afford two separate resources it’s just about possible to mix them both an have one hire that takes on both the roles. And if small startup it could be the founder who takes that role along with other roles like business development and even sales.

Whatever the context, before you even think of searching for your team, have a list of software roles you need to fill up. Then do your maths and figure out how many hires can you do and see if you can spread out the list of roles within them. This will guide you to the next step of the skills you need in your hires.

Know what you want to make

You need to know clearly the what you are making and what your business priorities are during this making phase. You should all the main features of the platform, which features are the most valuable and which are good to haves and which you can do without. The technology platform should be a big factor in this, for example you should know clearly what you want to keep inhouse and what you can get an external agency to do for you. For example, you can outsource salesforce development and keep the rest in house. In a perfect world you should also have clear specifications and requirements documents before you start adding software developers in the team who would build those features - but that’s in a perfect world!

In a startup, the minimum viable product aka MVP holds the most importance before the product or service is launched. Creating a neat and efficient MVP increases the chance of the startup being successful as well as fund raising and beta testing. And, that is where the software development team becomes crucial. So if you a startup just going through the motions of making your first attempt at the software your needs for the team is very different from the situation where you are an established software company thinking of extending an already selling software.

Remember that having a clear view about what you are building will not only help you identify the skillset you need but also help you ask the right questions when you find potential candidates.

Reference, reference, reference

The tech world tends to be a very connected world. Personal advocacy is always a first choice for everyone when it comes to hiring people for a software project. In this case, you have to keep in mind that your product or service is based on, and according to that you have to find the right people with appropriate skills. Maybe a web developer has helped your friend greatly, but it will not come to handy if your product is based on android application.

Here at Kaz software, around 80% of our customers are referred to us by our existing clients and partners.


Searching on the internet

Searching at the right forums and discussion boards can land you rare skilled developers who are not available in other platforms. Many software development teams work as agency and offer their services through their own company. If you are willing to work with a readymade team who can start working for you, this is a really good option. Kaz Software is a good example of such sources of ready to start teams. We maintain skilled teams working in a wide range of technologies from web application to mobile apps. The added benefit of using a company like ours is that we come with resources that a software project needs time to time but not always - resources like technical writers, designers, testers and systems support. And you can take help from such resources on a need basis, greatly reducing your HR spend and managing your budgeting.

Online platforms for freelancers like UpWork or Fiverr are widely used by employers who want to hire a remote resources. These platforms tend to be good for smaller or one off type projects. However, you can find freelancer groups as well who work together to offer service to startup owners to build solutions. The services can be web or app development to custom CRM solutions. This can be a really effective solution if you’re running low on budget. Also, you can find freelancers while knowing their actual review and rates. 


Social media and LinkedIn also can be a great option if you want to know the detailed and previous portfolio of employees. The experienced ones post their portfolios there, specify their skills, and the level of their endorsements shows their overall efficiency at their job. Even they don’t match your preferences, you can always connect with them and other people to get more people’s profile. Start by searching for the keywords relevant to your requirements and get the list of potential employees. Browse through the results, assess the profiles and send a proposal to them.

Offline search

You can always go search for technical people in person in events. A lots of conferences, meetups and hackathons take places regularly where you can find the right person to work with and discuss your work briefly. Especially in hackathon, you can get to see the efficiency of any individual or team who are just an event away!

Remote Resources

You don’t always need your team to be situated in the same spot. The entire world can really be your source of software hires! Remote software development teams can easily be managed using collaboration tools like Slack, Zoom, Jira, etc.

Remote software teams should only be hired through reputable software companies as they provide infrastructure for managing those resources, provide the right working environment, run the payroll, manage their holidays and work hours, etc. The most crucial reason for hiring remote teams from established software companies is the things around a team that makes a team coalesce and work with motivation. These include great office spaces, network and systems support, team activities and team building events. All of these keep technical staff motivated and companies benefit from that motivation.

Recruiters and managed service providers


Last but not least, if you want to outsource the hiring work to save your time, you can work with a recruiting agency or with a MSP aka Managed Services Provider companies who are mainly specialized in technology recruitment. This is a path we don’t suggest to our clients unless they are really short on time or are desperate for resources they cannot find in any other way. The main reason for putting this as a last resort is the difficulty of finding the recruitment agency that really understands your needs properly. Usually these agencies are working off a generic keyword driven hiring agenda that is not always the perfect fit for your actual need.


Remote software team - setting up the collaboration

Remote software teams is way forward in software development. No longer are companies tied to particular locations, waiting for resources and skills to be available and delaying the entire software process. By finding the right software resource at the right time and forming a remote team to work with any onsite team completely changes the game - and companies that are realizing this are getting ahead in the game. This is just one more evolutionary step in our ever changing industry, a step that has just been accelerated by COVID but it was a step that was bound to happen at some time or other.

As with any paradigm shifts such remote software teams come with some adjustments in work practices and process. We’ve been working with hundreds of companies around the world for the past 18 years in providing software resources and hosting such remote software teams. Here are some our tips about the right setup for collaboration and workflow for such remote teams.



Setup a clearly defined work process

This may sound obvious but you’d be surprised by how many teams we’ve come across that just assumed things about the work process for collaboration of remote and onsite teams. This is understandable though, when a team works side by side many of the work processes are automatically defined and agreed upon without explicitly defining them. An example would be the timing a push of latest code into the shared repository - if the team is all together very soon a standard of when a push is appropriate and acceptable is agreed upon. A few wrong moves by a new team member quickly gets fixed by visual (and sometimes very audible!) ques from the rest of the team. But now imaging when part of the team is spread out remotely. The same mechanisms of automatic agreement doesn’t happen fast and sometime never. There is no way out on this, for teams with remote members the lead has to layout a clear set of instructions for major work processes. What the major elements are depend on the nature of the project and the team members but here are some that are obvious candidates:

Work timing - when to be available, when are good times for pinging without advance notice, when not to poke, etc.

Tools - defined set of tools for collaboration like issue tracker, IDE (specially versions of IDE)

Reporting standard - when to cry for help, when to warn about delays, what to report and what not to worry too much about, etc.

Testing rules - what should be the minimum set of tests on the developer’s side (even if unit testing frameworks are available for the CI/CD), etc.

Code repository rules - when to push, who can merge, etc.

Meeting rules - what tools to use, what are the good times for combined calls, how long the meetings should be, etc.


Create an open communications channel

With team members spread out geographically the open communications channel is essential for a healthy team dynamics. One common strategy is to have video call regularly with the video on (visual is very important forming the bond between team members). An awareness withing the onsite team about keeping the remote team members in the loop on all important decision making process is absolutely essential. Running regular video meetings is one of the best way to avoid issues caused by communication gaps and it has the added benefit of making the remote team members feeling valued. These video meets should ideally to be planned in advance and hosted at a time that works for everyone. A random last minute email to setup these calls isn’t the way to do it. Formalize at least a regular video meet by setting up a recurring invite so that everyone are reminded before each session.

Regular team calls should have the goal of keeping remote team members updated and also getting feedback. Remote teams should not find out about important decisions at the last minute. This has huge impact in lowering morale within the team members and would start creating a divide between the onsite and remote staff. If there is a new process change or some important company news a specially rededicated call aimed at all the members should be placed to keep everyone on the same page.


Use team collaboration tools as much as possible

For onsite only teams we always push for face to face informal interactions more than a very process and tool centric interaction. This is completely the reverse when the teams are spread out. In such teams you should aim to have all major collaboration purely tool driven. A good example would be work distribution on a issue tracker. For onsite only teams it’s usually great to have a quick ad hoc meeting to split a task and then asking team members to just create and assign the tasks to themselves - it moves the needle move faster and just feels less clunky, less “bureaucratic”. But doing this for remote teams is recipe for disaster. It’s best to rely on the tools, have as much as possible of the discussion on the tools (e.g. a discussion thread on the issue tracker, or slack, etc.).

It can be difficult to keep track of the progress and monitor the status of the project at every stage for remote teams. Using a great project management tool like Atlassian Jira is essential. Such a tool must have features for creating tasks and subtasks, assigning them to team members, tracking the task and setting time estimates for those tasks, etc. Such a system should also have a way for discussing details of task, a way to collaborate at the task level with a log of what is going on. Here’s a screenshot with an example of an ideal task ticket tool feature.


Remote software teams - setting the culture

The pandemic has validated the concept that remote work is not only sustainable, it is actually better in some cases than onsite work. This is especially true for software development phase, where the work is very much supported by collaboration tools and the work products are digital and wire transmissible by it’s very nature. And the biggest benefit that came out a fully remote operation is that the key factor that makes software projects difficult - availability of talents - is resolved easily. Remote software resources can be found from anywhere in the world as and when needed. Given this state companies all around the world has embraced remote work and remote teams.

Although this paradigm shift geographically distributed remote team is happening at breakneck speed somethings remain the same. A software team is still a team of humans that must work together with passion to create great software. There is no way out on that theme. So the new challenges that companies are facing are the challenges of keeping the remote team motivated and connected. This is indeed a big challenge as team members from far away, from different time zones and maybe from different cultures make for a difficult setting for create an unified “team feel”. The usual strategies for bringing on the team feel can’t be done and you need to come up with new solutions. We wrote about our best strategies in a recent article about remote team building. Today’s post is about the other side of the equation - the changes and considerations of workflow, processes and policies that enhances the collaboration and the team feel of a remote software team. Here are some out biggest hit in this area:

Create a culture of empathy and collaboration

Empathy is the key to a sustainable creative culture that enhances and enforces the values of great software teams. With processes and talent in place the only factor that makes a software organization excel is its culture. This is absolutely essential for creative organizations and this one factor differentiates companies that are performing at the highest level with quality, scalability and repeatability of performance. And of all the strategies culture is the hardest one to get right.

The schematic here shows some of the guiding principles we aim for in setting up the culture for remote teams. If we can get these key features right in a remote software setup then we are usually on the right path of creating a culture that works. Remember, the culture of a remote team doesn’t happen overnight, it’s not like switch you can just turn on. You have to create the right environment, take the actions that moves the team towards the right direction and then hope that it will all work out and the team’s work culture will be the right one for software development. Every team will have it’s own unique way of doing things - it’s own culture. In the 18 years we have been running remote software teams hundreds of companies around the world we’ve seen hundreds of variations on team culture. Each one of them were different, some worked better than others but overall the environment for the team were more or less the same. So it’s like throwing a pair dice, but you can improve your chances of winning by getting the playing field tilt the right way! Here are those key factors in more detail:

Consensus driven

We usually start with a consensus driven decision process where all team members have equal say in major decisions for the software project or work process. The goal is to introduce by policy and with explicit management preference a process where a vote is taken on all decisions. There is not feel of someone having more power than other just because they are at different level of seniority or from different area of work (say someone from HR). This consensus driven culture will enhance the feeling within team member far from each other that they are individually valued and their thoughts are taken into consideration. We’ve found that it’s really easy for a remotely distributed team to start feeling that they have some disadvantage being away from a certain core group or geographic location. This is especially true when a certain portion of the team is onsite working together whereas the rest are remote.

Low red tape

There needs to be a strong concern to setup everyday work policies that require the least amount of red tape. The less cumbersome the process for say taking a holiday or reporting a project status is the less the team will feel that their time is being wasted. This is true for onsite teams (all of these points actually are relevant for onsite team) but it becomes very important for remote teams. Because of time zone differences or just the availability of the right person to move the process forward, any red tape becomes hugely frustrating very fast. This is something that’s totally avoidable. Remember that the goal is to take away as much as possible the “pains” of working remotely and red tape is the easiest evil to take away. You might have to fight a few battles with the management or the HR but it’s worth that fight.

Flat hierarchy

Software teams just don’t need a lot of hierarchy. Usually a team lead who looks after a bunch of developers (maybe with different levels of experience) is all that’s required to make progress. So, essentially at an everyday level there should be just 2 levels - the lead and the rest. On a reporting level the lead might have a layer or maximum two above her. But that should be it. Having a flat hierarchy just makes for a fast and efficient decision making ability and that creates an efficient team. Now in this mix when the remote team comes in, every problem related to complex hierarchy magnifies ten times. Every decision making start percolating on the layers, bouncing up and down the layers before something final can be achieved. So flat hierarchy is the only sane way of running remote teams. Ideally, individual remote team member should only have one level of management to worry about - so, for example, a remote developer should take instructions from just one team lead somewhere, etc.

Gelling events

These are events where the team members are brought together virtually and if possible physically to connect as individuals. We talked about some great strategies for gelling a remote software team in different post. These are essential in creating a culture within the software team.

Fun, relaxed and creative

This is for the overall tone of the workflows, communications and practices of remote work. By setting a tone of informality the management creates the feeling of ease within the remote software developers. This is essential for moving team forwards in creating the right work culture. In essence this is the background to all the other activities and actions that a company must do for a great software team that works remotely.

Remote software teams - get the team to gel

Remote software teams - get the team to gel

Remote software development teams is the new way forward for the software industry. This is a great solution for finding talents and skills around the world. As more and more companies take this route we have to adapt our work culture and process to find the right way of building team spirit and morale in these geographically spread out teams. This post is part 1 in a series about how to manage remote software teams well. In this part we put our top suggestions about how gel the team members spread out geographically.

Read More