Choose your language:
The client was building out its e-commerce platform using Java technology and partnered with TEKsystems to perform defect resolution and enhancements to its back-end product information management (PIM) application.
Founded in 1929, the client is one of the nation’s premier omnichannel retailers with approximately 800 department stores and furniture galleries across 45 states, the District of Columbia, Guam and Puerto Rico; the client’s sales channels are also supported by e-commerce applications for the Web and mobile devices. TEKsystems has partnered with this large retailer since 2009.
In retail, time is money. Today phrases like “business agility” are commonplace because of the emphasis on speed in responding to customer needs and industry trends. With e-commerce applications, not only is speed an expectation, but so is quality and ease of use, for both customers and back-end users.
In an effort to increase business agility and not be left behind, companies are moving from monolithic to service-oriented architecture (SOA) systems where common services such as workflow, security and attribute management are shared across a full suite of applications. This type of design supports reusability in application logic by allowing repair or replacement of parts without a wholesale replacement. The ability to reuse existing assets in SOA also reduces costs through increasing efficiency and reducing future application development costs.
Yet, transformation to SOA can be complex, lengthy and require enterprise-wide collaboration and flexibility. Companies need to partner with a vendor who is able to support internal resources in implementing SOA by developing best practices, creating system documentation and offering specialized application development skills and methodologies.
The client, a leader in the retail industry, has always been on the cutting edge of using technology to further its business. However, in building out its e-commerce platform, one of the client’s key applications for product information management (PIM) did not have the flexibility to match the business’ changing needs. The current system was riddled with defects, the time for product preview and publishing was too long and maintenance was both difficult and costly.
The client decided to invest in a PIM system that had greater architectural flexibility to allow for more business agility. The system needed to have reusable business processes and a single point of failure, so that when a defect was detected, the entire system wouldn’t shut down. The code base would also have to be user-friendly so that non-technical staff members could implement change. Finally, documentation, best practices and defined workflows would need to be created to decrease post-production issues and enable collaboration throughout the organization.
The client was seeking a team of skilled resources to partner with its internal IT team to resolve application defects and develop enhancements to ensure they were meeting standards, as well as monthly release dates. Also, having recently invested heavily in adopting Agile methodologies, the client was looking to partner with a vendor who could work within that model and share best practices.
The client had previously outsourced this work to an off-shore vendor; however, a lot of work that the vendor delivered had to be re-factored. The client decided to move to a near-shore model that would provide quality resources with reasonable costs and have the ability to work during Pacific Standard Time business hours alongside the client’s internal resources located in San Francisco. The client partnered with TEKsystems and our Montreal Solution Centre (MSC) due to our high-quality resources, training, and strong engineering and Agile practices—areas the client was seeking to improve upon internally.
TEKsystems would first meet with the client for application discovery to gain an understanding of the client’s technical environment. Knowledge transfer in this engagement would be important to ensure our resources had a comprehensive understanding of the system’s architecture and design, so they could work on its defects and development. Since our team would be located off site, we would also have to establish remote connectivity to the client’s environment at the MSC and establish a communication plan. The plan would include holding daily scrum meetings, creating project status reports and designating main points of contact at the client and TEKsystems.
The client would maintain a list of prioritized defects in JIRA for TEKsystems to address. In executing corrections, we would establish a defined workflow. The standard workflow would account for all the PIM steps related to products between the draft and go-live stages—such as attributes, pricing and UPC.
Once a defect was corrected, there would be a peer code review between the TEKsystems developer and our counterparts in the client’s San Francisco office; this collaborative review would help ensure the code met standards and guidelines. The code would then be checked into the client’s code repository and move on to testing. The client’s QA developers would develop a test case scenario and we would support the client’s internal team in performing user acceptance testing (UAT) and regression tests for each corrected defect.
The JIRA ticket would be updated with corresponding findings and steps taken to correct the code. We would also update the application’s documentation, if applicable. From there, the code would go into release demonstrations and further UAT testing before a signoff to deploy the code. The TEKsystems team would be held accountable to a delivery schedule to support the internal team's schedule of monthly release deployments.
We have provided a total of five developers on the project, all located out of the MSC. Three resources primarily work on defect resolution and two resources are dedicated to developing the PIM system into a service to enhance the client’s SOA.
As a result of this partnership, the client has augmented its velocity to resolve defects in the PIM application. Through a service-oriented architecture, we layered the application, increasing its reusability and establishing a single point of failure. Whereas the client’s previous application was very difficult to maintain, this system will be easy for non-technical staff to implement change.
The client was very open to suggestions from our developers and sought input on how to improve its Agile practices. We introduced and implemented Agile best practices such as continuous integration (CI), unit and integration testing, and test-driven development (TDD). These practices will give the client a thorough analytical representation of what’s happening with the code; this will allow for problems to be identified early on and throughout the development process, subsequently avoiding unexpected delays in release schedules. We also facilitated a transition from Apache Subversion (SVN) to Git integration, which allows accelerated distributed revision control and source code management.