In expertise we trust)">
Working with Softarex is like making a small step towards a great success. Most trendy and fast-growing areas of knowledge can serve your business and accelerate it. We are obsessed with finding the right solutions, agnostic of platform, that will drive the highest engagement and conversation around your company, brand, or product.
Technologies stack overview
To save space and keep an intrigue we left some technologies behind.
Still looking for the necessary one?
Will check together!
- Libraries, Frameworks: NHibernate, Hibernate, Entity Framework, DirectX, XNA, OpenGL, DevExpress, SWING, JNI, Spring, BIRT, Java EE 7, iText, pd4ml, Play Framework, NodeJS, Boost, WxWidgets, QT
- Mobile Systems and Technologies: Objective-C (iOS, Mac OS), Visual C#, Android SDK, Ionic Framework, Cordova
- Web Libraries and Technologies: REST full API, AngularJS, WebSockets, WebRTC, SignalR, JQuery, AJAX, Web Services, Struts, Primefaces, Prettyfaces, JSF 2.1, Spring, AngularJS, Bootstrap, React-js, WebAPI, ASP.MVC, , SASS, LESS, Play Framework, OAuth
- Protocols: TCP/IP, UDP, SOAP, JSON, SIP, RTP, RTCP, HTTP, FTP, DALI, EnOcean, Mbus, Wmbus, Zigbee, HL7
- Relational and NoSQL Databases: Oracle®, MS SQL Server®, MySQL®, PostgreSQL®, MongoDB, Cassandra, Redis, SQLite
- Servers: IIS, Lync, MS SharePoint Server, MS Exchange Server, Apache, Nginx, Apache Tomcat, GlassFish, Jetty, Netty, WildFly
- Technologies: IIS, Lync, MS SharePoint Server, MS Exchange Server, Apache, Nginx, Apache Tomcat, GlassFish, Jetty, Netty, WildFly
- Methodologies: SCRUM, Agile, Extreme Programming, RUP, UI Prototyping
- Operating Systems: Windows, Linux, Android, MacOS X, iOS, Embeded Linux
- Design: UML, RUP, MS Visio, Design patterns GoF, MVC, MVVM
- Cloud Technologies: Microsoft Azure, Amazon S3, Amazon Cloud, Hadoop
- IDE: Visual Studio, Eclipse, NetBeans, Xcode, CodeSys, WebStorm, PHPStorm
- Testing Frameworks: Selenium, JUnit, TestNG, Mockito
- Build Tools: MAVEN, ANT, Gradle, SBT, Composer
Business Analysis and Architecture
Any project in the Software Development field begins with an analysis of the subject area for which you are developing software, followed by the analysis of business requirements, functional and non-functional requirements. The analysis process is paramount because its quality is directly related to the success of the actual project. Below are the stages of our business analysis process for a typical project:
- Analysis of customer’s business needs
- Analysis of the domain where the future software is to be used
- Analysis of users and their needs
- Analysis of software functions
During this process, we use various methods for collecting information on the project:
- Studying of documents and software systems
This comprehensive approach allows us to obtain the most detailed and precise requirements, which are then used in the preparation of technical documentation for project development. Depending on the chosen methodology, we prepare either User Stories for Product Backlog or documents based on RUP (Rational Unified Process) methodology. As a result of our comprehensive approach to the requirements gathering and specification, we write high-quality source code from the very first days of working on it.
User Experience and Interface Design
A convenient and elegant user interface (UI) is a must for modern software products. When working on the UI design and development, we take into account the following factors:
- The environment for the application’s future use (website, mobile application, website with responsive markup)
- Purpose of the future application
- Behavior, users’ roles, their needs, demographics of users, their profession (e.g. doctors, engineers at production sites, all possible users, etc.)
- Business needs that must be solved by the application
- Requirements for operating speed
- Usability of the application
The process of UI development is complex and involves various stages – from business analysis to the development of application interface. During the UI design stage, we take into account all the important details in order to minimize changes in the future. Usually, we perform the following steps during the UI development process.
Learn more at softarex.design
Best Practice Methodologies
Since our company’s early days, we have used various Software Development methodologies. For each project we choose the most appropriate development methodology and can adjust and combine different methodologies within one project or as part of working with one customer, but on different projects.
Fundamental principles of all Agile methods consist of the following:
- Software delivery is iterative and incremental, organized and prioritized around customer’s business needs
- Real measure of success is a software delivered on time
- Changes in requirements can come at any moment during the development process and it is important to work with them in the right way
- Customers have constant communication with their development team and work in close collaboration with them
These principles define the organization of our work and on each and every project allow us to fulfil our company’s mission: To deliver the best product on time.
Applying Agile methodologies allows us to minimize risks for our customers and also allows our customers to take part in the development process and therefore make the necessary changes in time. Certainly, the success of this work depends not only on the developers, but also on the communication with the customer. If he is able to maintain communication with developers, the Agile methods are certainly effective, but if a customer doesn't have enough time for efficient communication, then RUP (Rational Unified Process) methodology is the best choice. Nevertheless, when applying RUP in our work, we always organize our workflow so that every 3-4 weeks we show the customer the result of our work, i.e. software with certain functions developed. Thus, the customer is always updated on the project, but we minimize the time needed for communication.
Our company has accumulated vast experience in the development of complex IT systems that we have successfully delivered by combining different Software Development methodologies and focusing on our main mission – To deliver the best product on time.