Internal software development rationale
Software engineering is an integral part of Sycomor's identity and expertise. It is therefore both logical and beneficial that we sustain
internal development projects (mostly Java-centric) so as to support and enhance our consulting efforts with the implementation
of dedicated proprietary tools, be they full-fledged applications or building blocks (e.g. API). The benefits are two-fold:
- Produced software bring direct added value to our consulting methodology by facilitating the process (e.g. structuring
knowledge, automating steps, supporting analysis).
- They offer an ideal testing ground for tools, methods and technologies we wish to evaluate and promote and ensure we
can offer a working knowledge of their use and implementation when we ultimately suggest to our customers as possible vectors of improvement to their
development practices.
Development practices
Obviously, all our developments are subjected to rigorous quality assessments and enforce our high methodological standards:
- good programming practices: our internal codebase is validated against several statistical analysis tools and does not
generate any warning that cannot be justified and documented;
- documentation: all our operational methods are duly documented;
- dependencies: our codebase is only backed by official Java components and third-party libraries that display several
qualities, including robustness, open-sourceness, documentation, an active community and, if applicable, compliance with JSR specifications;
- innovation: our developments follow and integrate all relevant technological, language and library evolutions, base on
a thorough technology watch and regular updates.
Sycomor's utility APIs
Sycomor API is a collection of proprietary Java libraries that offer a wide range of new functionalities as well as a simplified access to useful data structures
and processes through the definition of dedicated decorators. This API not only serves as the backbone for other Sycomor projects, but also acts as a
testbed for new technologies and demo for good programming practices. It includes the following components:
- Sycomor Utilities: core library covering transversal needs (e.g. handling Java primitive types, collection utilities, file
and file format management, LDAP access management, etc.). Most other Sycomor components use it as a dependency;
- Sycomor Analytics: analysis library, including a generic data model and the implementation of many processing algorithms (notably
clustering processes);
- Sycomor Mathematics: mathematical and statistical tools of general use. Also includes easy access methods for the R language
(commonly used in statistics);
- Sycomor Graphics: Swing graphical components, including a graph-oriented MVC pattern, and utility methods for the generation of
commonly used visualization graphs (dot plot, histogram, Venn diagram, etc.);
- Sycomor Imaging: image handling library, including facilities for both format management and image processing and analysis with
the implementation of various filters (e.g. noise reduction, sharpening, etc.);
- Sycomor Semantics: dedicated to accessing and processing ontologies, ), natural language processing, and the use of associated
tools (e.g. interacting with the Apache SolR search server);
- Sycomor BioSeq: bioinformatics library specialised in sequence processing (file handling, alignment) and identifier management
(conversion).
SkillSet Manager, team skillset information system
Sycomor SkillSet Manager is a web application dedicated to defining and monitoring the aggrated skills of a development team. Designed with a strong focus on ease of
access and user-friendliness, it is an integral part of a team diagnosis. SkillSet Manager offers the following functionalities:
- simple team and role definition and management;
- description of your specific skill set hierarchy (both present and sought after);
- evaluation of team skill levels and referents;
- monitoring of skill set changes and actions taken to this effect (e.g. training);
- electronic dashboard and warning system (critical skills, heterogeneity, evolution over time, etc.).
SkillSet Manager was designed as a Saas (Software as a Service) to simplify access and distribution, but can also be deployed on your servers.
On request, we can provide you with a quotation if you wish to acquire a licence for this software application.