This site uses cookies.
By continuing to browse the site,

you are agreeing to our use of cookies.

Outsourcing toolbox
that works

Confused about how to cooperate with an outsourcing company?

See our processes that focus on cooperation and support of your organization.

We know how
to cooperate

Technical engineering prowess and excellence is a must, and we focus on it as it's the heart of any software project. Yet all of our customers, big or small, are often struggling with organizational and cooperation matters, and simply don't have the time to effectively organize them.

Having worked with international customers since 1997, we've gathered firsthand experience in this matter. That’s why we built and described, based on practical scenarios, a complete outsourcing toolbox – a cooperation toolbox, outlining processes, tools, practices, communication channels and rules for how to work and deal with external partner.

We can show you how to cooperate with an external software vendor during a big or a small project, and with or without internal IT. This includes augmenting, exchanging or expanding your team. We put a lot of thought into this. We have ready scenarios describing how to define borders, where they are, how to assign responsibility, and how to measure progress and report it. We'd happily organize training and introductory sessions about this for you, ones tailored to your unique situation. We're always open to learning new things on the way, too.

 

Would you like to make use of our knowledge?

Process

Tool 1: Agile for outsourcing

"We want for our teams to be part of your company"

1

Tool 2: Flexible scope management

"How to handle fast start with almost no requirements defined"

2

Tool 3: Agile reporting

"Always be sure about what you're getting get from your supplier"

3

Tool 4: Automated testing

"Release highest quality products without an army of manual testers"

4

Tool 5: Code craftsmanship

"Readability and aging resistance is foundation for great products"

5

Tool 6: Short production cycles

"Don’t ask about development progress … see it for yourself"

6

Tool 7: MVP – Minimum viable product

"Release and experiment with new products way ahead of competition"

7

Tool 8: Automated deployments

"Release new features often and quickly without worrying about unexpected downtimes"

8

Tool 9: Right communication channels

"Good cooperation is the key to your success"

9

Tool 1: Agile for outsourcing

"We want for our teams to be part of your company"

Our whole outsourcing toolbox is built on top of the agile approach to product development. Our teams follow the SCRUM framework, but mixed with a combination of lean management, and the best software development practices and techniques created by Software Mind (proprietary). This allows us to address typical issues that come with software development outsourcing such as: communication and knowledge sharing problems, adjusting to your formal processes and procedures, reporting and progress tracking. By adhering to your processes and structures, we’d like to make you feel that our teams are part of your company.

Processes, practices and technologies that we use:

  • Practice: Agile manifesto
  • Practice: SCRUM
  • Practice: Lean management
  • Practice: Kanban
  • Practice: Domain Driven Development
  • Practice: Continuous Deployment
  • Practice: Continuous Integration
  • Practice: Continuous Delivery
  • Practice: Continuous Testing

Tool 2: Flexible scope management

"How to handle fast start with almost no requirements defined"

Nowadays, ideas and concepts are the most valuable assets. Therefore, reducing Time To Market is one of the most critical challenges that companies face when trying to release a new product. In order to achieve that, development needs to be started as early as possible, even if the final scope is not fully discovered. Many communication and organizational problems also come into play: conflicting stakeholder goals, a rapidly changing market, gaps in specific business domain knowledge, different organizational cultures and cultural differences, and busy product sponsor schedules. To address all those issues, the Software Mind company developed a set of practices built on the SCRUM agile framework. Agile workshops help to set product boundaries easily. What's more, user stories allow for swift knowledge transfer so that everyone is on the same page. And short, well-structured and time boxed Sprint Planning as well as Product Backlog Refinement Meetings are easier for representatives of business divisions to fit into their schedules, while experienced Scrum Masters support Product Owners to maximize the product’s ROI.

Practices and technologies that we use:

  • Practice: Agile workshop
  • Practice: Sprint Planning
  • Practice: Product Backlog Refinement Meeting
  • Practice: Persona
  • Practice: User Scenarios with early UX testing
  • Practice: User Story
  • Technology: JIRA
  • Technology: Trello
  • Technology: LeanKit
  • Technology: TFS
  • Technology: „old-school white board”

Tool 3: Agile reporting

"Always be sure about what you're getting get from your supplier"

Typical worries our customer who is just starting work with a Time and Material contract in agile environments are:

  • Do I know how much the product we’re developing will cost me?
  • Will the project be done in time?
  • How I can monitor the team's productivity?

Our practices allow you to easily fix price and timelines for the project, but at the same time be flexible with scope. Short production cycles, agile sprint planning sessions and sprint reviews allow you to swiftly change direction product development is heading to better adjust to the current market situation. You will also frequently see effects of the development team's work, and the reports we provide you will let you rest assured that our developers are indeed very effective.

Here are examples of reports we usually provide to our customers:

  • Team Capacity and Velocity
  • Predicted team Capacity for quarter of year
  • Sprint Burnup chart
  • Product burnup chart
  • Technical health of the project
  • % of team's time spent on doing other work than development of new features (resolving production issues, answering business team queries, etc.)

Tool 4: Automated testing

"Release highest quality products without an army of manual testers"

Quality is built into our development process. Our developers start creating automated tests even before writing actual functionalities (TDD). They also create automated user acceptance tests by following Behavior Driven Development principles and writing Selenium UI tests. Most of our products have thousands of automated tests that are constantly run by our continuous integration environments and cover over 90% of the system code base. Thanks to this there is no need to involve big testing teams for excessive manual testing.

Practices and example technologies that we use:

  • Practice: Test Driven Development
  • Technologies: JUnit, Karma, NUnit, Moq, Mockito
  • Practice: Behavior Driven Development
  • Technologies: Cucumber, Spock, NSpec, SpeckFlow
  • Practice: Continuous Integration
  • Technologies: Jenkins, TeamCity, TFS, Octopus Deployments
  • Practice: Continuous Code Quality Management
  • Technologies: Sonar, Selenium WebDriver, Watir, TestLink, SQLt
  • Technologies: SoapUI, Postman, JMeter, New Relic, LoadUI

Tool 5: Code craftsmanship

"Readability and aging resistance is foundation for great products"

Our development teams take pride in keeping high source code quality standards and utilizing design patterns. The most important advantage of such an approach is the significant reduction of the cost of application maintenance: clean and well-structured code reduces the number of potential defects, makes introducing new changes easy, and helps to avoid spaghetti code syndrome. Also, the future cost of onboarding new developers is greatly lowered in the case of team expansion or replacement. Another great benefit is that good coding standards help a company keep highly motivated, passionate developers and allow them to concentrate on development, rather than debugging.

Practices and typical technologies we use:

  • Practice: SOLID
  • Practice: YAGNI
  • Practice: DRY
  • Practice: DDD (CQS/CQRS)
  • Practice: Static Code Analysis
  • Practice: Constant Code Review
  • Practice: Design Patterns
  • Technology: ReSharper
  • Technology: Sonar, FindBugs
  • Technology: Java (Spring Boot, Spring MVC, Spring REST, Hibernate, Bootstrap/Foundation)
  • Technology: .NET (ASP MVC,NHibernate, Castle Windsor, Bootstrap/Foundation)
  • Technology: BigData & noSQL (e.g. Hadoop, Spark, Elasticsearch)

Tool 6: Short production cycles

"Don’t ask about development progress … see it for yourself"

You want to get results very often (i.e. weeks) and have fast & frequent production releases, no matter how big the system. How to achieve this?

Everything looks good on paper. Everybody promises the world. But not everybody can deliver. Customers who loved the product described in the system specifications are often dissatisfied with the final results. Customers must see results every iteration, not only at the end of production. To avoid that problem, our teams usually work in 2 week production cycles (sprints, to use agile terminology). After each sprint there is a review session during which the business team can verify what has been done, have a discussion with development team and decide if there are some changes that need to be made in the future. What’s more, after each cycle, the developed parts of product are fully functional, tested and ready to be deployed … and the sooner new functionalities go live, the sooner our customer company can profit from them.

Practices and technologies:

  • Short-Feedback loop
  • Sprint Review done on each iteration
  • Short Sprint cycle, two weeks
  • Business verification and feedback per each Sprint
  • Small and frequent iterations, short time to market for every new feature

Tool 7: MVP – Minimum viable product

"Release and experiment with new products way ahead of competition"

Due to rapidly changing markets and high competition releasing new products in extremely short amounts of time, it has become more essential than ever to keep a competitive advantage. Sometimes you simply need to experiment with the product and get the fastest possible customer feedback. Reid Hoffmann, LinkedIn founder, said: “if you are not embarrassed by the first version of your product, you’ve launched too late”. It is often necessary to release a working product with core functionalities in 1-2 months. The combination of tools from our toolset allows our teams to achieve that goal. Agile analysis makes the first stage of the project very quick, test automation ensures that quality is great and there is no lengthy software stabilization phase, short production cycles allow to quickly assert if we’re going in right direction (and make necessary changes if needed), and high coding standards guard against spaghetti code syndrome that results in a significant increase of costs in later stages of the project (after the first version is released).

Practices and technologies:

  • Practice: Agile Analysis
  • Practice: First project stage ready in 1-2 months max
  • Practice: rapid project take-off and core functionalities shipped fast
  • Practice: Short production cycles

Tool 8: Automated deployments

"Release new features often and quickly without worrying about unexpected downtimes"

The ability to automatically and reliably deploy application is key to optimizing the time to market. Very often internal IT Teams have limited knowledge about the products we’re developing but need to be involved in the deployment process. To tackle this problem, we put a lot of focus on automating deployments. Our goal is to make deployments of either a standalone application or a large-scale distributed system a predictable, routine process that can be performed on demand - - reliably and quickly. This allows to get users' feedback as soon as possible and produce lean software without obsolete features, avoiding software bloat. Practices such as blue-green deployments, feature toggles and canary releases help us to significantly reduce the impact of potential defects. We can support automated deployments with a modern system architecture design with self-healing capabilities built into system components, and overall architecture, i.e. automatic retries of failed processes and bulkheads, separating solution components from failing external dependencies, and robust telemetry and operational monitoring built into each component.

Practices and technologies:

  • Practice: Continuous Deployment
  • Practice: Continuous Delivery
  • Practice: Blue-Green deployments
  • Practice: Canary releases
  • Practice: Feature Toggles
  • Practice: DevOps mindset
  • Technology: PowerShell
  • Technology: Octopus
  • Technology: DevOps tools (Vagrant, Apache Zookeeper, Docker, Ansible)

Tool 9: Right communication channels

"Good cooperation is the key to your success"

We understand all too well that the right communication is the key to building successful products… yet this often proves very difficult to achieve. With a development team working remotely and not available to the project stakeholder on site, this becomes even more challenging. That’s why we’ve put a lot of effort into finding most optimal communication channel (e-mail, message board, reporting tool, chat, teleconference, face 2 face meeting, …) for the tasks at hand. We use a number of tools, like Jira, Skype, Slack, C, Hackpad, Trello, WebEx, and Basecamp to make the overhead coming from communication as small as possible. Our Project Managers are experienced and heavily focused on managing information flow, and technical staff members are trained in technical as well as soft/communication skills. We also developed set of good practices and rules for conducting SCRUM meetings that are easy to understand for participants and make sure that every stakeholder gets exactly what he wants from a meeting.

Practices and technologies:

  • Skype
  • Slack / Mattermost
  • Basecamp
  • Jira
  • Trello
  • Hackpad
  • Webex
  • Uber Conference
  • SCRUM meetings
123 4567 89