Cooperation with an external software house
What is most important in cooperation with external software developers? What questions should be asked before making the decision?
We develop software for clients around the world. Each time they are considering working with us, they ask us the same set of questions about our workflow, quality, people and communication.
We believe that understanding our approach and principles is fundamental to successful cooperation and also could shed some light on what client could expect from us during a project. That is why we have prepared answers for some of the most frequently asked questions. We think that it is also a good litmus test to check other software houses.
How do you assure software quality?
Each small piece of project functionality developed by SoftwareMill is covered by automated tests. In addition to low-level tests, we maintain a set of high-level "acceptance" tests verifying whether the product works properly. It is all automated in order to get a fast feedback that everything works as expected after changes in the code.
Example: We will have an automated test simulating 'clicking' through your web application.
Moreover, our developers review each other's code, in order to achieve better internal design, avoid mistakes and share knowledge.
What tools do you use in your development process?
Our teams usually use:
- Git - a flexible source control system
- IntelliJ IDEA - the best Java development environment
- TeamCity, Jenkins - for continuous integration and testing
- Trello, Jira - agile project management tools
- Confluence - an enterprise wiki for documentation and knowledge sharing
- Stash, Codebrag - tools for code reviews
and many others, because everyone is allowed to use a tool that will improve their productivity.
What programming technologies will you use, and why?
We are experts in modern technologies including Java and Scala ecosystems. However, first of all we check what is appropriate for client’s project to find a solution that suits their business best.
Are you good enough?
Wondering if we are the best choice? Let us prove how good we are! Let’s start the project by developing the 1st sprint. We offer a trial. It means we work for a period of 2 weeks (1 iteration) after which (depending on the results and the client's satisfaction) we either continue working, or the client can decide to resign without paying (in this case not receiving the results of the work).
What forms of security do you use?
Our organizational model minimizes the occurrence of all kinds of risks associated with the process of software development:
- Flat organization structure - all the problems are solved by the project team not by the managers above
- New IT equipment with extended warranty - we purchase the latest computers (mostly MacBook Pros) with extended 3-year warranty
- Remote organization - local power failure or local lack of Internet access will never affect the entire project team
- Infrastructure in the Cloud - we use systems that perform regular back-ups and provide professional support
- Implementation of projects using agile methodologies - applications are developed in 2-week iterations, after which the software is presented to the customer
- Insurance - we are insured in case of a Cyber Disaster that could affect the company
Who is in the team?
SoftwareMill provides experienced development teams (IT developers, quality analysts, designers, business analysts) to its clients in order to understand clients’ needs, design and implement them. We hire only senior developers from Poland. They are fully equipped with experience and knowledge to solve every challenge by themselves.
The people who will work on the project are only the ones that the client meets, and each of us is presented on our webpages. We do not cooperate with anonymous subcontractors.
How does your team extend their skill set?
We gather knowledge and experience both from inside the company and outside (e.g. conferences). We keep track of what we have learned on our company wiki and we regularly (every Friday) ask each other what we have learned recently.
The most interesting experiences are later discussed on our monthly knowledge sharing meetings. We also run our own projects: Codebrag, [UpdateImpact] (http://www.updateimpact.com). Within the last couple of months our developers attended the following conferences:
Scalar Conference, JDD, [CodePot] (https://codepot.pl), Mobile Trends Conference, GeeCON, [GeeCON Microservices] (http://2015.microservices.geecon.org), DevCrowd, Scala Days, 4Developers, InfoShare, Devoxx Poland, Devoxx Morocco, Confitura, Scala eXchange, WebSummit, InternetBeta, Analyst Relations Forum, Vilnius Voxxed Days.
Do members of your team actively contribute to professional IT communities (blogs, conference presentations, user groups, etc.)?
Most of us are active bloggers or twitterers - see our blog and [team] (https://softwaremill.com/meet-the-team). We have delivered so many presentations on various conferences, that we already lost count (only in 2015 we have presented 57 times, statistically each week!). Basically, on most of the events listed in the previous point there was someone presenting from SoftwareMill - check it below blogpost.
Several members of SoftwareMill team are (co-)leaders of Java User Groups (Warsaw JUG, Szczecin JUG, Zielona Góra JUG). We have organised two editions of an international conference about the Scala language in Warsaw Scalar Conference. We are also a member of the Polish Space Industry Association.
How can I track the progress of my project?
We usually set up a Skype chat for the team and the client, so it is usually just a matter of asking about progress.
The client also has full access to our project management tool (or we use client’s tool). There, the client can check out the burndown chart on the iteration or project level. Every two weeks we demonstrate to the client a working version of the product with more and more features implemented.
For more details please see the graph which shows how we deliver software solutions. Of course in every project we adjust this process to meet the particular needs of the client.
What happens if I change my mind about the way my product should work?
No worries at all. Good test coverage allows us to safely make changes in the project. With Time&Materials model there is no need to renegotiate the contract or submit formal Change Requests.
What is your advantage?
We want to deliver software that matters to our business clients.
- offering nearshoring from Poland - highly-skilled and motivated developers working in similar time zone and able to regularly visit clients’ offices
- providing a small, efficient team of experienced full-stack developers, able to shift focus in a very agile way (e.g. from backend to frontend)
- offering very close cooperation with business - as part of our company culture
- cooperation with Lightbend (Scala creators) - SoftwareMill is a Select System Integrator
We take care of complete project development process, always trying to keep in mind that we want to develop a maintainable, working software which brings value to our clients.
Still not convinced? Please check what our clients say about our services or ask us to provide their contact details so you could personally ask them about SoftwareMill.