Building great software products

Thursday, 20 June 2013 00:25 -     - {{hitsCtrl.values.hits}}

By Rashika Fazali The growth in the IT/BPO industry is very essential for our economy. 99X Technology CEO and Co-founder Mano Sekaram stated that around 50% of software companies in Sri Lanka build and promote their own products. While this figure is somewhat an interesting revelation, India’s figure stands at around 80%. To enhance the country’s IT knowledge in order to gain a revenue of one billion dollars by 2016 with employment given for 80,000 professionals, it was essential for Colombo Camps Community to organise the first-ever Software Product Engineering Conference which was held at Waters Edge on Friday (14). Seven professionals from top IT companies in Norway attended the conference to share their knowledge and experience. What must be done to produce a great software product that will get millions and millions talking?     What is product engineering? Every software product goes through a process called product engineering that takes the product from the analysis stage to the shipping stage, but there are a certain set of rules that the product should follow. While the Wikipedia refers to the product engineering as ‘the process of designing and developing a device, assembly or system,’ SuperOffice Chief Product Officer Guttorm Nielsen speaking on the subject ‘Business engineering aspects of products’ stated: “Product engineering is about making a product that fits the business. You have to connect it to the business.” He also added that it becomes vital to define your market with the right pricing strategy, marketing, good design, usability, etc., as all of the above comes under product engineering. However, any company needs to first define their business strategy. In the case of SuperOffice, Nielsen revealed that they are a software company that sells licenses in volumes and not consultancy.  Other factors such as pricing should be affordable, distributed internationally are part of their business strategy. Once the business strategy is established, software strategies should be defined. SuperOffice is committed to building configurable and customisable standard software among other factors. Nielsen also further mentioned that source code should be ‘as lean as small as your business’ as heavy coding is not professional coding. However, product engineering is expensive. It takes around 12 to 16% of your revenue stated Nielsen.  
     
  Road-mapping It is very important to have a roadmap for your project. “Road-mapping is a balancing art fashion. It balances technology innovation and investment. You use 50% of the resources on what the customers can’t see,” explained Nielsen. Roadmaps usually include the long-term technology plan and feature plan along with requirement management and they improve the user’s experience. He stated that this process takes around two to six months because it’s takes time to research on what customers want, what are they using, etc. “You have to be analytical to find out what are the best things to do,” added Nielsen. Everything depends on what the customers need. Therefore freedom of choice is vital. He said, “Survival to kit is road-mapping.” He asserted that customers can have varying requirements from the type of device their application will run on to integration to the type of database to online or offline availability to cloud or on premise. Centric Chief Information Officer Christian Wiloch speaking on the subject of ‘Lean Requirements Management’ also emphasised the importance of having a roadmap. “Each company has different levels of maturity. We need a roadmap that gives a high level of direction.” At Centric, Wiloch revealed that a value creation map was made to pinpoint higher level stories and break them down.   Product vision and strategy is the key If the product vision and strategy is not documented well, the result would be a development of a failed product. Wiloch stated: “Vision is the mother of all implied requirements. If the top management is not clear about the product vision, choose another product.” Speaking on developing a project, he stated, “When we establish a project, it is necessary to have a strong product owner. Getting requirements is all about picking the right people.” He further mentioned it also becomes important to get a good user group and to use the correct tools.   Continuous communication Sometimes it’s so easy for a project to fail even though all factors and requirements are ticked off. Wiloch explained that their communication modes defer from Skype chats, to various other communication tools. The only communication mode that is not allowed is email as he believes email is like telefax.   Going Agile      “The horizon of predictability and unpredictability is constantly shifting. With the waterfall model, you don’t know what you really get at the end of the day,” stated Wiloch. While the waterfall model focuses on finishing each stage before going to the next, agile development focuses on iterative and incremental development where every stage is looked at simultaneously to make sure business and software requirements are met at all times. He stated that customer requirements are bound to change as the project develops and when this happens developers get ‘scope creep’ where continuous change affects the project and risk moving away from its original purpose. “Agile changes that,” stated Wiloch. With agile, there are backlogs, continuous testing, a working application, high customer satisfaction, rapid delivery, sustainable development and welcoming changing requirements.   Quality visibility On the subject, ‘Making quality visible in product engineering’, SuperOffice QA Manager and Process Architect Jan Petter Hagberg stated that if quality is bad, it would take a long time to gain customers trust gain. There are three reasons to focus on quality assurance (QA). Firstly, it is important to try and test the product before it is sold. Secondly, what’s on the inside must match the inside. Thirdly, time is money. “Bad quality means administrative waste of valuable time. One bug could involve four people and around two hours. It is even worse in bad released quality which means handling of defects in our released version which ruins the flow,” stated Hagberg. At SuperOffice, five factors are looked into to ensure quality. He mentioned that vision is the first factor as the vision sets the standard. Secondly, they build a culture where everyone knows what is been done in which way. Thirdly, they maintain project retrospectives where meetings are held to discussion developments and failures of the on-going project. “We have a mindset that everyone is a product developer and everyone participates in system tests, “stated Hagberg. SuperOffice also tests everything. There are different types of tests that can be conducted to ensure the application is workable – code reviews, document inspections, pair testing, etc. Lastly, product developers have empathy with users. However, he mentioned that the problem in today’s world is that most developers have less or no contact with users.   The future tester Hagberg stated that in few years to come, the tester’s role will be a very interesting and a challenging one. The future tester would comprise of a lot of experience, more technical and programming skills with knowledge and experience of automation, performance and security testing skills, social skills with the ability to work in distributed teams and business representatives. All in all, he claimed that the tester would be a combination of a test engineer and a requirement analyst.   Growing with cloud Adra Match Chief Technical Officer Torgeir Lyngstad stated, “Cloud computing is one of the three game-changing services in the IT industry.” To support this claim, Adra Match’s new cloud application BALANACER gained sales of NOK 15 million equivalents to Rs. 333 million in just three months. Cloud-based Software as a service (SaaS) is multi-tenancy, so the best practice is to have loosely coupled layers. Speaking on the subject ‘Accelerate your growth with Cloud,’ he added: “To authenticate your users, the users can use their Facebook to login to your application.” He also mentioned that you have to engineer the right SaaS product for your customers and deliver it well, but at the same time, you have to make sure you have feasible revenue model for your product. In choosing a cloud model, it is important to understand and know what you want in terms of storage. He added, “You will generate a lot of data. Be aggressive. Duplicate data.” Therefore it is essential to have a Cloud vision and strategy.   Mobile First to Mobile Only Mobile phone usage has grown to 30% from Q1 of 2012 to Q1 of 2013 stated Nordeca Insight Chief Technical Officer Arne Solheim. He further added that the number of desktop users going into Facebook is decreasing due to many users now going online through their smart phone. On www.yr.no, an online Norwegian weather forecaster, Solheim revealed that over the past two years, there has been a 50% growth from 15% in mobile usage with over 4.5 million unique visitors every week. On another website www.finn.com, there was a mobile growth to 35% from 2010 to 2013. He added: “Maybe our next generation will only be Mobile Only.” On the subject ‘Mobility needs of modern enterprise products,’ he stated that with Mobile First, mobile is exploding. “There are huge opportunities to reach a larger scale,” stated Solheim. He also mentioned that it is highly important to choose the right application platform – native, web or hybrid. While the application speed for native apps is fast, the development speed is quite slow in comparison to hybrid and web which are between moderate and fast. Native apps usually have a very high cost as well compared to other platforms. When developing mobile apps, Solheim mentioned that you have to design your application for interruption, network outage and low battery. Secondly, the application should be usable coming with a resource friendly design.   Why automate? Under the subject, ‘Automation for productivity,’ Corena Product Manager Tommy Sivertsen stated that automating is not about pressing a button and deploying a test, but about making sure everything is tested to ensure faster development. He added, “Customers have high demands and high requirements.” It was also noted that after the project components were automated, there was a 19% less on error correction and 14% more on development in the last six months. So it becomes highly necessary to try and automate all tests. There are certain tools that support continuous building and testing such as Jenkins which is a monitoring and managing process and Sonar that measure source code quality.     Product architecture To the question ‘how many people use Microsoft products in this room?’ the answer was everyone. Microsoft Infrastructure Architect Ragnar Harper said, “There is something Microsoft is doing good then.” Before architecting a product, Harper mentioned that the audience should be known first. He added, “It is also important to understand how a product impacts another product.” Companies like Microsoft have a release strategy. This release strategy defines when a product will be made available to the public. He said, “You have to be consistent about your release strategy. Overtime, we need to release more often. Customers are not used to waiting for new features. New features are there every day.” The release strategy also includes client upgrades which happen either automatically or manually. He also mentioned things to think of when developing a product – privacy, security and manageability. Pix by Upul Abayasekara

COMMENTS