Software Engineering: how Softelligence works

Author:

Outsourcing is no longer only a cost-reduction tool, but a means to find the right, culture-add partner, often in a different geography, who can understand your business strategy and flexibly adapt business models and sourcing models to confidently deliver your vision.

Whether you are building a next-generation product, a new enterprise platform or an ambitious digital transformational roadmap Softelligence can help engineer your vision by using webscale architectures, microservices, deep learning, artificial intelligence, blockchain, Cloud technologies and IoT.

 

CIR accreditation for cross-border R&D projects from the French government

 

Get to know our Engineering practice with a deep-dive into our tech and cultural markers: #SoftwareEngineering

A Q & A session with Sorin Gavanescu, Managing Partner Software Engineering

 

 

 

 

What is your preferred technology stack?

“Our expertise is multi-dimensional, so we try to be technology agnostic, and to recommend just the right technology stack for each specific project, every time. We do support – full-stack – Microsoft .Net, Azure, AWS, JAVA, Python, React, Angular, NodeJS, and SQL Server.

But our value-add isn’t technology. It’s software science; this is our DNA.

Technology helps us build next-generation solutions, but when choosing one technology over another, we analyze multiple factors, such as the customer’s application ecosystem, infrastructure prerequisites, licensing costs, and the customer’s in-house know-how. Then we advise on the most appropriate tech stack.”

 

What software development methodology do you like the most?

“Since we usually perform in mixed international teams, distributed across different time-zones, we’ve seen planned Agile, with SCRUM working most effectively for our customers. So, we’ve specialized in that, with all our colleagues using planned SCRUM. But there are cases when TDD, Kanban, or even waterfall, return better results, in certain projects.

Methodologies provide us with frameworks, along with principles like the “Manifesto”, behaviors, and tools, known and used by all team members. They help articulate the common language for the team and stakeholders.

The key is to make a choice of framework and stick to it, so you can have a structure, and role definitions, mapped to the engagement model, delivery model, and commercial model.”

 

What’s the client journey you are proudest of?

Software Engineering: how Softelligence works“It’s the relationship and journey together with a Dutch client and partner, a major IT company in the Netherlands. It all started out as a typical outsourcing project, with Softelligence Engineering being a contractor for the customer for one of their R&D engagements for a large pension fund. Two years later, we continue to have an awesome relationship, with multiple engagements and amazing chemistry at all levels – executive, middle management, technical, ops.

We celebrate success and share pains together, learning each step of the way and strengthening our partnership. Outside of the commercial relationship, we’ve organized a number of different common actions, workshops, training, and social events. We learn and share experiences, way beyond the “frame agreement”.

Together we’ve started the “Craiova Software and Technology Meetup Group”, a meetup that gathered over 200 members from the larger developer community in the city of Craiova, Romania, in less than 4 months from launching, with over 40 participants at every meetup.

Our biggest project to-date with this partner was nominated for “Romania’s Outsourcing project of the year 2018” at the ANIS gala in February 2019. We ranked 2nd. The platform we delivered represents the core of a larger IT landscape of the financial services organization, replacing a 15-year-old solution, which was responsible for processing around 9 million mutations per year. The system was built with a domain-driven architecture and includes new workflows, digital front-end, and back-end functionality to support approx. 45 processes for (life/work related) events of roughly 3 million people. The setup consisted of multiple teams – in total 70 IT and 30 business people involved.

Capitalizing on this great experience, the next step is to organize an AI/Machine Learning hackathon together, planned for Q1 2020.”

What’s your superpower in delivery?

“We care and contribute, not just execute.
We also stand out with excellent domain specialization (e.g. in Financial Services), as well as expertise in modern digital technology, concepts, tools, architectures, processes.”

 

How do you test your work?

Software Engineering: how Softelligence works

“We not only test our work, but also provide Quality-Management-as-a-Service, to clients. We help organize the quality process, advise for tools, best practices and manage the teams. 

We provide functional and non-functional testing services, as well as specialized outsourced testing, manually and automated. Our QA experts recommend the best test strategy, while providing consulting, manpower, test document templates, and tools.  

We offer outsourced integration testing, white and/or black-box testing, volume testing, alpha testing, security and stress testing, load testing, beta testing, backward compatibility testing, component testing, usability, acceptance, accessibility, back-end, end-to-end, performance testing, sanity, smoke, recovery, functional, install/uninstall, vulnerability testing, browser compatibility, graphical user interface (GUI), unit and system testing.”

 

 

 

How do you document the work you do for your Clients?

“Our engineering teams use tools such as JIRA, TFS, Target Process, Backlog, Hiptest, Microsoft Test Manager (MTM), ApTest – for team tracking, progress management and reporting. They also use tools like Confluence and Quip for collaboration.”

 

What’s your dream project?

Software Engineering: Q&A with a deep-dive into our tech and cultural markers | Softelligence“A dream project is one where we can partner with the stakeholders and have the possibility to contribute with ideas, technology consulting, process recommendations.

As a provider, it may be convenient to require whatever it is that you expect to find in an ideal customer setup. But that will rarely be the case.
You also cannot expect to start from scratch every single time.At Softelligence we’ve developed our framework of best practices when working in distributed teams, so customers that communicate with us openly, share with us their digital strategy, and their product roadmap/backlog, can easily become an “ideal customer”, because Softelligence can bring all the rest, and deliver that vision.In an ideal setup, teams communicate seamlessly at all levels, and foster an environment of collaboration, learning & sharing. Projects are run by good Product Owners, able to strategize, explain, and prioritize, spending enough time with the teams to make sure the functional requirements are clear. A dream project will benefit from regular face-to-face meetings and will allow for every voice in the team to be heard.
A dream project will have clear roles and responsibilities for each team member, which will allow creativity and stimulate team members to become better and grow professionally. It would have a dedicated software architect or would at least have architectural guidelines and coding standards. The project should have dedicated QA and should use Continuous Delivery, with automatic deployments, separate environments for Dev, Test, Production, etc.  A lot more can be said about the software engineering principles to be followed in the ideal project, but this can be a separate presentation altogether.”

 

How do you plan the project backlog and sprint releases?

 

“The sprint duration (2 or 3 weeks) is set up to allow for complete features to be designed, coded and tested during the sprint.”

“Based on the team’s experience, the backlog is split into iterations generating the Iteration Backlog(s). Ideally, this will be able to adapt to “late” game-changers. Business stakeholders receive incremental updates that can be further refined if needed. User stories are clarified during Refinement and Planning team meetings. Usually, user stories don’t exceed 13 points. Estimations in Points are done using Poker planning.”“The user story structure includes a description, acceptance criteria, and tasks for development (includes Unit Tests), Testing (Exploratory and QA), and the definition of “done”. It also includes Sanity and UAT to ensure that new features added to an existing product are well integrated and the product delivered is a “feature-complete” solution rather than just a gathering of functional subsets. Delivered packages are first tested in Staging systems before being released to Production environments.”

 

How would you define the ideal Client by size, work culture, and the region it’s coming from?

“We work with clients on all continents (including Australia).

The ideal Client for Engineering projects is a client with vision, strategy, and secure funding. If communication is good, the product roadmap, the priorities of the features, the technology details… can all be figured out together with the right software partner.

The ideal client speaks English fluently (business & technical staff) and is located in a time-zone that allows daily communication (GMT-5 / GMT+9). It can be a (funded) startup or a Fortune 100 company – the company size is not as relevant as the key people/roles required for a development project. From a client, we need funding, proper communication, and a good Product Owner to help create user stories, fill the backlog, and prioritize.

The ideal client should get involved in the project and participate in all project meetings/Scrum ceremonies (stand-ups, planning, refinement, demos, a.s.o.).”

 

How do you handle intellectual property?

Software Engineering: Q&A with a deep-dive into our tech and cultural markers | Softelligence“When we build new software, it is clearly defined in the agreements whether the IP created remains with the Client, with Softelligence, or a mix.

In most “outsourcing” projects developed under Time & Material, the IP stays with the client. However, there are also some situations when Softelligence uses its own, existing IP, as “accelerator” for development. In such cases, the client can use the software, but does not own the IP rights.

In all cases, IP rights are handled in the Services Agreement.”

 

 

 

 

 

 

How do you exceed expectations to serve your client?

“As a Services provider, the value add is to go beyond the letter of the contract. It’s not about making a goal to exceed expectations, but it can be as simple as “caring”. Caring about the project, like a Partner, not as a Supplier.

We mentor our people to use design thinking when designing applications and to code as if they would be the beneficiary of their work. We are not afraid to contradict the client if we believe that is in the Client’s best interest. Beyond “executing” the project at hand, we always try to do a little more for our clients.

For instance: we organize hackathons, when mixed teams try to implement ideas that would benefit the Client. We also invest in boosting people’s skills through internal and external training, mentorship, and direct investments in knowledge, licenses and equipment, with an eye on future customer needs. If a client shares their vision with Softelligence and brings us along as Partners, we won’t hesitate to invest in training, equipment, travel, to source additional services or talent, to deliver that vision. If we identify risks or threats in projects for Clients, we go the extra mile to bring it to the Client’s attention, together with remedy proposals.”

 

How do you estimate time?

Software Engineering: Q&A with a deep-dive into our tech and cultural markers | Softelligence

“In SCRUM projects we use “poker planning” as a method, however, good estimates are based on experience.

We always look for the right balance in terms of experience and seniority when building Development teams, so that we rely on our developers’ experience to estimate tasks as accurately as possible.

We also have technical leadership roles – architects, QA managers, DevOps, etc – to help mentor in best practices, so that estimates and implementation time are optimized, but also realistic.”

 

 

 

 

 

 

 

What are your resources to scale, meaning software developers to hire in your own team?

“Softelligence is currently delivering and hiring engineering talent in 2 Romanian cities, both important IT hubs, with strong Technical universities: Craiova and Bucharest. Our growth rate is not only due to market potential, but also to our engineering practices, interesting projects, to our professional reputation, appealing HR practices – with high focus on mentorship programs – and excellent core engineering crew. We plan to hire over 150 new people in the next 3 years.  We also partner with local technical Universities, providing paid internship opportunities and mentorship programs.”

 

    Engage with us

    Please use the contact information to schedule a meeting
    with a representative across our locations.

    global hq & uk office London, United Kingdom

    New Broad Street House, 35 New Broad Street, London, EC2M 1NH

    romania hq & delivery center Bucharest, Romania

    4D Gara Herastrau Street, 2nd Floor
    Building C, 020334

    +40 31 425 19 08

    engineering delivery center Craiova, Romania

    30 Stirbei Voda Blvd,
    Malmo Business Center, 200423

    +40 35 142 36 80

    let’s get in touch E-mail us at

    accelerate@softelligence.net