Software Development and Consulting

We specialize in development of complex and innovative software systems, starting from analysis, through architecture, design and implementation, to optimization and troubleshooting; all these managed according to lean and agile principles. We can support entire project lifecycles or provide support for specific project stages as needed.

Our services in the area of software development and consulting include:

Business and System Analysis

Our analytical services cover both business and system analysis. We focus on:

  • business modeling to identify business needs and determine best solutions to business problems,
  • system modeling with use cases to systematize the requirements for a system,
  • scenarios and automation of test cases that can serve as an entry point and an acceptance platform to further outsourced or insourced development.

Technical Analysis and Feasibility Studies

We prepare in-depth technical analyses accompanied by feasibility studies. The prepared analyses include:

  • high level architecture and design with key decisions and variants,
  • recommendation of software and system components,
  • evaluation of system capabilities such as security, scalability, high-availability and others,
  • comparative study of the proposed variants.

Such technical studies can be included in project offers or grant proposals, specifically for the EU programs.

Architecture and Design

Our significant experience with architectures of large, complex, often mission-critical systems can help you plan or improve the architecture and design of your software systems. We specialize in Java technologies and usage of open-source components and libraries.

Our services in the area of architecture and design include:

  • planning of new system/software architectures,
  • detailed design of components,
  • guidance to development teams throughout the whole development cycle,
  • architectural reviews to improve existing architectures.

We help our customers plan software and system architectures to meet their requirements. Our software architecture document (SAD) can be accompanied by a working prototype (see Prototypes and Proofs-of-Concept). We always focus on high quality of an architecture, yet we try to minimize technological risk. We design for security, scalability and high-availability while still keeping in mind maintanability and extensibility of the system.

In addition to an overall architecture, we can also design critical components and provide guidance to development teams throughout the whole development lifecycle.

As well as planning new architectures, we review existing ones. Our architectural reviews are focused on improving the capabilties of the architectures in question. We provide independent and objective assessment along with help in identification and elimination of risk that is inherent with new projects and technologies.

Prototypes and Proofs-of-Concept

In addition to our architectural services, we can deliver a working prototype that proves validity of our architectural and design decisions. We can also verify our customers' architectural sketches by writing proof-of-concept solutions based on their requirements and technological decisions.

Such prototypes and proof-of-concept solutions provide an invalueable help in evaluation of new technologies and key decisions early in the development cycle. They also serve as an independent and objective measurement of capabilities of the architecture and design.

Implementation

Our goal is to meet requirements by providing high-quality software on time and on budget.  We guarantee this thanks to incremental and iterative development driven by use cases and automated test cases.

We have our own software development team that consists of software engineers highly skilled in the following programming languages: Java, C, C++, PHP, SQL, Prolog. We can also provide a technical leadership to our customers' software teams to smoothly navigate them through the most complex technical aspects of development.

Project Management

Project management is an important part of every complex IT endeavor. We provide highly competent and strong leadership to manage large IT projects. Our goal is to provide high-quality software on time and on budget.

Our project managers have an average of 15+ years of experience in management of large IT projects from the field of telecommunication, banking, government and national institutions, large-scale digital archives and repositories, Internet domain names and Internet security. During their professional careers in IT project management they tailored heavy-weight processes (RUP, CMMI, MSF) to meet light-weight paradigms (lean and agile principles).

Troubleshooting

If you are out of a schedule or out of a budget, if you are experiencing problems with stability or performance of software, if you are running into difficult technical issues, we can help you solve your problems.

We are experts at crisis management at both management and technical levels. Based on detailed examination of the development process, thorough review of the code, interviewing of the developers and understanding the design, we prepare a recovery plan and undertake appropriate actions to minimize loose and get a project in question back on the right track.

Performance Tuning

It often happens that users are not satisfied with overall performance of a certain application or performance of certain functions within an application.

We specialize in performance tuning of:

  • Java, J2EE, JEE,
  • JBoss AS, Oracle AS, Tomcat,
  • SQLs for Oracle, PostgreSQL, MySQL, MS SQL.

Our performance tuning services are based on performance audits combined with database audits. During an audit we also perform a detailed review of the operational environment of an application in question. This way we are able to discover the roots of slow performance and we can significantly improve running times.