Outsourced CTO services: from technology strategy to troubleshooting
Do you need help defining how to approach technology development? Are you having challenges with a current development team? Are you currently developing using an outsourced team, but want to make sure you don't run into problems downstream?
TechEmpower has been the acting CTO for numerous startups including eHarmony for its first 4 years. We know how to direct the action so that you get a quality product at the end of the day.
Technology Strategy
We can help you go from concept to answers to key questions such as:
- How much will it cost to build what we need to build? How can I control costs but effectively get stuff developed?
- How can we phase development to balance cost, features, risk, etc.?
- What options do we have? How do we balance those options? What makes the most sense for us?
- Given likely market changes, how will we design and build so that the systems can respond to marketplace changes?
- How do we need to structure the systems to get ahead and stay ahead of the competition?
- What are the biggest areas of technical risk? How can we address this risk?
- What technology research is required?
- What technologies will we use? What existing systems will we leverage, what programming languages, software development methodologies, web application frameworks, revision control systems, etc.?
- What other kinds of systems will we likely need? Accounting? Reporting?
- What are the important security considerations? How do we balance concerns vs. cost?
- Where are the likely future integration points with other systems?
- What areas of the application are likely sources of scalability issues? What kinds of spikes in traffic could we have? How will we address these without significant cost?
- How are we going to manage the product roadmap? Make sure we make short-term progress, but not at the expense of longer-term objectives?
- What do we build in-house or outsource? What parts might we do off-shore, on-shore, in-house? What does the staff need to look like over time? When will key hires come on?
- What other kinds of capabilities such as graphic design, user interaction, product manager, QA will we need? Who will do that? Who's responsible for what portions?
- How will we find and interview developers?
- How do we motivate and manage developers?
- What do we need to do to make sure we can survive technical due diligence by investors and partners?
- What specific technical innovations might make sense?
- What can we build that might be protectable?
- What metrics are going to be the key startup metrics and how do we get those metrics without too much cost?
- Where and how will we host the systems? What's our purchase, licensing, SaaS strategy?
Outsourced Development Assurance
When you outsource your development, you are open to potential risk. Is the developer building it the right way? Are they using the right technologies? Do you have access to your source code? Is that code of sufficient quality to use going forward? Do you have access to all the systems you will need going forward?
We will review what you plan to build, how the developer plans to build it, and make sure they are doing things in a way that ultimately will lead to success.
Technology Review and Turnaround
Are you having challenges with your current development? Does it seem like you are 90% completed, but stuck there? Is your development team continuously missing deadlines? Do they deliver product that doesn't seem like it has been tested?
There are a variety of possible reasons that you could be having challenges with development. It could be the process, communication, team, or a host of related issues. We can help you assess what is going on and get things back on track.
Build In-House Teams
We can help you define what you need in terms of a team, consult on sourcing potential candidates, help interview them, and get the key people in place so you can move forward on your own.
Technical Due Diligence
We are often brought in by people who want to evaluate software and teams as part of a due diligence effort. This could be part of an acquisition where the acquiring party wants an opinion on the quality of the software and team. We also are brought in to evaluate the technology that is being built by a startup as part of investment due diligence.
Application Performance
Performance Matters
We've all used web and mobile applications that feel slow, taking too many moments to process a form, entreating the user to "please wait" longer than polite, or testing patience just navigating between pages.
Studies have shown that application slowness negatively impacts business. Put simply: users give up and leave. Amazon noticed a 1% drop in sales for every additional tenth of a second of load time. In an A/B test, Google raised the number of search results per page from 10 to 30. Load time went up from 0.5 to 0.9 seconds average and search clicks and ad revenues dropped 20%! And speaking of Google, they now use page load times as a significant factor in ranking results.
The bottom line is that businesses can't afford to be slow. Of course, if you are seeing your application running slow, it's also at risk of failing as it scales.
Our Experience
We are passionate about performance. The open source TechEmpower Web Framework Benchmarks project measures the performance of dozens of languages and application frameworks and has demonstrated that technology choices strongly influence performance results. It has been viewed hundreds of thousands of times by web application developers.
Our engineers are experts at improving the performance of applications and scaling both existing and new applications. We have worked on many systems that started with limited budgets but eventually scaled to millions of users.
Our Performance and Scale Services
Performance Diagnostics:
- Assessment
- Discovery of performance bottlenecks, both actual and potential
- Performance measurement and monitoring
- Load testing
- Page speed testing
Planning and Execution:
- Architectural planning
- Short and long term performance optimization strategy
- Up-front and reactive tuning
- Troubleshooting and resolution of front-end and back-end performance problems
- Iterative improvement
- Use of Content Delivery Networks, caching, compression, load balancing, SSL acceleration, EC2 and other Cloud Optimization
- Capacity testing and monitoring
If you have a slow application, we can work with you to improve matters. If you are starting a new application, we can help you avoid unnecessary performance pain and design it so that it can scale without breaking the bank when you are just getting started.
Don't Defer Performance
Legendary computer scientist Donald Knuth cautioned about the peril of "premature optimization." Some development teams use Knuth's credo to defer performance planning altogether, which means performance is only considered when it's already a big problem. This situation is avoidable.
Businesses need to spend some time to understand the needs of the business, define technical objectives, do upfront planning, and consider technical tradeoffs. Often some smart choices will allow developers the luxury to write code with agility, untroubled by lingering fear of performance bottlenecks, thereby inhibiting the temptation of premature optimization. High-performance tools give developers the headroom to experiment with potentially resource-expensive but easily-implemented algorithms. The right tools help avoid optimization during critical early growth events, permitting optimization to be deferred to a future when user adoption is greater and budgets are larger.
Bottom line — TechEmpower can help you with the upfront planning around performance and scalability as well as help you fix issues you are finding in your system.
Custom Development
Web Applications
We can help design and build a wide variety of web applications. Our team balances pragmatism with vision. On the front-end, our developers work with HTML 5, JavaScript, AJAX, jQuery, Cordova, CoffeeScript, and other new technologies but we avoid those that are so new as to be risky. On the back-end, we use Java, Ruby, Python, .NET, PHP and others based on what makes sense balancing server performance, scalability, hosting costs, development efficiency, and your internal development team's capabilities.
Mobile Applications
We help you navigate the advantages and disadvantages of popular mobile options to choose between native, hybrid, or mobile web applications. Based on your budget, time to market need, and user experience expectations, we can select a best fit.
Database and Big Data
We know how to design database solutions that work well from the start and can scale to many millions of users. We work with a wide variety of databases and data stores including MySQL, Postgres, Cassandra, Voldemort, Mongo, and Microsoft SQL Server. We know where and how to apply each of these options.
Applications
Applications are what our engineers know best. We bring quality products to market faster and better. Our goal is not just to create a web application, but to establish stable and scalable systems.
Hosting and Dev Ops
We will work with you to define and build out the best hosting solutions given budget constraints to provide you with the performance, room for growth, and resilience you need to succeed and endure. Based on your requirements and budget, we may recommend options such as Amazon EC2, Rackspace Cloud, or a private cloud. Our aim is to have your first hosting platform be suitable for today and the first several scale events.
Quality Assurance
Our QA team is involved from the beginning of a project. We work in a way that ensures quality development from the start.
Code Review and Due Diligence
We have experience reviewing development by in-house, outsourced, and third-party teams, and by staff that is a potential acquisition. We can help determine what you have and how you should proceed.
Platforms
We choose the platform and language that's right given what needs to be built. Because of that we regularly work with and have expertise in a wide variety of different development platforms and technologies including: Ruby/Rails, Java, Python/Django, node.js, WordPress, Joomla, .NET, PhoneGap/Cordova, and JavaScript MVC frameworks.
APIs
We know how to build robust APIs as part of or separate from web applications. We also have lots of experience integrating third party services such as SendGrid, SalesForce, ConstantContact, analytics tools, survey tools, and testing tools.
E-Commerce
We regularly build subscription and product/services sales sites. We know how to integrate with a wide variety of e-commerce components such as payment processors and to external systems such as accounting and CRM including BrainTree, Stripe, QuickBooks, PayPal, GetSatisfaction, and UserVoice.
Social Network Integration / Viral Outreach
We've created socially integrated sites for a long time. We know how to use social networks for viral outreach. We also can help determine what will make sense.
Content Management
Many sites need some kind of content management solution. While it's easy to talk about using a content management system (CMS), it's harder to build an interesting site on top of these solutions. We make smart choices about where and how to apply content management to support our clients.
Search Engine Optimization
We have significant expertise in how to structure complex sites so that they will work well from an SEO perspective.
Analytics / Metrics Integration
We believe strongly in metrics - our founder even does presentations on this topic. We know how to integrate various analytics packages. More importantly we know how to work closely with you to define the metrics that drive your business and capture the data in ways that ultimately can help you.
Video / Audio Integration
We have lots of experience working with video and audio as part of web and mobile sites. This comes from our long history of building multimedia solutions that include things like Universal Music's Digital Media infrastructure and the Project Greenlight site. Now it's quite common for projects to have video integrated. We know how to make this happen in smart ways.
Reporting, Logging/Auditing
We know how to build robust reporting solutions, but we also are adept at finding ways to enable reporting outside of the system. We also don't overlook logging and auditing. It can be critically important especially with an MVP.
Proven, Pragmatic Process
TechEmpower's Proven, Pragmatic Process
To keep your project on track, we follow a process that's flexible and firm at the same time. Flexible because every project is unique, and firm because it takes a carefully controlled process to make a complex software development project succeed.
Our solution process is our own, combining best practices from Agile, software engineering, user experience design and performance engineering. It's built on what software experts have been doing for 30 years or more. But we're not looking to impose an entirely by-the-book process—that just doesn't work. We configure our process to your project, choosing the appropriate elements before we start. For example, do we need a prototype? What kind? Why?
At the beginning of your project, we make sure that everyone knows what's going to happen when—and why. Our clients have told us repeatedly that with clear expectations, they can plan their internal resources, keep their stakeholders up to date, and feel comfortable with how things are progressing along the way.
Take a very high level look at how your idea becomes reality, from proposal to rollout and beyond.
Proposal
After our initial meetings, where we ask tons of questions and answer yours, TechEmpower gives you a proposal. It includes a preliminary description of the project, and cost and schedule estimates that we refine later, after we've done a thorough analysis.
Analysis, Design, and Prototyping
In the analysis, we determine what we should build. It's an iterative and highly collaborative process, resulting in a detailed description of exactly what the application will do for every type of user on the system. Together, we match the functional requirements of your system to the demands of your business environment, including your budget and time constraints. We will work with you to define a product backlog and focus in more detail on the MVP.
By the end of the analysis phase, we've struck a balance between competing concerns: What's required of your application? What are the demands of your business environment? Which technologies are appropriate?
Then it's on to design, where we create a blueprint that shows how your system should be built. This step marks the transition from a description of what the system will do to a more technical look at how it will be created.
As for a prototype, or early version, we may or may not build one for your project. A prototype can be handy to prove the utility of an application, help you see how functions will work, and/or let us test out the technical approach. But before deciding on a course of action, it's important to know what you are trying to achieve and to consider different kinds of prototypes. This is just one example of why a configurable process is critical.
Iterative Development and Delivery
TechEmpower develops the application using iterations so that our clients can see what's being built along the way, test it, provide feedback, adjust course. As we begin to get closer to release, we will go through multiple test versions so that we together get it out the door successfully.
Rollout Support and Maintenance
As your system rolls out, there's more work to be done to support the rollout and respond to critical issues. This is almost always a collaborative effort between your staff and ours. We'll configure the process to allow for the smooth transition of our in-house efforts to your operation, and to set up appropriate support at TechEmpower.