The starting point for developing is detailed specifications of all the processes (modules) that will be used in developing the product. Each developed module is tested and documented to be able to fit into the final product.
Each of our components before delivery (internal or customer) passes detailed testing (manual and automated). The delivery includes tested products with the necessary technical documentation.
Each project after proper analysis is decomposed at the tasks planning level. Each task has its own life cycle in Atlassian Jira software which we use to manage the project tasks and issues.
Task management software helps us to manage and organize the production, on one side, and interact with the client on the other.
Project task analysis allow us to see at any time how much time and/or resources are used for specific parts of the project, which leads us to the improvement of organization if necessary.
In addition, it is possible to quickly and easily create a graphical representation of the flow of the project as a Gantt chart.
Agile methods with its adaptive planning, scalable development and delivery, and time-framed iterative approach are perfectly suitable for us.
We chose a modified SCRUM methodology, where "Sprint" cycles are adapted to the needs and capacity of our customers. We believe it is also very important to maintain the "engineering" approach to the planning, so that all work processes (or tasks of each developer) are defined in more possible details.
The active participation of customers at the end of each cycle allows us to adjust if necessary in the next round, and submit to the client the current progress.
We also use several methodology practices from Extreme Programming (XP) as follows:
Project was for a company specialized in semantic analysis and content enrichment.
Duration of 16 months.
Team of 3-5 developers.
It is Java distributed system that can index documents from internet sources, store documents, clean, enrich (annotate) and analyze documents, and then be able to search and organize selected documents.
Parsers setting (validation and cleaning of html content, data extraction with xpath ...) for individual sources (websites) are done through a web interface realized in GWT. Heritrix (Internet Archive) is a platform for collecting data, and to transport data we use Apache ActiveMQ.
A separate process is used to index the anotated data in Apache Solr and store the original data in a MySQL database.
User interface to search (faceted search, text search ) and show the documents is done in GWT.
Application that allows a quick search of the data in the Neo4j database, and display the results in the GWT interface.
Duration of 4 months.
Team of 2-4 developers.
The data is imported from RDF files, obtained from distant file store or SPARQL endpoint. The processed data are inserted into the Neo4j server which is linked to Lucene server, which allows us a fast search of data trough index.
User interface for search and data display is done in the GWT.
The parameterization is done through the Spring configuration files, and it is possible to access several different sources.