“What we care most about is the end-result of the project, not whether the team is in the same room together.”
Unusual company structures are nothing new. Distributed teams. Flat-hierarchies. Blended workforces. It’s easy to toss around buzzwords and speculate how it would all work in theory – but SoftwareMill are out there showing you that, yes! It can be done, and it can be done really, really well.
Founded in 2009, SoftwareMill have quickly made a name for themselves as a company possessing not only world-class technical expertise and excellent project management skills, but the courage to do things their own way and prove that flat hierarchies are scalable.
In SoftwareMill’s case, it’s giving every developer the power to make decisions by removing management from the equation.
The simplicity of having a developer talk directly with a client made so much more sense than creating a feedback loop of developer > project manager > client, and then back again.
The accomplished two things:
There’s a lot to be learned from SoftwareMill’s example, and we’re going to show you how a well-organized, distributed team brimming with confidence and trust in one another can emulate their success.
SoftwareMill is among the top 5%
of all companies screened by Digital Knights
Pain Point: Communication
“It is very easy to “leave” your people feeling alone or left without any connection to the rest of your company.”
You don’t need us to tell you that communication is important. But we are going to tell you anyway:
Communication. Is. Important.
SoftwareMill found that encouraging an informal structure to their daily meetings allowed the team to learn what makes each other tick, revealing more about each individual on a personal level, and ultimately allowing everyone to understand and communicate with one another better – including their clients.
Additionally, by introducing an informal structure it gave the team a way of comfortably voicing their concerns. In a high-pressure environment it’s difficult to get people to say what’s on their mind, and ultimately it’s this suppression that causes these lapses in communication in the first place. Introducing a ‘looser’ feel to how everyone communicates puts people at ease and removes any obstacles that would have otherwise stopped someone from voicing a concern in the first place.
Team size dictates optimal setup
In their first year and half, SoftwareMill employed a routine of daily standups following a scrum methodology, and usually following the same pattern:
- What did I do yesterday?
- What am I doing today?
- Is there anything impeding my work?
This worked for SoftwareMill, as long as the team was small. Once the team grew to ten people the meetings got longer and longer, and quickly became a bore. Despite the daily contact nobody was learning anything about their coworkers. Take a more informal approach to learn about each other, and not just what they’re up to in their work.
Have a real conversation
Body language makes up 55% of our overall communication.
When we have a conversation with someone in person, there’s so much going on besides what’s being said.
SoftwareMill’s own findings confirm this, who discovered that they need to see other people for it to feel like a proper conversation.
The problem is finding the right tool to facilitate this kind of online conference with video, that can also support a larger number of users simultaneously.
The answer is that, no, there isn’t the right tool per se, but the right tools. Plural.
SoftwareMill combine TeamSpeak with Slack to form a virtual office with a general channel allowing company wide comms, and chatrooms for projects that allow collaborators to chat in real time. Slack gives them a repository of project info to search through when they need it, and TeamSpeak’s voice activation is especially useful for developers, whose hands are almost always on their keyboards.
Their daily standups take place over TeamSpeak and BigBlueButton, and on the client side they’ve found Zoom or Skype to be the most convenient.
SoftwareMill’s communication methods have been developed over years of trial and error, so learn from their mistakes – and their wins – and level up your remote communication strategy.
Tools they use:
- Slack – messaging / chat communication
- BigBlueButton – video streaming
- TeamSpeak – voice communication
- Confluence – an enterprise wiki for documentation and knowledge sharing
- Trello, Jira – agile project management tools
- Skype, Hangout, Zoom – standups with clients
- Join.me – pair programming tool
Other necessary tools:
- Git – a flexible source control system
- IntelliJ IDEA – the best Scala/Java development environment
- TeamCity, Jenkins – for continuous integration and testing
- GitHub, Stash, Codebrag – tools for code reviews
Don’t be overwhelmed. You’ll find what works for you within your team, and that list should get you started.
Pain Point: The Right People
Distributed teams mean that you can feasibly hire the best people available, irrespective of location.
Suddenly, the right people with all the skills and competencies you’re looking for are viable, without the headache of relocation. People, generally speaking, like where they live, don’t enjoy commutes, and will choose companies that are compatible with their home life too. Everyone’s a winner.
Finding the best developers and ensuring they’re a good fit is a question of due diligence. Distributed teams also require a business acumen to complement technical brilliance, and preferably validated by reliable sources. Due diligence programs, like the one offered by Digital Knights, includes checking: technical expertise, code and documentation, customer satisfaction, external communication, company culture, and other key elements.
But despite access to top talent, the absence of a physical office is not without its limitations.
It may be highly productive to work from home, according to Stanford, but real life gets in the way. Remote working requires self-discipline. Ask any freelancer, or digital nomad. It’s crucial to establish a rhythm to your working day – but this doesn’t just mean setting a 9-5 schedule and leaving it at that. Flexi-time is an attractive and often expected part of working in a distributed team, but setting expectations about when a task should be performed is essential.
There is a massive upside to no physical office space and – you guessed it – fewer overheads. SoftwareMill reinvest the money they would’ve spent on having an actual office and redistribute it into better training, employee benefits, and the best equipment and tools.
SoftwareMill, despite being distributed, still practice pair programming.
For the uninitiated, pair programming is an agile software development technique in which two programmers work together at one workstation. One writes code while the other reviews each line as it’s typed.
Screensharing and a method of interacting with each other is all that’s required to effectively pair program, and solve problems before they’re ever an issue.
SoftwareMill is a company that shares. The team welcome feedback and are all too happy to share their experiences for the benefit of everybody. (Including clients).
If you have dedicated channels within a communication platform where you share observations, problems, or just industry news, then people will discuss, learn, and grow. Within this is the ability to test new solutions, conduct further R&D, and allows a better sense of preparation to more effectively complete projects to clients’ satisfaction.
Another way in which SoftwareMill stimulate an academic streak is through reading clubs. They find it a powerful way of sharing observations on a chosen text. Seminars at university were always the place where you learned something new, and recreating that environment within your company is highly recommended.
Retros help you learn from your mistakes, but also help you recognise your strengths. A good team is able to say, “sorry, we messed up”, or “yes! we did a great job.”
It may seem more difficult to conduct a retro within a distributed team, but, like everyone else we’ve talked about so far, it doesn’t have to be.
How SoftwareMill conduct a retrospective:
Use an online whiteboard, and get your clients to pitch in, too.
CoSketch and Twiddla are great tools for getting your team to draw and express their sentiments toward a finished project in a fun and accessible way. But, like much of what we’ve learned from SoftwareMill, it’s not the tool but the tools that make or break a distributed team.
Project management tools can be repurposed into skeuomorphic methods of conducting retros. It’s very visual and a faithful recreation of what a whiteboard tends to look like after an intense retro, which works for some people, but not for others.
Remote working is already transforming the workplace, and most of the data coming from this shift is pretty positive. It’s up to us to make the most of this game-changing method of working by doing it right.
Setting expectations and putting the correct processes in place will allow you to take advantage of the distributed model and allow you to:
It’s hard, but if SoftwareMill is anything to go by, it’s possible, it’s effective, and its potential is enormous.
SoftwareMill is among the top 5% of all companies screened by Digital Knights.
One of the most sought after employee benefits today is a flexible work schedule and environment. That includes all the old and new buzzwords like home office, flextime, telecommuting, digital nomad, and remote working. Apart from compensation, a flexible work setup is among the first things a job seeker looks for in the market today, and this comes as no surprise. Technological advances have long been paving the way for the remote worker to accomplish everything at a distance with cloud based tools, real-time collaboration platforms, team messaging applications, and advanced video conferencing.
The natural progression to digitalize the workplace has led to as many as 43 percent of Americans working remotely at least some of the time in 2016. Overall, most of the advantages to the employee are easily recognizable, and they include:
While the benefits on the individual are strongly pronounced, the impact on the company is not always so clear. Significant brushback arguments often accuse remote working allowances to cause unreliable results, inconsistency from too much rescheduling, slower outputs, stifled teamwork due to less physical presence, and sacrifices to company culture. Nevertheless, many employers that embrace flexible working environments (software development companies in particular) are finding that the positives far outweigh the negatives. Here’s what many of Digital Knights approved teams are saying they gain from it:
Arguably the biggest driver for companies to offer flexible working options is the impact on employee retention rates. A report from the New York Times stated that “flexible scheduling and work-from-home opportunities play a major role in an employee’s decision to take or leave a job,” and Thrive Global says according to a study by the Society for Human Resource Management, “89 percent of companies report better retention simply by offering flexible work options.” In an industry like software development where experienced developers are hot commodities, flexibility has become an integral part of the employment package.
Giving employees the freedom to make their own hours has lead to an increase in productivity for many teams. When it comes to agile development, it’s not a necessity for everyone to be working on the same thing at the same time. Employees can decide when to work based on what best suits them – some people are morning people while others are night owls. Digital Knights teams have expressed that employees who feel free to control their own schedule produce higher quality work more regularly.
If employees are happier in their work environment then they are likely to be more engaged. Sara Sutton Fell, founder of Flexjobs, said, “Employees who feel empowered to structure their work and personal lives according to their needs are more satisfied. In fact, when asked whether they’d rather have a flexible work environment or a salary increase, professionals overwhelming choose flexible work” (Source). Teams within the Digital Knights network have backed up this sentiment, noting that if people feel trusted with more freedom, they also feel more respected and in turn become more engaged and willing to help with things outside of their direct remit.
Companies that embrace the offering of flexible work and utilize the tools to their advantage have fewer reasons to limit their recruiting geographically. This can provide massive benefits on the whole as it opens the door to more talented individuals and can turn into a strong culture that attracts other great people. Given this flexibility, it also grants companies the opportunity to work with talented individuals who can’t support traditional 9-5 roles because of disabilities, family responsibilities, or other reasons.
Taking everything into consideration, it’s important that flexible working is not only offered as an employment perk but that it also works well for both parties. Individuals need to be ready for the added accountability when nobody is watching, and the company needs to update its processes to handle a more dynamic environment. Everyone should have an understanding of what kind of jobs or tasks make remote work a better option, and the company needs to take the necessary measures to ensure that communication, company culture, and responsibilities are upheld. Moving forward, all signs point to flexibility becoming an even bigger mainstay in the the workplace.
For more tips on workplace transformation, read How to get the most out of remote teams in an agile environment.
Digital innovation is risky business, particularly when it calls for finding outside software development help. Unfortunately, that’s usually the case, as few companies have teams of developers skilled in new technologies waiting around on the bench.
Finding a new technical partner is a challenging and time consuming task, with or without a background in IT. The right choice is often make-or-break when it comes to budget and market opportunity, and the wrong choice can be a crushing blow to the entrepreneurial spirit.
In an effort to combat this struggle, Digital Knights has evaluated hundreds of software development providers and collected a remarkable amount of data behind their successful partnerships. Of course, not everyone can replicate this body of work in their search for tech talent. When it comes down to it, most people that have the technical expertise to thoroughly evaluate prospects don’t have the time, and most people that have the time don’t have the expertise.
That said, while Digital Knights has developed its own winning formula for putting fruitful partnerships together based upon the intricacies of this data, any individual can get started with these key questions:
A tech partner with a team history of working together is going to be more predictable and efficient at getting started than newly formed teams. Groups of individuals that haven’t worked together previously have to find out how to work well together first before they can find out how to work well with a new parter or client.
First of all, language barriers are as real as the time it takes for a project manager to translate to a developer and back to the client – even in the same language. Besides ensuring that spoken language skills match up to avoid misunderstandings and delays from ambiguity, it’s also important to find out what kind of communication tools the team uses. If the team or the client is committed to using a specific communication tool or platform that the other is not familiar with, somebody has to learn something new.
Clear documentation makes for high levels of transparency and, in turn, confidence and trust. It also safeguards both sides against potential misunderstandings that may arise about decisions and agreements made during the project at a later date.
Some teams are better suited for the creative phase, and others are fit for the large-scale execution. More often than not, an agile and fast-moving tech partner is more equipped for ideation and concept stages to build MVPs. Teams with more regimented styles, on the other hand, are solid bets for projects in the scaling and maintenance stages since they’ve been through it several times before.
What are the working hours like for the team? How often and in what way do they supply feedback? Do they encourage professional development? Do they socialize together outside of work? None of these questions individually may be especially relevant, but taken together as a group allows for a greater sense of understanding and compatibility. Teams that operate in similar ways and have complementary cultures gel with the work environment of their clients far easier than those with clashing cultures.
There are too many providers out there who stand on promises alone. A hearty competitor analysis will help weed out the red flags, and produce a few decent price quotes for comparison along the way.
Examining existing code is essential, even for the non-technical. Enlisting the help of an expert or a friend is well worth the favor, as a code review is a sure-fire way to check that their work is clean, tidy, and sound. It may also hint at the level of experience they possess.
Testimonials and case studies only go so far. Asking for references and calling them up is a foolproof way to verify claims and ask specific questions. Ask those who have worked with them previously things like: Did they stick to budget and timeline? What can I do to prepare to work with them? What should and shouldn’t I trust them with as a tech partner? How did providing feedback go?
Utilizing these questions as a checklist is a great way to get started in the search for a tech partner. While it ought to provide a base of understanding for making informed decisions, this is certainly not an exhaustive list. Digital Knights welcomes anyone looking for a technical partner to get in touch for assistance, and naturally, the Digital Knights network of approved partners is a great place to look.
To read more about evaluating software development providers, read The must-haves to consider when choosing a tech partner.
By Nenad Bozic, Co-Founder & CEO at SmartCat.io
Prior to forming SmartCat, my partners and I had vast experience working with (and for) traditional web development companies. When it came time to start our own thing, we tried to apply the same processes and steps to build a data science team. It was quickly obvious that this would be a long learning process, and we needed to adjust our way of thinking if we hoped to bring AI projects successfully into production.
What made the transition even more of a challenge was the team makeup itself, consisting of engineers and scientists from different backgrounds, speaking completely different (technical) languages. This is the story of how we’ve gotten to where we are today. Having said that, this is not a silver bullet formula since the field is changing rapidly and we react to changes on a daily basis ourselves.
Our vision was to build a Data Science company, helping businesses solve their problems by using smart solutions. Big Data was gaining popularity, and everybody was reading success stories about how machine learning and AI solutions were making companies thrive.
In our early days, most of the companies that contacted us were saying the same thing: “We are collecting data and want to do something smart but we do not have a clear vision. Can you help us?”
This was the inspiration that led us to offer business insights as a service. Here, we aimed to help companies utilize their data and data specifications to perform exploratory analysis to gain key insights and identify firm conclusions, visualizations, and ideas for the future. Unfortunately, while we saw a lot of value in our offer to help optimize business insights and decisions, most companies decided that making sense of their data was not a big enough priority to follow through.
On the other side of the coin, however, our data engineering and data ops team were in high demand. Recognizing the power of data, companies wanted to equip themselves with the right infrastructure and tools, so we helped in building data processing pipelines and storage solutions.
For this reason, our data science and data engineering/ops teams were working on different projects without much collaboration at the time.
Elaborating on our vision, we wanted to run a company capable of offering end-to-end data science solutions. To us, this meant working on initial ideas with the client, then running workshops with them to create a clear path and action plan, and finally doing all the prototyping and integration. The problem was, those projects were nowhere to be found. We remained patient since we knew there was a gap in the market, and companies that were not big enough to have an internal data science team could benefit from our expertise.
Fast-forward a year down the line, when our long anticipated end-to-end project appeared; a system that combined user analytics and real-time offers to create highly personalized recommendations. All in a single solution.
Finally, a project that was the perfect task for the data science team. Real-time offers were something our engineers had to solve on a daily basis, and since it also had to run on a reliable infrastructure, it was a perfect match for our data ops team to dig their teeth into at the same time.
But things didn’t go as smooth as we hoped.
Lesson 1: Involve the client in all phases.
As we started the project, we expected the first phase to be easy. A single data scientist started data exploration through Python Jupyter notebooks. We wanted to visualize data, outliers, trends, figure out size and amount of data. Absolutely confident in our ability to understand the problem, we hardly involved the client. We attained insights, plotted several graphs, and composed a beautiful document filled with features and ideas about the implementation phase.
Eager to present our findings, we scheduled a call, and that’s when it became abundantly clear to both parties that we did not involve the client enough.
Some findings were not relevant for their domain or their company and we missed important details. We now had to throw out half the report and go back to the drawing board. This was a serious wakeup call to get off our high horse, take notes, and learn our first lesson the hard way.
The second report we prepared was much better, and the client was very happy with the results. We moved forward with one of the proposed approaches and started with prototyping. Again, our lone data scientist got to work. After trying a few different algorithms before settling on one that made the most sense and gave the best results, we created a web demo and the client started testing. Satisfied with the results, we all moved on to the production phase.
Lesson 2: Involve data engineers with data scientists early – even in the prototyping phase – to avoid double work.
The production phase, in our minds, should have been easy; We had the web demo, so all we needed to do was make the API and integrate with the final solution. We severely underestimated this phase.
The prototyping code was not ready at all. It was done only by data scientists (I mean no offense), and that means they were focused on clustering users and showing the best possible recommendations to each user. They were all about precision and if a test set showed above 90% accuracy, it was considered a good job. Thinking about the amount of users, ways to integrate, dataset size, performance, availability of the systems around the data science solution is not their usual strong suit, and here it was all overlooked. One example is using Flask as Python web framework. It is good for this phase; putting a demo together is quick and easy, but problems occur with more than one user. If this had been done in Django, we could have avoided double work. Also, working with database dump is not the same as working with the database itself. The individual is not not just a user of the system and this must be taken into account.
Lesson 3: Do more internal knowledge sharing sessions and adjust the vocabulary and processes.
The way we communicated about problems was not pretty. It took us a while to even explain to each other how the system would even work. The data science team could not grasp how data was ingested into the system, what should be cached, or what hurt performance, while data engineers kept asking how the whole pipeline for calculating recommendations worked. We spoke different languages. When the data science team used the word “bean,” the data engineering team used the word “bucket,” and both teams were talking about the same thing. SmartCat paid the price for not working closely together and not sharing enough knowledge early enough.
Lesson 4: Do not underestimate the complexity of the system and speak upfront with the client about all the details which are needed to be production-ready.
Another realization during this phase was that we were building a very complex system, and that can’t be taken for granted. It’s imperative to do automation and monitoring well to maintain a successful system. That’s just a fact. In addition, it’s important not only to keep track of tools and infrastructure when working on data science systems, but also to closely monitor how the algorithm works in production (click rate, goals achieved, revenue generated). These are the things we know now and say upfront to the clients, but we certainly did not know them back then.
Today we know what types of engagements exist, which steps are needed for each phase, and the team members required to successfully finish a project. The first phase is vital; make sure to spend time to understand the client’s needs and business, with communication being the key ingredient. Face-to-face workshops help build a strong relationship with the customer. Show your clear understanding their problem, and have a implementation plan in place. SmartCat learned a lot from that first project and it led to the clearly defined process for data science projects that the team has now.
This is the foundation of all other phases, so take the time to do it right.
Today, Smartcat divides projects into 3 groups: Business insights as a service, prototyping, and production. For each element, it is important to involve people from different teams working together to have successful delivery. We’ve also developed an additional, essential role on our technical team that we call Data Wrangler. This is someone who isn’t a data scientist with rich knowledge about algorithms and approaches, but instead, someone with strong business knowledge, a professional analyst armed with Jupyter and Python knowledge. He/she plays an important role in the initial phase, works with clients in the business domain, and extracts key findings from data. The Wrangler’s quintessential goal in the initial phase is to come up with the best possible idea to improve the business of our client.
We have also improved our internal communication: Knowing that a bucket for an engineer is a bean to a scientist, and learning the vocabulary of our teams has made us more efficient. Having the ability to explain solutions to different team members who don’t “speak our language” allows us to do a better job in the end. Adjusting our language to better suit business stakeholders concerned with the bottom line is not always easy, so we started practicing internally. As a result, even our diagrams and visualizations look much better now, since people from different teams can understand what is going on more naturally.
I’m definitely proud of how far SmartCat has come after the way we started. Not everybody has enough room to learn from their mistakes, so we were fortunate there, and we learned a lot. Our successes since then have been really encouraging, including the approval to join Digital Knights, but there’s still a long road ahead of us.
As I said at the beginning, this is a field which is changing all the time, so I expect this is not the end of our learning curve. What is certain is that we are a much better company now than we were two years ago, thanks to projects done with mixed teams.
SmartCat is one of Digital Knights’ latest approved development partners. This post is part of a guest series with several Digital Knights partners to share their unique stories and insights.
By Polina Tibets, Head of Tech Due Diligence at Digital Knights
Highly qualified experts and long-term cooperations with Western and Arabic companies have made the information technology industry one of the most important drivers of the Serbian economy today. Already, leading digital companies have either established development centers in Serbia or have outsourced services to local firms. Those of us at Digital Knights are no strangers to highly talented teams and individuals from Serbia, but several less obvious factors help the nation stand out as a whole in the IT world.
In 2017, The Serbian Information and Communication Technologies (ICT) sector exported 750 million EUR, ranking the country as one of the 50 biggest software exporters globally. With a year-to-year growth rate eclipsing 25%, ICT is among the fastest growing sectors in the country and since Serbia is not a member of the EU, most home-grown talent stays in place. On top of this, Serbian people are exceptional when it comes to English language proficiency, ranking third worldwide (behind the Philippines and Norway) and have been in the Top 5 globally for more than five years.
With such talented remote teams, Serbia is fast becoming one of the most in-demand outsourcing destinations in Central and Eastern Europe. The country’s engineering education is particularly strong, with almost a third of university graduates coming from technical schools. ICT is currently being taught at 37 higher education institutions, while demand for placement in these programs is ever increasing. Locally, salaries in software development services are increasing as well, however Serbian companies and professionals are extremely competitive with other established “outsourcing” destinations. According to the leading ICT portal in Serbia, STARTIT, there are:
• 11,500 developers (9,000 Java professionals as well as sub-specializations)
• 15,000 network and Internet engineers
• Web marketing professionals, designers, managers, etc…
Locally, entrepreneurs have risen to the challenge by establishing more than 100 software houses that work with 50+ different countries around the globe, host innovation hubs, self-fund startups, and support business partners. As the system further develops, more and more Serbian software companies may naturally appear in response to the rising demand.
The Balkans is one of the lowest cost regions in Europe in terms of software development services, especially compared to the Nordics. The sheer cost of living adjustment coupled with the competitive scarcity in places like San Francisco means choosing Serbia as a destination for developmental activities just makes economic sense. Skillful programmers with a Western European flair, high levels of deep technical knowledge, and impeccable English, combined with lower than average rates makes this a difficult destination to ignore.
Committing to the development of the economy, the Serbian government is focusing on stability and a predictable environment for investment and business operations, as well as accelerating growth and creating new jobs. Key players such as Google, Microsoft, SAP, and many others have taken advantage by establishing development centers in Serbia or outsourcing services to local software development firms.
The Serbian government has dedicated itself to encouraging growth in the sector and established a Ministerial Council for IT, Innovation and Entrepreneurship, with the mission to address any issues, support the industry, and enable faster development. The great demand for IT professionals globally and in Serbia especially has resulted in increased investment for expanding computer science programs at universities and improving the curriculum for IT in primary and secondary schools, ensuring a steady pipeline of talent. The IT Council is set to invest around 8.5 million EUR into the infrastructure and around 1.5 million EUR into retraining programs. The government’s plan during the next few years is expected to:
• Reach 1.5 billion EUR in IT sector net exports.
• Increase the number of skilled IT workers to 5,000 per year (from current 1,500) through educational initiatives.
• Invest more in the physical infrastructure of the IT centers in Serbia, mainly within universities.
• Reduce barriers of entry by changing the legal framework related to early stage investments, electronic payments and venture capital, introduce tax reliefs for business angels, and review IT industry grants.
Behind the scenes, Serbia is borrowing good ideas from outside the country as well. The Ministry of Public Administration is using the Finnish cultural model as a template for building an efficient tech ecosystem. The Embassy of Finland in Belgrade (together with the Serbian Innovation Fund) organizes local pitching competitions with the winner having a chance to participate in a 10-day long boot camp in Helsinki and attend conferences.
Cultural affinity – Serbia has a delicate balance and link between East and West, both on a personal and business level, which makes building relationships easier.
Time Zone – Serbia is situated in the same time zone as Western Europe (+/- an hour), which enables easy coordination of daily communication and meetings arranged during working hours. Time zone difference from East Coast is six hours, which makes overlap with clients possible at least for a portion of their working hours.
English language – The English language is mandatory through education in duration of at least eight years, and since they study at least 2 foreign languages, it is common to find professionals from all lines of work with excellent knowledge of German, Italian, Spanish, French or Russian.
Value – Clients can get relatively low prices in Serbia for the same high quality of work as in Western Europe or USA.
Education – Thanks to the educational system significantly focused on engineering and computer sciences, Serbia creates highly qualified and very capable young people with strong mathematical and logical background focus.
Several Digital Knights members visited Serbia in January to meet with tech teams and dev houses interested in joining (or already in) the Digital Knights network of approved partners. For more about the trip to Novi Sad and Belgrade, see what Domilé had to say.
By Domilė Janėnaitė, Head of Tech Partnerships at Digital Knights
Serbia’s rise as a key outsourcing nation has been on the cards for a long time. Cost-effective. Talented. Driven. There’s a clear trend in the quality of tech teams hailing from Serbia that undergo the Digital Knights tech due diligence process.
In January I went to Serbia with my colleagues Prags and Polina to assess prospective technical partners and to take a look behind the data, and learn just why Serbia was regarded as one of the most desirable places to outsource development in 2017.
We arrived in Belgrade late and drove to Novi Sad where Nikola Sologub & Nikola Isailovic from The Best Practice* awaited. The two Nikolas are Digital Knights ambassadors in Serbia and have spent the better part of 2017 creating awareness for Digital Knights and introducing us to what they consider to be the top-tier technical talent the country has to offer. This is the part of the job we love – traveling as a team and meeting other teams. It’s a privilege to meet and learn how our partners build their companies, how they establish themselves as industry leaders, thought leaders and pillars of the tech community. Short answer: processes and strong engineering talent. What’s apparent to us, is that tech talent here could literally work anywhere. If they were based in the States they would be working for Google.
Throughout the week, we learned why Serbia may have earned its reputation as a breeding ground for talented engineers, and the answer lies in its history of eschewing ideological education in favor of subjects that deal exclusively with logic and reason. Who knew a strong tradition of science and mathematics could prep a generation for careers in IT? In Serbia, engineering graduates account for nearly 33% of all university grads from technical schools whilst IT is taught at 35 higher education institutions.
Software development companies are well aware of this wealth of Serbian tech talent and have set up academies to attract the brightest post-grads. Promising students are invited to develop their skills and vie for placements at the companies who run the academies. It’s worth noting that it’s not just students invited to participate – budding developers learning outside of a formal education that want to try something new are also a mainstay at these academies.
Outside of the academy model, Serbian universities collaborate with software development teams on long-term projects. Med-Tech insights from developers have aided university medical labs in implanting medical electronics and controlling software – including a deep brain stimulating device that treats and works towards curing acute neuropsychological illness. Academia and the IT sector are intertwined, and working together to great effect.
When it comes to working culture in Serbia, employees are given great incentives to stay at their respective companies.
80% of the teams we met operate on a profit-sharing model, and most – if not all – are strictly flat hierarchies.
A surprising thing we found out during our trip was that a lot of development studios have their own spin-offs and businesses within businesses. Developing internal projects either to make their job easier, such as project tracking optimization, or to solve problems in the local community, such as a lunch delivery service on a SaaS model, have gone on to become fully-fledged products and services.
The teams are active in their community using their considerable tech talent to solve problems where they live. The rest of Europe, and beyond, should be taking note.
“Our people understand that it’s all about building trust and providing value from the start till the end for each and every engagement.”
What this means for their IT industry is that they are able to build strong relationships with clients in Amsterdam, Tel Aviv, Dubai, and other tech hubs in both the DACH and the Middle East. Serbia’s historical significance as being center of the Ottoman and Austro-Hungarian empires give it the inter-cultural aptitude it enjoys and takes full advantage of today. Despite the distance, Serbian Technical Partners begin any long-term collaboration with a face-to-face meeting, laying the foundation for a lasting relationship.
Another surprising thing we learned on this trip was Serbia’s close relationship with the Netherlands. According to some of the teams we met, this relationship can be attributed to Levi9 – a Dutch multinational IT provider – establishing a development center in Serbia to gain access to Serbia’s engineers. It’s not just by virtue of Serbia’s geography that developers are forging connections all over Europe, but because of reputation too.
Serbia’s talent offerings are considerable, and the teams we met all say the same thing: give us your biggest, toughest problems that you have – we have the insights, and we are structured problem solvers. Bring it.
Three things we learned from visiting Novi Sad and Belgrade:
For a deep dive on the major factors that make Serbia an outsourcing destination, click here.
*The Best Practice work with corporate innovation hubs on utilizing blockchain technology, and work intensively on matching business needs with tech in this fast-paced area of digitalization.
**Image: VegaIT office in Novi Sad
When it comes to developing a digital product, there are generally two ‘traditional’ approaches that come to mind: One involves the long, arduous process of recruiting and hiring a collection of new employees for in-house development, and the other entails cobbling together a one-time project team made of freelancers to get the job done.
The first allows for a technical and cultural fit at time-consuming and bureaucratic costs that typically add more unnecessary work than value, and the second brings speed and liquidity but comes with significant risks of mismatch, conflict, and failure.
For the best of both worlds in getting a project done efficiently – to a high standard with developers who have a proven track record – established software development / tech teams are the only way to go. They’re also easier to find than you may think.
A tech team is a group of people that build digital products as part of a boutique software development company or studio and consists of frontend and backend developers, programmers, QA testers, UI/UX designers, system architects and project managers, amongst other roles that all work together to create things like mobile and web apps, IoT systems, web platforms, and cloud computing software. These teams come in all shapes and sizes, so it can be somewhat tricky at the start to narrow things down. However, in Digital Knights’ experience of testing well over 300 teams with countless variables of technologies, processes, and sizes, there is a single framework that shines through the best teams:
On average, the ones worth considering are 30 – 200 people in size, have worked together for 5+ years and have completed over 100 projects (so they are well established and have a really good understanding of how to work together across several industries and technology stacks). Naturally, not every project needs 200 people with every role imaginable, but these teams are equipped to form smaller, tailor-made project teams for the size and type of digital product.
Because there is no need to tack on the additional risks of bringing more variables and unknowns into the equation when established teams have proven time and time again that they are just better. Hiring an established team means you get a team that is just that – established, so why bother with chance? There are better ways to gamble money away (and definitely some more fun ones).
Nevertheless, cobbling together groups of freelancers for a one-off project is a strategy that a variety of companies still engage in on a high-risk, high-reward model. The freelancers come together for the duration of the project and try to build whatever product is commissioned, and then they’re all sent packing. While this seems like a logical, easy way to set up a team quickly, people with no previous experience working together is often a recipe for total disaster and project failure as issues arise as they develop processes, workflows, and learn each other’s tools and preferences on the fly. Besides having to figure out how to work together productively, the new group has to figure out how to work with you, most of all. On the flip side, established teams have this sorted out already and can work on solving your problems instead of solving their own problems of how to work together.
Hiring an established development team is often a cheaper alternative to hiring a group of freelancers when you take into account the full cost and individual overheads of time, money, and energy on top of the initial financial outlay. Freelancers often demand contractor’s rates and the cost quickly adds up, not to mention the effort it takes to recruit and interview decent freelancers! They also need to do their own admin tracking which builds into their fees so you could end up paying for time that isn’t spent working on your project for each member. Established teams can hit the ground running faster as they don’t need to spend time setting things up that they’ve already handled countless times so nothing is lost while they find their groove.
From suggesting work tools that may bridge the gap while working remotely to suggesting better solutions to the challenge your product is solving, good teams will often act as strategic consultants because of industry expertise. By drawing on past experiences with other projects, they are able to offer advice and direction if they feel there is a more efficient way to do something or a better solution to a problem. Collectively they have more experience than a group of freelancers and will use this to make the project run smoothly and quickly, saving time and money in the long run, but more importantly understanding the product vision and market fit to tackle problems with results instead of just writing code.
Partnering with an established team gives you a project specific working relationship dedicated to you and you alone. The constant availability will ensure that your project is completed to deadline. It is also easier to gauge a fit by checking portfolios of previous projects and examining scopes, deadlines, and final results. Freelancers, however, are often involved in multiple projects at the same time and their own individual impact on previous product outcomes is limited. There’s real added risk when each freelancer’s working hours and personal schedules might have unexpected incompatibilities that disrupt the development cycle.
Hiring an established team also means getting expert advice on the realities of the requirements when it comes to the different positions needed to develop a given project. Then, all those pieces are available in one familiar place. The onus is not on the client to know what roles are required to develop certain projects as the team will be able to advise on this and provide good people for the job once it has been scoped out.
Altogether, while the ‘groups of freelancers’ model was initially a plausible advancement for building digital products in a timely, cost-effective manner, the arrival and availability of on-demand, established tech teams is a definitively better solution. At the end of the day, less variables makes it easier to judge, and it’s easier than ever now that discerning what to look for is far more clear and accessible. It’s time to move on from the headaches and risks of freelancers and embrace verified, established teams as technical partners for your next project.
If you’re an innovating corporation, startup, or enterprise that would like to learn more about using verified, established teams for your next project, get in contact with Digital Knights.
Finding a tech partner to develop a product can be a daunting task whether it’s the first time or the tenth.
Choose the right partner and your project could supersede your expectations.
Choose the wrong one and you could pour money down the drain.
With stakes that high it’s crucial to get it right. So what exactly should you be considering? Start here:
First things first, don’t waste your time recruiting a mixed bag of individual freelancers that may or may not get along with your product vision as a whole, let alone each other. That’s an extra risk you shouldn’t have to take just to find out. Go with existing, experienced teams and take the following into account:
The first question to ask is whether you want a team with a wide-ranging yet cursory skill base, or a team that’s more limited but has true expertise in one or two specific areas. There are pros and cons to each so weigh them against your perceived needs. The generalist style team will do a variety of tasks well and can handle projects that require developing a multifaceted product. For example, a handyman who knows about plumbing, electricity, and carpentry can complete many small jobs satisfactorily for constructing an office building. He’s a reliable ‘jack of all trades, master of none’ that you would comfortably hire for his versatility, but you wouldn’t hire him to install an elevator. That’s the job for a specialist, since the consequences of cutting corners in such an area can cause major problems and jeopardize the success of the final product.
When it comes to software development the ideal tech partner is a combination of both, and most specialists have to be generalists to some extent. This is called a T-shaped skill set where the “top line is the general skills held by that team and the vertical line is the area where they have very specific skills” – Who will dominate the future of work? Specialists or generalists?
When looking for a partner, try to find a team that is closest to specializing in your biggest core need (the one that can’t go wrong), while still holding strong generalist characteristics.
“In order to acquire the skills of a specialist, a great deal of general knowledge is required and accumulated along the way.” – Simple Programmer
To begin prioritizing the general and specific skills required for a successful partnership and final product, it’s important to have a clear idea of the full scope and desired outcome of the project. Don’t rush into development until the business plan and project briefings are fully thought out and complete. A solid understanding of the market, business stakeholders, targets, goals, and competitors will make it much easier to identify which teams have the most experience developing on similar execution strategies. In addition, putting together a reviewable collection of the business plan, market analysis, competitor landscape, lean analysis (for startups) and go-to-market strategy, user/target persona, internal and external KPIs (for pre established companies) will help you determine which teams are properly prepared even if you’re not the most technical.
Establishing and properly emphasizing a competitive edge can be the difference between success and failure. Take a close look at the project analysis materials and figure out exactly where the product needs to be different by the time it launches. What is the unique value proposition (UVP), and how can the product highlight that on its own? Does it need to be strong technologically? Does it need to stand out visually within an industry or is it a unique process that’s important to its success? What gives the final product an offering that the current market doesn’t address? What are the current trends in the industry vertical which are relevant to the project? Make real conclusions about these questions and apply those priorities to address the big three verticals that come next: Industry, Technology, and Process.
Industry comes into consideration as an important factor when building something to introduce in an already competitive environment. This is the industry you are trying to disrupt and the products you hope your technical partner understands, such as Automotive, Education (EdTech), Finance (FinTech), Travel, or Insurance (InsurTech). Teams who already have industry-specific development experience are more likely to be familiar with concepts and common technologies to make informed decisions as strategic consultants instead of just developers. They’ll be aware of useful tools and predecessors, they’ll have an idea of the competitive landscape and the existing players in the market, and they’ll know what the long-term process involves. To become a new market player from scratch, an industry veteran team can save a lot of time, money, and heartache. Nevertheless, if you’re already an industry experienced creator yourself, consider choosing a team with a higher level of expertise in one of the next two verticals if the duplication of the knowledge base would provide little value.
Development teams tend to specialize in certain areas of the technology spectrum out of a natural gravitation over time. If you identified any one technology or tech stack in particular as a competitive edge priority, then this vertical deserves serious attention! Technology encompasses a huge range of features and within each of those even more decisions need to be made in order to properly execute the project. The first decision is which new domain type are you making – mobile app, web platform, internal company software, database, cloud computing, data science, or IoT? The list is huge! But once you have this nailed down the hard part begins. Which is the best way to execute the development of the project? Which coding language do you need? Which framework? What sort of database? Do you need a cloud platform and if so, which? How much and what sort of testing is required? In the end, think back to the matter of generalists versus specialists. The more specific the technological needs, the more specialized your partner better be if you plan on succeeding.
Look back at the project analysis to narrow down the key focus for the given process. Do you want to create a proof of concept? Do you have that already and want to build something mainly to scale? Do you need to iterate on product-market fit? Do you need to build up your existing team so you can run faster? Process is the categorization of projects based on where they sit within the innovation lifecycle in order to line them up with teams that are the most suitable for the current stage and can develop the product with the next stage in mind. Teams with different workstyles may perform better at different stages of innovation. For example, projects focusing on ideation, brainstorming, wireframing, and prototyping often require a super adaptable, agile team that can produce and test MVPs in sprints. Teams further along in scaling and maintenance often have a structured style to prepare more organized builds and handle bureaucratic elements of the project. Find a tech partner with a history of developing for your particular stage.
Once you’ve established the priorities, goals, and executions strategies for each vertical, the list of qualified partners should be remarkably short. At last, it comes down to making sure both parties are compatible in culture and workstyle for smooth collaboration whether in-house or remote. That said, many creators are unsure of what questions to ask when it comes to tech team culture. Here are a few big ones: What communication tools does the team use and are they different from yours? What is the team’s desired depth and frequency of feedback sharing? What is the company structure like and will it be a complement or a hardship? Is continuous learning encouraged? Does the team participate in group activities? Answers to these questions can reveal whether the software development house encourages employee engagement and growth and whether the structure of the company is hierarchical or flat. A flatter company structure is often a good indicator that those working on the project will take their own initiative and approach issues proactively throughout the project duration.
Choosing a partner for software development and digital projects is just that– a choice. Still, that choice can have major implications when it comes to time, money, and success. Digital Knights helps innovators make these choices on a regular basis. Take the above considerations into account ahead of your next project, and get in touch with Digital Knights to work with approved teams.
Agile is a time-focused, iterative work style philosophy that allows teams of software developers to build a product step by step and deliver it on a set timeline. One main benefit of this methodology is the ability to adapt and change at any step depending on feedback, market conditions, and corporate obstacles, for example. An approach like this allows teams to react quickly to supply only relevant products to the market. Agile is most commonly used to build software however it is appearing more and more frequently as a work style within larger projects in other areas of businesses such as new product development and even marketing campaigns.
Agile was initially developed to be used by teams that were physically located in the same place. They worked together with the overarching idea that “the most efficient and effective method of conveying information to and within a development team is face-to-face conversation.” (Agile Manifesto)
However, this is no longer the case. As the digital landscape evolves, companies are adapting the way they innovate — and that commonly includes working with remote teams who are experienced in distance development and can benefit from a borderless environment within their own team. This means that not only can product management teams and stakeholders benefit from using a remote team in an agile environment, but also the remote teams themselves can be split up to take advantage of modern execution strategies without missing a beat.
Although the agile style of work was developed for teams in the same location, decentralized teams are using it to the same level of effectiveness. There are many benefits to having teams and members across multiple locations.
Naturally, there are some drawbacks, too. The agile style of work in a decentralized environment has potential challenges brought on by the distance arrangement.
With proper preparation and respect to a few considerations, working with distributed teams in a collective agile approach is tough to beat in the digital innovation world.
Build rapport and company culture
It turns out that a good, time-honored focus on interpersonal skills and process discipline – the nuts and bolts of collaboration – is key to driving strong results from virtual teams.
– Forbes, Building Virtual Teams: Strategies For High Performance
Nothing beats meeting each other face to face. Body language makes up 90% of our communication so having team members meet each other face to face will help to form relationships faster. There are lots of video conferencing and online messaging tools available as well if physical meetings are not possible.
While you can’t have a physical community, create an online community that promotes a culture of learning, accountability, code ownership, and an environment where team members want to interact (and do so voluntarily).
Communicate well, not necessarily often
When working remotely it’s easy for the finer details to fall through the cracks. Decision-making often happens quickly for those team members that are physically together. If only the decisions and not the rationale are shared with the rest of the team, the risk of miscommunication and waste increases. Communicating in an effective, need-to-know basis helps keep standards high and move quickly as long as expectations and instructions are crystal clear.
Ensure you have the right tools in place to help communication flow freely and transparently.
From Clubhouse, Trello, and Asana to Slack, Skype, and Telegram, there’s an array of tools and platforms out there for project management and messaging. It doesn’t really matter which tools and platforms the teams use together, but the level of effectiveness in which the team uses them does. Distributed teams must ensure that their communication and understanding is transparent and visible.
Make time for both sides to ask for feedback throughout the project.
This allows communication to remain open and ensures that each party has the opportunity to clarify anything they’re unsure of, whether the process is working and allows any issues to be resolved quickly so that work can continue at a fast, efficient clip.
Make the most out of overlapping schedules
When you have teams in multiple locations and time zones, maximizing the time that you have together is essential. Ensure that priorities are set clearly before the meeting so that important things are discussed and not missed and time is used effectively.
Be smart with meetings
Work out your optimal meeting time and duration by monitoring employees engagement throughout. If people start to disengage, consider whether meetings are too frequent or whether the topics covered are not relevant. If priorities aren’t getting covered, perhaps more time or an additional meeting is needed.
Consider rotating meeting times so that one team isn’t always affected by time zones and have to get up early or stay up late – if one team is constantly bearing a tougher burden it can potentially affect team morale.
Once each part of the project is completed, have demonstrations so that everyone involved can see where the project is at, what was done and what the end product looks like. This gives the whole team a chance to provide feedback and keeps everyone in the loop.
Have the right people in the right places
The order of the puzzle pieces matters, and this can be used to your advantage on a daily basis in terms of deliverables.If one part of the team is ahead of the rest and working on a key handover that the other members would otherwise be waiting for before moving forward, the project may progress much faster than if it were the other way around. If you have a decentralized structure, be conscious of where the teams for certain functions, departments and projects are physically located. Down the road, the way successful innovators look for talent may adapt to take advantage of this optimized approach.
By testing and observing a vast network of successful decentralized teams, Digital Knights collects insights on effective work habits and evolving methodologies that are instrumental in understanding digital transformation and collaborative work environments. However you may refer to decentralized teams (be it distributed, outsourced, remote, or something else) the best practices for an agile environment shine through when clear principles are aligned, tools are used properly, and a mutually beneficial structure is in place.
From bootstrapped startups to corporate boardroom tables, more and more people are asking questions like: Is our tech solid? Is our tech sound? Is our tech good enough to accomplish our development goals?
Nearly all industries have gone or are going digital, and nearly all industries are evolving around innovation–or at least they’re ripe for it. The subsequent arms race to find quality developers has led to greater risk and more confusion both at home and abroad, and as a result, people are more unsure than ever about what they’re really getting when they hire tech talent.
Enter tech due diligence.
Tech due diligence is a way to evaluate a given group’s technical capabilities and qualities necessary to build a digital product or software before a single new line of code is ever written. Performing tech due diligence follows a similar process to that of venture capitalists looking to acquire or invest in a company. In this case, the stakeholders are conducting a thorough examination of a development team and it’s environment to ensure both technical proficiency and overall compatibility. The result is a clear reduction to the risk of failure and a definitive pathway to successful collaboration.
The fast-paced digital landscape has led to increases in both the demand and the supply of tech resources. The problem is, these increases pay absolutely no mind to quality, which means the market is flooded with noise and fragmentation. And this is only set to continue. The demand for reliable tech talent has reached fever pitch and it’s no longer restricted to just the bigger players like Google and Facebook as more and more industries are becoming fully reliant on IT and CS related staff members.
“Software developer jobs are expected to grow 17% from 2014 till 2024”.
Amid this growth, the recruiting struggle continues. This report from McKinsey highlights the hardships companies face to hire quality tech talent in a scramble to upskill their teams–and this is a trend set to escalate. However, it’s not just that. At the same time that more and more less-than-capable developers are offering their services to the market, the competent ones are also having trouble finding projects that are interesting and valuable themselves. As a result, good businesses, startups, and entrepreneurs are losing time, money, and effort by enduring rotten partnerships, meanwhile the truly great technical counterparts are struggling to differentiate themselves in the market full of lesser competition. What does this mean? It means that on both sides, the need for third-party verification is at an all-time high.
Well, Digital Knights is, for one.
Although there may be distinguished individuals performing tech due diligence on a for-hire and case-by-case basis, Digital Knights does it on a larger, more accessible scale. By reverse-engineering a ‘teams-first’ approach to test hundreds of boutique software development teams across the globe, Digital Knights has already put in the time and legwork that other companies don’t want to or simply can’t. As such, Digital Knights has established a quality assurance framework for digital innovation and software development in a world that has no real standardizations or regulations.
The founders of Digital Knights experienced first-hand what being severely let down by tech partners felt like and decided that enough was enough–there was just too much failure in the digital innovation space. Today, the company is both a tech due diligence powerhouse and an exclusive gateway to its own network of trustworthy and gifted tech partners. On a rolling basis, businesses and entrepreneurs come to Digital Knights for connections to approved teams for on-demand collaboration in building digital products such as mobile apps, VR experiences, and IoT systems. The result is a data-driven alternative to the failure-ridden market standard of IT outsourcing that instead boasts a project success rate of 98 percent.
On the flip side, tech teams themselves seek out Digital Knights to undergo its strict due diligence methodology–a custom-built process put together in a combined effort with industry renowned CTOs, serial entrepreneurs, and tech due diligence experts with over 20 years of experience in vested outsourcing. After teams undergo the rigorous six-week test, not only do all receive a full report detailing team strengths and weaknesses across various technical and non-technical categories (no matter if they pass or fail), but they also receive instructions on how to remedy areas that are unsatisfactory ahead of a reassessment as well as how to improve their own abilities to attract potential clients. Only seven percent of teams at this time meet the standards to become Digital Knights approved on the first try.
“The due diligence process was important to us for two reasons. First, we got an independent and honest review of how we as a company are seen externally and how we rank in both the technical and communication areas. It boosted our confidence and provided actionable suggestions for improvements. Secondly, we view the Digital Knights network of approved teams as an emerging mark of quality within the custom software development market.”
– Adam Warski, CTO, SoftwareMill
Tech due diligence is still growing as an integral piece of the innovation puzzle. When done properly, it erases risks and modernizes decisions for top executives, CIOs and CTOs, non-technical founders, and product managers.
If you have a digital project coming up, get in touch with Digital Knights for a consultation to ensure you find the right team for your company.