Mobile and Web Development:
whether starting from scratch or building off an existing application, our skilled developers can realize your vision. We have active practices in iOS (iPhone and iPad), Android, Windows Phone 7, Ruby on Rails, Java, .Net and PHP.
customers add our developers to their internal team in order to provide missing skills, to start parallel tracks of development or just to accelerate progress and implement a ‘follow the sun’ 24-hour workday.
Minimum Viable Product development:
our experience with startup businesses and our Agile development practices will help entrepreneurs design and implement the Lean version of their business vision quickly, so that it can be tested on real customers and improved incrementally towards the ultimate goals.
Research & Development:
businesses can test the feasibility of their ideas and create technology and product strategy roadmaps with our blend of world-class development labs and experienced, insightful consulting services.
mobile and web projects need solid QA to ensure your customers and users have the intended experience. Whether bundled with a development project or as a stand-alone service, TPL’s testers can ensure reliability on specific devices or whole platforms using manual and automated tests.
We believe strongly in the Agile development philosophy as described in the Agile Manifesto; in particular we embrace change, and optimize for flexibility during development. This approach is ideal for both startups establishing product market fit, and for established firms responding to changes in the marketplace. We adjust our particular process to the demands of each customer’s project, applying Scrum, XP and other Agile methodologies as appropriate. However, our underlying approach is consistent. The preparatory work consists of:
- Shared understanding of business goals and the customer’s vision
- Definition of the business’ critical differentiators
- Description of high level functionality that will deliver value to the user
- Creation of mockup designs, wireframes, and storyboards of the product. At this point a first detailed estimate of time & cost can be created for guidance.
- Production of detailed designs and granular user stories (usually on ‘Just-in-time’ basis)
- Definition of a Product Backlog – a list of features, broken down by user behaviors, that define the currently understood parts of the product.
With the Product Backlog defined, the estimate can be finalized and a development plan created. Working in sprints of two to four weeks, the highest priority tasks are worked first, with completed, running code delivered at the end of each sprint. The features enabled in a sprint are demoed for the customer and, once accepted, the Product Backlog is modified to reflect changing business goals, customer feedback, or new ideas that come from working with the product. Then the next sprint’s tasks are selected, and the process continues iteratively until the desired goals are achieved.
Two aspects of our Agile process are particularly advantageous for our customers. First, the focus on “user stories” rather than market or technical requirements. This is more than just a semantic distinction, as a user story links user behaviors with the business value achieved using plain English. The user story format is “As a <role>, I want to <behavior>, so that <customer value/business value>”. In this way the business owner can concentrate on tangible value they want to deliver to their customers in terms an average user will understand. Our teams support our customers in the creation of user stories, but in the end the customer owns the product and our developers concentrate on what they know best – what technology needs to be developed to create the desired customer value. This clear delineation of responsibilities for the business owners and development team ensures the optimal execution path is found.
Second, by iteratively revisiting the backlog of user stories at the end of each sprint, the process allows the business owner to take a fresh look at the planned development of features in the light of what has been learned along the way. Stories’ priorities can be adjusted up or down, dropped entirely, or new stories can be added, all with the minimum disruption to the timeline and budget.