We decided to recap FAQ and divided it into three parts:
Quality & Security, People, and Cooperation.
If you are considering to start a cooperation with external software house, feel free to ask them any of the questions below. We hope that our FAQ will be helpful in the process of making a decision.
Quality & Security
How do you assure software quality?
Every small piece of system functionality developed by us is covered by automated tests. In addition to low-level tests, we maintain a set of high-level "acceptance" tests. The latter verify whether the product works properly from a client’s perspective - and are automated as well, in order to get rapid feedback that everything works as expected after changes in the code. We will have an automated tests simulating "clicking" through your web application.
Moreover, our developers review each other's code to maintain an optimal internal design, avoid mistakes. Code reviews and emphasis on software craftsmanship is a continuous element of our work. This way we can reduce overhead costs, minimize project failures, and remove uncertainties, as well as grow as individual developers.
What tools do you use in your development process?
Our teams usually uses:
- Git - a flexible source control system
- IntelliJ IDEA - the best Scala/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
- GitHub, Stash, Codebrag - tools for code reviews
and many others... The set of tools depends on the team. Self-organization of teams and years of (commercial) experience allow us to work efficiently, even in new fields. We often consult and advise our clients on the best-fit technology in their projects.
Are you good enough?
We joined the due diligence program of Digital Knights. Only 7% of all tech teams meet the benchmarks required to join the Digital Knights network, get their recommendation and an invitation to cooperate.
SoftwareMill is among the top 5% of all teams screened by Digital Knights experts.
In 2019 we found out that out of 474 amazing Polish software development firms we’ve earned a position in the TOP 5 in the ranking conducted by Clutch. Clutch rank resulted from high notes in categories defined as Focus and Ability to deliver. We additionally have a hunch that the following things played a big part in the rank:
- Remote work model that translates into adaptability with clients’ teams and ease of collaboration
- Informal organization structure - direct communication with clients removing any communication barriers and increasing the team’s engagement in clients project
- Involvement in the Scala community and passion for new technologies (e.g. blockchain)
- The high quality of the delivered code combined with quick results
- Finally, focus on communication that stems from our remote work model results in the quality of collaboration with our clients
Do you offer a trial?
We have no doubts about the quality of work that we deliver, so to ease the kickstart of the project, we offer a two-week trial: 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?
We have cyber-insurance for more than 2M $. Our organizational model minimizes the occurrence of all kinds of risks associated with the process of software development:
- Bottom-up organization structure - all problems are solved jointly by the project team, not by the managers above, reducing communication overhead
- Up-to-date IT equipment and tools - with secured access on several levels (e.g. two-factor autentication)
- Remote organization - localized power or Internet connectivity failure will never affect the entire project team
- Infrastructure in the Cloud - we use systems which perform regular back-ups and provide professional support
- Implementation of projects using agile methodologies - applications are developed in short iterations, each culminating in a demonstration of tangible results given to the customer.
How do you handle intellectual property?
Who is in the team?
SoftwareMill provides experienced development teams (software engineers, quality analysts, designers, business analysts, DevOps) to its clients in order to understand, design, and implement the clients' needs.
We hire only senior developers from Poland. They are fully equipped with experience and knowledge to solve every challenge fully independently.
The people who are going to work on the project are exactly the ones that the client meets, and you can read about each of us on the team page. 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 from the outside (e.g. through conferences or meet-ups).
We keep track of what we have learned in our common wiki and we regularly (every Friday) share what we have learned recently. The most interesting experiences are later discussed in our monthly knowledge sharing meetings.
We also provide our own software:
We are committed to many open-source projects, either as leaders/founders or contributors: tAPIr, sttp, Hibernate Envers, Reactive Kafka, MacWire, phantom, ElasticMQ, Apache Struts - and many others. The full list is available in the Open-Source tab.
Moreover, we are involved in developing the second Polish cube satellite developed by students of the Warsaw University of Technology: the PW-Sat2 project.
Do you actively contribute to IT communities?
Most of us are active bloggers or community members - see our blog and conferences pages. We have delivered so many presentations at various events that we already lost count (we presented 58 times in 2018, statistically more than once each week!).
Several members of the SoftwareMill team are (co-)leaders of Java User Groups (Warsaw JUG, Szczecin JUG, Zielona Góra JUG).
We have organized four editions of Scalar, the biggest international conference on the Scala Language in Central Europe.
We are also a member of the Polish Space Industry Association.
How can I track progress of my project?
We usually set up a Slack or Skype chat with 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 tools (or we use the client's tools). There, the client can check out the progress on the iteration or project level.
At least once every two or three weeks we demonstrate a working version of the product with fixes and/or improvements.
Of course, we adjust our process to meet the particular needs of each 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 the Time&Materials approach there is no need to renegotiate a contract or submit a formal Change Request.
Could you connect me with your current customers?
Sure thing. Just let us know and we will get you in touch with people who already trust SoftwareMill.
You can also check out what our clients say about our services on Clutch.
What is your advantage?
- Offering development from Poland, EU - highly-skilled and motivated developers, with a good command of English, able to visit clients' offices if needed;
- Providing a small, efficient team of experienced backend & frontend developers, able to shift focus in a very agile way;
- Cooperating very closely with your business - integrated into our company culture;
- Partnerships with:
Lightbend - as a Select System Integrator,
Datastax - as a Consulting Partner,
Confluent - as a Consulting Partner.
- We take care of the complete project development process, always keeping in mind that we want to develop maintainable, working software that brings real value to our clients.
How do you go beyond to serve your client?
We hire only senior developers who are fully equipped with experience and knowledge to solve every challenge fully independently, reducing communication overhead. They suggest the right technology stack and speak business language. Applications are developed in short iterations, each culminating in a demonstration of tangible results given to the client. We are experienced in building data-oriented products, we are able to start quickly but plan for a system scaling as well. Our main priority is to create valuable software and maintain transparent and trustful relationship. At the end of the day our client pays for the features delivered. Therefore we do not plan for sophisticated architectural patterns when the simple solution works, but always focus on the optimal tech stack, fault-tolerance, quality of the code and scalability.
How do you estimate time?
Most often we work in time & material model. We have a high level long-term plan of the project, however we make more detailed plans only for a short period of time for the features we need to implement first. That gives us a great flexibility when the client priorities change. We use planning poker, including additional time for unknown changes. We prefer to be safe than sorry when it goes longer than expected due to changes. Most of all we never sacrifice the quality and focus on delivering the best possible solution.