Software Development
Omnitech delivers top-of-the-class software to a wide range of clients within and outside of Malaysia. With expertise across multiple technology stacks and industries, Omnitech is able to solve complex challenges with practical, reliable, agile and cost-effective digital solutions. Our software works across all popular browsers, operating systems and mobile platforms, is fully scalable and delivered with immaculate user interface for unparalleled user experience. Software development is typically divided into 2 broad categories software for external stakeholders and software for internal stakeholders.
Software for External Stakeholders
Omnitech has its own group of business consultants and subject matter experts from a wide- range of vertical industries covering finance and investments, properties, automotive, aviation, education and training, public service, mining, power and energy, oil and gas, agriculture, construction, mechanical and engineering, defense, logistics and transportation, trading, retail and advertising and marketing. Therefore, we are fully able and capable to create applications that are cost-effective, practical and that solve real-life problems leveraging on our deep cross-functional understanding and cross-domain expertise. Some of the B2B software we have developed before or can develop for you include but are not limited to:
- B2B Order Management and Tracking System
- B2B e-Commerce e.g. vendor portals, procurement portals, trade portals etc.
- B2B Marketing Solution
- Billing and Invoicing Software
- Contract Management System
- Business Apps like Mobile Banking, Loyalty Systems etc.
- B2C e-Commerce Solution
- e-Hailing Solution
- Customer Self-Service Portals
- Marketing Software e.g. loyalty, vouchers, points etc.
- Gamification software
- Payment and e-Wallet software
- Point-of-Sales and Self Service Kiosk Software
- Client Apps like Mobile Banking, Shopping Apps, Healthcare Apps, Appointment Apps, Tourism-based Apps etc.
Software for Internal Stakeholders
Omnitech design and build applications that optimize or elegantly transform your internal business processes by streamlining operations, improving their transparency, driving employees’ efficiency, enhancing interdepartmental communication and improving reporting and planning.
- Enterprise resource planning (ERP) systems
- Supply chain management (SCM) systems
- Financial information & management systems
- HR management software
- Learning Management System (LMS)
- Project management software
- Procurement/e-Procurement software
- Asset management software
- Collaboration Systems
- Business Intelligence (BI) Dashboard, Analytics and Reporting tools
- Industry-specific solutions (Healthcare solution, Education Solution, Agriculture Solution etc.)
- Collaboration systems
Software Development Life Cycle (SDLC)
Software applications are typically developed following a set of standard business practices or framework collectively known as the Software Development Lifecycle (SDLC). It can be broken down into 6 to 8 core steps and project managers normally either combine, split or omit the steps depending in the project's scope and complexity. The SDLC framework allows detailed analysis at each step of the process to ensure quality, optimisation of resources and that the development are completed within the project's budget and timeline. SDLC steps are Planning, Analysis, Design, Development, Testing, Deployment and Maintenance. Some steps can run concurrently to speed up the delivery of the project.
Planning
In the Planning phase, project leaders evaluate the contract alongside with all the accompanying terms and conditions. This can include among others defining the project purpose, establishing the project scope and boundaries, creating a project plan, calculating labour, material and tool costs, planning out the project team structure and each team member's roles and responsibilities, engagement with product and brand principals and subject matter experts, charting out project deliverable and payment milestones and assessment of risks and dependencies. It plots the course and provisions the team to effectively develop the software. It also sets boundaries to help keep the project from expanding or shifting from its original purpose.
Analysis
Analysis or the requirement gathering phase is the first step of many after a Project Kickoff takes place. Depending on the complexity of the project, this process often involves multiple business users as well as members from the client's IT department. It is often considered one of the most crucial stage of the entire SDLC because if a user requirement study is not performed properly, the entire software development project could just go wrong. Some examples of requirement studies are user requirement study, system requirement study and functional requirement study. Resource planning can be fine-tuned after full clarity of the client's needs are obtained.
Design
The Design phase models the way a software application will work. Some aspects of the design include:
Architecture – Specifies programming language, industry practices, overall design, and use of any templates or boilerplate
User Interface – Defines the ways customers interact with the software, and how the software responds to input
Platforms – Defines the platforms on which the software will run, such as Apple, Android, Windows, Linux, or even gaming consoles
Programming – Not just the programming language, but including methods of solving problems and performing tasks in the application
Communications – Defines the methods the application can communicate with other assets such as a central server or other instances of the application
Security – Defines the measures taken to secure the application, and may include SSL encryption, password protection and secure storage of user credentials and database.
Prototyping can be a part of the Design phase. A prototype is like one of the early versions of software in the Iterative software development model. It demonstrates a basic idea of how the application looks and works. This “hands-on” design can be shown to stakeholders. It’s less expensive to change the Prototype phase than to rewrite code to make a change in the Development phase.
Architecture – Specifies programming language, industry practices, overall design, and use of any templates or boilerplate
User Interface – Defines the ways customers interact with the software, and how the software responds to input
Platforms – Defines the platforms on which the software will run, such as Apple, Android, Windows, Linux, or even gaming consoles
Programming – Not just the programming language, but including methods of solving problems and performing tasks in the application
Communications – Defines the methods the application can communicate with other assets such as a central server or other instances of the application
Security – Defines the measures taken to secure the application, and may include SSL encryption, password protection and secure storage of user credentials and database.
Prototyping can be a part of the Design phase. A prototype is like one of the early versions of software in the Iterative software development model. It demonstrates a basic idea of how the application looks and works. This “hands-on” design can be shown to stakeholders. It’s less expensive to change the Prototype phase than to rewrite code to make a change in the Development phase.
Development
This is the actual writing of the program. A small project might be written by a single developer, while a large project might be broken up into smaller pieces and worked on by several developers or even teams. Developers can use an Access Control or Source Code Management application to help them track changes to the code and to ensure compatibility between of codes different by different teams.
In this phase, finding and fixing errors are critical. Many tasks such as waiting for test results or compiling code so that an application can run can hold up the development process. SDLC can help anticipate these delays so that developers can be tasked with other duties to avoid idling which can be very costly to the company. Is is important to note that documentations are absolutely critical in any software development project.
In this phase, finding and fixing errors are critical. Many tasks such as waiting for test results or compiling code so that an application can run can hold up the development process. SDLC can help anticipate these delays so that developers can be tasked with other duties to avoid idling which can be very costly to the company. Is is important to note that documentations are absolutely critical in any software development project.
Testing
Testing is an integral part of any software development job. It is important that an application be tested before it is made available to users to eliminate bugs and other issues. Most of the testing can be automated e.g. security testing. Testing should whenever and wherever possible be carried out in a specific or simulated environment separated from the main production environment. Functional testing must be done to ensure that each function works correctly. Different parts of the application should also be tested to work seamlessly together (Full Cycle Test). Besides that, performance test must also be performed to reduce any hangs or lags in processing. Proper testing helps reduce the number of bugs and glitches and leads to better user experience and higher application usage rate.
Deployment
In the deployment phase, the application is made available to users. Many companies prefer to automate the deployment phase. This can be as simple as a payment portal and download link on the company website or downloading an application on a smartphone. Deployment can also be very complex. Upgrading a company core system or ERP for example can be very challenging. Since there would be many other system connected directly or indirectly to the system' database, it could potentially involve complex integrations and even data migrations.
Maintenance
This is the final phase in the SDLC. At this point, the application has already been deployed and used. There are normally to sub-phases involved. The first is the stabilisation period. This period can take place before deployment or Go-Live or after that. If it happens after that, then it would fall during the software development warranty period. During this time, users might still discover bugs that were missed out during the testing phase. Bug fixes can spawn new development cycles. The second is the support and maintenance period. This can be part of the original scope of work or awarded as a new project. It is normally signed annually and it comes with certain levels of service expectations contained in a service level agreement.