Product engineering has been a challenge for many years and it continues to be even now. We have seen many companies trying out different solutions or processes to tackle product engineering. Techniques like Test Driven Development, Agile development, and others, have been both successful and unsuccessful. Having worked on the entire product engineering cycle for the more than 14 years, I believe that the following has to be considered in the current scenario as today “Faster-Time-To-Market” is more important than what it had been earlier.
a) Next Gen development standards
Adapting to change in requirements: The development team must start implementing the changes that come from business users, at faster time to market. Although we have agile process to support this, if the design is not modular it will be difficult to accommodate the changes at the pace which market expects.
Framework to support the developers: When developing new products one important factor to be considered is how well your product development framework will help the developers to improve their productivity and increase their velocity on the user story completion. Earlier development standards emphasized the developers to concentrate on handling all kinds of error messages, even at an architecture or design level, which nearly contributed to 10-15 % of their development effort. It will be good to have a framework which takes care of the basic error message and allow the developers to just write the functional code and test it.
b) Transformative technologies
The industry has seen how technology has transformed over the years from mainframe days going through the web2 .0 era and today’s SMAC. Every product has to keep adapting to these transformation technologies in order for the product to sustain in the market. For example if your product does not have SMAC built in, then it is very likely that it may not even pass the initial evaluation phase. Also the market is such that if you don’t use these transformative technologies the product ROI will start declining. We have seen many messenger software doing well until WhatsApp emerged for mobile. Consumers then started using WhatsApp more than the other tools since mobile usage is number one when compared to PC. Also we have other technologies like BigData, light weight technologies like HTML5 and Social commerce, real-time protocols like WebRTC which when implemented can increase ROI to a greater extent.
c) Software product engineering automation
Product development is a challenge in today’s market considering the agility with which requirements change, the quality of code from developers, and the time to market the product and the better control on budget. This becomes more challenging when you outsource your development to a vendor. This happened to the manufacturing industry and automation has helped to bring the best out of employees, quality products and on-time delivery. We need to bring engineering automation to the software development process with the help of the tools available in the market, automation of code review, unit testing, functional testing, deployment and release. This will in turn help to deliver quality product on-time and also provide the flexibility to release a product to market at frequent intervals with quality.
d) Process for emerging and evolving software Product
As we had seen in the technology world how disruptive technologies had created an impact, in a similar way, the process had also gone through some changes like waterfall, iterative, agile, lean and so on. Today if you want to develop a product for the emerging industry we need to have a process which supports that product. Agile still supports in reducing your backlog of requirements quickly and Continuous Integration takes care of ensuring working software is released frequently with quality, but still we have seen products fail when it goes to the market. Hence a process which can help meet the market requirements is a must and many vendors approach this in their own way either in form of some good principles like MVP, Product development using cloud services and so on.
e) Knowledge management
Knowledge is the key to any software product and retaining this has been a challenge in the ISV industry. Also it is not possible to retain all the talent for a long period due to the global economy and it is also difficult to have the knowledge with one individual. This knowledge problem can be solved with having an effective Knowledge management system which help all the teams that is involved in the product right from engineering to sales and marketing. We have seen Knowledge base systems available for functional teams and operations but the challenge has been with the engineering team which involves product managers, development managers, developers and testers. We have separate systems available for engineering team like the bug tracking tools, source code repository tools, requirement management tool and so on. But it becomes difficult for the team to search all these tools and gain knowledge in a short duration. So what is needed is one system catering to all these challenges and if you have a system built to cater these requirements, the engineering team can bring in the required ROI as and when the product enters into different product lifecycles.
Aspire’s solution to address the above trends or challenges is through an approach called “Producteering” that provides a framework to support these trends in product engineering. Using this framework, Aspire was able to build products better, faster and innovate continuously for several Independent Software Vendors.