Ad exchanges are experiencing an unprecedented growth and the future looks bright for them. This is why so many are considering having their own, proprietary software. From a development point of view, besides everything else a platform should support, programmatic buying have these three particular complex requirements:
- Dealing with an incredible large volume of data
- Being extremely complex as they integrate several different roles, each with it’s own stack of partners and exchanges
- Needing to have a ridiculously short response time for each call (under 50 milliseconds).
So, there are several things you need to consider when selecting a team for building your programmatic software
- Have in-house video expertise. Ad exchanges want you to master technology such as: VAST, VPAID, HTML 5
- Have UI experts. Requirements are pouring in from all parts: traders, partners, clients. Building them one on top of the other is not a good way to go. This will cause confusion and frustration for everyone using the system. Careful consideration needs to be put into arranging stuff in the interface so that everyone can use the console intuitively and with maximum advantages.
- Have Solution Architects. You don’t want your system to crash from day one when real traffic is tested. Also, you want a system that after more components are built, has a decent maintenance time. Development time doesn’t need to double for any new feature.
- Have security experts. Their role is so important that they don’t even require a description.
- Have a Project Manager. With enough time and resources anyone can launch a product. Key is to launch it in time and within budget. You need a good person to stay in touch and connect the dots between all departments, make sure no deadlocks are in the way.
- Have System Administrator(s). At the data volumes implied by such systems, you need someone to constantly keep an eye on the servers, make sure they are always up and running at peak efficiency. Also, in case of a down-time problem caused by the server providers (i.e.: Amazon, Rackspace, etc.), you need someone who makes sure the they are aware of the problem. And doing their best to fix it ASAP.
- Have a company that has specialized internal departments. Training and assimilating new people is way easier when each department has its very specific delimited roles and requirements. Also, various team members, who run into a problem they cannot solve on their own, need to have immediate support from another team member they can call to help them out. Be it from a different department, be it because they are specialized in solving more difficult problems (i.e.: solution architects).
- Have a team that is backed up by a company-wide expertise. This is somewhat redundant, but it is important that you select a team that understands the value of the entire company expertise, not just any one single individual. A company expertise means that when a developer decides to leave for whatever reasons, the production process is not affected in any way. There is always someone else in the pipeline ready to replace.
- Have a company that has documented best practices and trainings for each and every technology in use for that platform. Tech-savvy companies with experience in launching production platforms have internal wikis of 1000 pages. And periodical internal training processes for each team member.
- Have a company that has recruiting processes. This might also sound redundant, but a company with processes takes care of being located near several profile Faculties for good talent pool sources, has a good establish HR branding in the location it runs its activity and always attracts top talent.
- Have a company in which the need for quality standards is an organizational culture. Top management maintains this. Their vision and care for each client is passed to the entire group. Each new member who is selected as part of the company must have this trade. We might also add that this is easily spotted in the initial phases of the project. If they say they can do it before knowing what must be done, most likely they don’t have it. If they take the time to understand, ask questions and provide feedback in the initial stages of the project, it’s an entirely different approach.
- Have a team of developers that understands and respects the value of milestones deadlines. We are all aware of a special type of developer who takes forever to even lock down basic project requirements and keep pushing back milestones dates. You need a team that understands the term execution. There are always special circumstances or unexpected technical issues that push back a deadline, but this needs not be a habit.
- Have a company who understands the value of good communication. We have yet to meet a person without excellent communication abilities. In theory. However, a really good communication is the one that is effective and can still find common ground between the business side and the technical side of each client.
- Last, but not least, have a company that actually has the expertise to develop and launch production platforms. We keep mentioning production, because a one thing is to theorize about a specific issue such as caching systems. And a totally different thing is to meet with it in a line of caching-related issues. Almost each new product has a variation of the caching issue. And not the same one repeated in the same manner. Best to have people who are technically creative and can address each particular instance of the matter.
Everybody is a leading company in a leading industry with leading, cutting-edge technology. Tech-people are simple in interactions. They do not like to sound like talking about something, but not actually saying anything. Usually they talk less and very to the point. They know they don’t have time to waste in endless discussion and need to lock down basic requirements so they can start the actual hard work. Tech-people also, are truly using the latest “cutting-edge” technologies and they are eager in proposing them to clients.