Productivity requires order. The mechanic hired is the one whose tools are in order; their shop is clean, organized and tidy. Software is no different. The complexity of the task mandates a good work environment.
Application Lifecycle Management (ALM) is a continuous process of managing the life of an application through governance, development and maintenance. ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking and release management.
ALM ensures that the team will be able to support critical business apps over the long term. At Centric, we know that the appropriate maturity level of ALM will vary from organization to organization. The goal is to invest in the right amount of ALM that makes the outcome predictable without sacrificing productivity.
- Increased productivity, allowing more focus on current business requirements
- Improved quality demonstrated by increased user satisfaction in delivered solutions
- Efficient promotion of applications through development, testing and production
Technical Project Management
Our technical project managers get it built the way users like it, according to unique schedules and within budget. We work seamlessly with any team no matter what real-world constraints exist on the ground.
Great software starts with great requirements. Deep interaction with project sponsors is needed to understand what provides value to the business. Centric has a refined approach to requirements definition that ensures the following:
- Goals of the system are accurately captured
- Level of detail is appropriate for the build team
- Functionality is prioritized by the business
- The team can verify that requirements have met end users’ expectations
- Code is traceable, meaning all code written has a correlated requirement and that all requirements have been addressed
Well-designed software performs well, is straightforward to work on and is easy to maintain. Centric takes great pains to design software using the appropriate design patterns to best solve the technical problems at hand. Be it a small or large application, mobile or web, integrated or stand-alone, we have experience and utilize best practices to ensure we “build it right.”
Managing code properly will help design, development and quality assurance teams collaborate seamlessly, thereby enhancing productivity. Proper source management will provide access to co-located and remote teams and ensure that code is protected from accidental loss.
Configuration and Release Management
Engineers need to consider the application production deployment process early in a project’s lifecycle. Core to this is the configuration and release management process. The goal: provide as much automation as practical so that moving features into production and to end users is as easy and efficient as possible.
Product quality practices need to be built into the entire development lifecycle to ensure that the projects deliver an optimal end. It is not efficient, and sometimes not possible, to “test it in” prior to deployment. Centric uses these holistic techniques for our QA practices including: Unit and Integration Tests, Automated Functional Test and Manual Exploratory Testing.
Centric can help organizations move upwards on the ALM maturity scale via an investment in Continuous Integration (CI). CI controls what happens to the code after it is committed to source control. Typical functions include compilation, automated execution of tests, and promotion of the code through Dev, QA, UAT and production environments. The numerous benefits of CI include repeatable and traceable deployment processes, increased automation of regression testing and less reliance on staff to accomplish these day-to-day activities.