Software Development
Industries eXcellence™
Software & Application Development Approach
At Engineering Industries eXcellence™, we strive to advance industry, and we do so by providing each of our customers the digital transformation solution that best fits their problem or challenge. Sometimes, this means leveraging one of our technology partner’s state-of-the-art software products and customizing it. Other times, it means going off the beaten track and trying to design, build and implement something entirely innovative to perfectly match our customer’s needs. Building a solid and maintainable solution is a difficult task, however. What might seem like the fastest way to deliver and finalize a software application usually ends up incurring a higher overall cost due to the maintenance problems that arise after the solution has already been deployed. Creating and maintaining software requires well-established quality standards and methods to deliver a superior solution in a timely fashion.
Our Definition of Success for Your Business Operations
Generally, Engineering Industries eXcellence™ defines any project as successful if it meets the customer’s or stakeholders’ expectations. In the case of a successful software development project, this is achieved when the following goals are met:
- High Quality: The delivered solution reflects the customer’s needs with attention to the smallest details.
- Reliable: The software has undergone careful testing to remove the occurrence of bugs that might disrupt the usage experience.
- Fast Delivery: It is important to deliver the project on time to meet the customer’s deadline.
- Maintainable & Extendible: All software needs to be maintained. As such, it has to be designed in a way that facilitates the maintenance after delivery and enables easy modification in case the requirements change or new requirements are added.
Software & Application Development Methodologies
1. Agile Development
The Engineering Industries eXcellence™ software development team leverages the core principles of agile methodologies when we build software. We design simple workflows that are scalable, so that they can be used in a one-man project as well as in a project with ten people or more. We start by setting a deadline for a Minimum Viable Product (MVP) that we can show to our customer as soon as possible. From there, we proceed developing in short iterations until all the use cases are covered. This allows us to communicate with the customer continuously and receive feedback as soon as possible, making changes less expensive and complex for both sides. Our customers reap great value from being involved in the development process, as they see the progress on a daily basis. The agile approach allows us to tackle any additional requirements or a newly discovered bug very quickly, and ship the modification after delivery without hassle.
2. Standardized Development
When building software, it is important to standardize the procedures and rules to be followed throughout the development process. At Engineering Industries eXcellence™, we select our technologies and tools based on what is more productive and better meets industry standards, and we develop internal rules and assets to apply to the projects themselves. This allow us to have a more cohesive portfolio of products, easily make integrations amongst different projects and re-use business-independent modules. As a result, when we start a new development project, it is very easy to kickstart the solution and start writing the code that actually does the job, because we can leverage a well-tested mix of technologies, templates and workflows. Our team uses and enforces rules and checks to ensure that our process and product meets the highest quality standards with the lowest impact on costs.
3. Source Code Control & Testing
We believe that source control is one of the most important components for ensuring high-quality standards in software development. Not using a source control method properly causes the code to get “dirty” over time, dramatically increasing technical debt that can sink a project before it even gets deployed. At Engineering Industries eXcellence™, we treat the source code as the most important design document, and we take extra care to ensure that only well-tested, high-quality code makes it into the final product. We use trusted environments to host our projects and for communicating internally and with our customers. We leverage the power of source control when we have to maintain different branches for different deployments of the same project, in which each deployment could have additional requirements to target a specific customer or customer site. We review and test code during development and before it is accepted into the main code base.
4. Reusability & Templates
At Engineering Industries eXcellence™, we believe it is important to not reinvent the wheel every time a new project is started. It would be nice to start to write the core business code on day one of development, but of course there are many side tasks that need to be implemented first for each project, from the logging mechanism, to the integration to external systems, the authentication, the reporting framework and utility libraries. When a project is finished, we look at what parts can be extracted and reused independently in other projects or as templates for other sites and initiatives of the customer's operations and/or business. This not only allows us to drastically cut the work and lines of code for each project, but it also increases the quality of the product and reduces technical debts, since each module is completely independent from a single project, and it has already been unit tested and used.
5. Modern Technology Stack
The development world has dramatically changed in the last decade, as we have seen a global shift towards web-based technology products. Our software development team embraces this trend by providing web-based solutions and choosing cutting-edge technologies to leverage this new way of building software. The newest web-based technologies allow Engineering Industries eXcellence™ to deliver development projects faster and without errors, and to make deployment an easy and replicable process. The result is a software solution that is easy to use and install with a modern looking user interface, powerful debugging capabilities and a diagnostic, light hardware footprint.
- C# & .NET: de facto standards in the industrial and enterprise technology space
- SQL Server: most solid solution for managing a database in the industrial sector
- ServiceStack: .NET-based framework to build solid and extensible web services and REST APIs
- Typescript: unites formality and safety of static typing with versatility and speed of JavaScript and client side libraries
- NodeJS & grunt: automate development tasks and leverage many client-side development best practices
- AngularJS: allows for building very rich and interactive user interfaces with low amount of code
- npm & nuget: dependency management systems of choice for clients and servers respectively
Industries eXcellence™ Advantage
As an independent system integrator and technology specialist, our Engineering Industries eXcellence™ team has been delivering digitalization projects and programs to industrial organizations worldwide for over 25 years. We are committed to the successful delivery of every project as defined together with the customer, on time and within budget. Our approach to software development and proven methodologies have been proven to ensure the success of any initiative. As your chosen development partner, we are committed to mitigating risks, controlling quality, measuring value and accelerating the successful delivery of your digital transformation solution.