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
- Git - a flexible source control system
- IntelliJ IDEA - the best Scala/Java development environment
- GitHub+Actions, GitLab, Bitbucket+Pipelines - for continuous integration, testing and code reviews,
- Trello, Jira - agile project management tools
- Confluence - an enterprise wiki for documentation and knowledge sharing
- **and many others...
A particular set of tools depends on the team. Self-organization and years of (commercial) experience allow us to organize our work efficiently, even in completely new settings. We often consult and advise our clients on the tools and technologies that best fit their projects.
- 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 assure software quality?
Every small piece of system functionality developed by us is covered by low-level, automated tests. Apart from that, we maintain a set of high-level "acceptance" tests. They verify whether a product works properly from a client’s perspective. In fact, they are automated as well, in order to get rapid feedback after any changes in the code. They simulate "clicking" through your web application.
Moreover, our developers review each other's code to maintain an optimal internal design and avoid mistakes. Code reviews and emphasis on software craftsmanship are part of our work. This way we 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 standard development toolset consists of:
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:
How do you handle intellectual property?
- 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
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 systems that meet our clients' needs.
We hire mid and senior developers from Poland. They are fully equipped with the experience and knowledge needed to solve any complex problem. They also get support from the whole team of 60+ engineers.
You get a chance to review the resumes of people who could potentially work on your project, and you can read about each of them on our website. We do not cooperate with any 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 are committed to many open-source projects, either as leaders/founders or contributors: tapir, sttp, alpakka, Magnolia, MacWire, ElasticMQ, Apache Struts, Bootzooka, Quicklens - and many others. The full list is available in the Open-Source tab.
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 seven editions of Scalar, the biggest international conference on the Scala Language in Central Europe.
We’re also among the companies that established SoDA - Software Development Association Poland. It gathers more than 100 Polish IT companies that
We are also a member of the Polish Space Industry Association.
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 2021, we've been listed in The Manifest's report among the most recognized service providers within Machine Learning and Artificial Intelligence companies in Poland.
Additionally, we have a hunch that the following aspects play a big role in the fact we earn amazing reviews from our clients on Clutch:
- 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.
AWS Select - 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 can I track progress of my project?
For ongoing communication, we usually set up a Slack, zoom, or Google Meet with a team and a client.
Our clients have full access to our project management tools such as Jira or Trello (or we use our clients’ tools). Checking on the tools gives an overview of the project’s or iteration’s progress.
At least once every two or three weeks we demonstrate a working version of the product with fixes and/or improvements.
Our main goal is to make you earn money on your software as fast as it’s possible! That way, we can maintain long-term cooperation, as you already have funds for your software further development - and that’s the type of project that we like the most. 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.
What is your advantage?
How do you go beyond to serve your client?
We hire mid and senior developers who are fully equipped with the needed experience and knowledge to solve even the most complex problems, reducing communication overhead. They suggest the right technology stack and speak business language. Applications are developed in short iterations, each ending with a presentation of tangible results given to the client. We are experienced in building data-oriented products. We are able to start quickly and at the same time, we plan for a system that scales easily. Our main priority is to create valuable software and maintain transparent and trustful relationships. At the end of the day, our clients pay for the features delivered. Therefore, we do not plan for sophisticated architectural patterns when the simple solution works. We 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 flexibility when our client’s priorities change. We use planning poker, including additional time for unknown changes. We prefer to be safe than sorry when it takes longer than expected due to any changes. Most of all we never sacrifice the quality and focus on delivering the best possible solution.