Tuesday, December 15, 2015

The main business drivers for going for services


The main drivers for the moving to a product service system are to satisfy customer’s needs, to enhance the firm’s performance and to achieve competitive advantages. The journey towards services is supposed to create a win-win situation between the service company and their customers. Therefore servitization can be seen as a great opportunity, but there are also many challenges and threats in this business model.

Neely (2011), Aston (2013) and Atos (2011) all show big gains in increased revenues for the companies that succeed. According to Atos (2011) the main drivers for introducing a product service system are:

  • Customer expectations - confirmed by over 80% of interviewees Customers become more and more demanding and organizations get challenged to adjust to those high standards, thus implement customer centricity.
  • Financial incentives - confirmed by over 80% of interviewees shrinking product-based profit margins are spurring the need for service-based revenue growth. Revenues of services are greater than new product sale especially in times of economic crisis.
  • Gaining competitive advantage - confirmed by about 50% of interviewees Customer service has become a competitive trump card, services are difficult to imitate.
  • Marketing opportunities - a theoretic driver (recognized by less than 20% of interviewees) use services for selling more products. By offering services, companies get insight into their customer’s needs. This is not yet deployed widely.

If the infrastructure of the service is set up correctly it is easy to scale up the service with new improved functionality. It is also easy to scale up the number of customers due the same infrastructure can serve several users. This is called multi tenancy and is used by the most mature service companies.

For the customer, there could be several benefits getting a service instead of only a product:

  • Better cost structure: variable cost instead of fixed cost.
  • Reduced financial risk due to that the customer do not take the cost of failing hardware.
  • Lower operating costs due to economy of scale, but also due to more efficient operations.
  • Goal are aligned due to that supplier and customer share a common goal. Both being dependent on that the devices and services are working properly.

Wednesday, December 09, 2015

The 10 hot consumer trends for 2016

Ericsson ConsumerLab has identified some of the most important consumer trends for 2016 and beyond

http://www.ericsson.com/news/151208-10-hot-consumer-trends_244069644_c

Friday, December 04, 2015

HW connected

Mobile Heights is having the best event in December 2015!

I was in the Skånetrafiken and Mobile Heights stand, presenting our project BiBo (Be In Be Out, an automatic check in check out solution that can be used in several different situations.



http://mobileheights.org/hardware-connected/

Wednesday, November 25, 2015

Gartner Identifies the Top 10 Strategic Technology Trends for 2015

Gartner, Inc. today highlighted the top 10 technology trends that will be strategic for most organizations in 2015. Always interesting with Gartner trend analysis.

http://www.gartner.com/newsroom/id/2867917

Tuesday, October 20, 2015

Software development of large systems - the first IoT project course on Lund University

My course Software development of large systems have soon finished it's first occurrence. Result is good and especially good is it to use the Internet of Things gateway MVD in the course.
Students appreciate to learn about IoT architectures, since these are the ones that we see out in industry today.

http://cs.lth.se/etsn05/

Skånskt projekt ska ge säkra e-Hälsoappar

We will see more and more apps on prescriptions from doctors and of course it has to be secure and privacy has to be taken care of. None of the tested apps were storing data on the mobile phone encrypted and 66% sent unencrypted data over the internet. Something has to be done about the privacy in e-Health apps to make this are boom. We hope to start a project in this area very soon.



http://8till5.se/2015/10/09/skanskt-projekt-ska-ge-sakra-e-halsoappar/

http://www.biomedcentral.com/1741-7015/13/214

Friday, October 02, 2015

What is a service?


Product Service System (PSS) is when a firm offers a mix of both products and services (or just services), in comparison to the traditional focus on products. Today more and more companies are moving towards service-driven business models. This is a trend in all industries (Neely 2011). The trend is called Servitization of businesses (Vandermerwe 1988). The trend is, among other things, driven by the need to avoid competing with low cost countries on a cost alone basis.

Examples of companies moving to a product service system are: Rolls Royce who offers air engine flight hours rather than selling jet engines and spare parts. Husqvarna who offers a fleet management service for managing lawn movers and other garden products to companies maintaining lawn and garden areas (i.e. parks) from only selling physical products.

Software industry is no exception (Sultan 2014). The software industry is changing from offering software products to offering a “product-service system” (PSS). One of the enablers behind the servitization trend is the emergence of cloud technology that gives servitization a much more flexible cost structure, scalability and efficiency (Sultan 2014). Examples of software intensive product-service companies are: Facebook, Amazon store and Twitter.

For traditional product companies very often introducing a service is software intensive. So companies that did not use to understand or have a lot of software engineers, now need to build up this competence. Examples of such companies including: Husqvarna.

Another trend in the industry today is the huge amount of data that is created today. This is among other things due to the Internet of Things, where billions of sensors produces data streams in a never ending way. Internet of Things is not about things, it is about services! Companies that can make a service using the data in new creative ways, are the ones that will succeed. Value is created by making sense of data, turning it into knowledge and meaningful action. It’s not the parking sensor that matters, but finding a free parking spot quickly and without frustration.

PSS can be split up to three different types:

·         Base Services: this is when the tangible product is shipped to the customer, but additional services, such as maintenance, is provided. One example of this is you buy a washing machine, and the washing machine company offers maintenance on the washing machine as a service offer.

·         Intermediate Services: this is when the tangible products is kept by the service provider. The service provider is then selling the function of the product. The distribution and payment systems have to be updated to suit the new business model. One example of this is Microsoft Office 365. In the case with the washing machine, now the washing machine company owns the washing machine and sells washing hours to you. Washing machine company provides the maintenance on the washing machine without consulting you. 

·         Advanced Services: this is when a product is replaced by a service. One example of this is answering service replacing an answering machine. Netflix is another example, offering the service of streaming movies and TV shows, instead of selling the DVD with the movie.

Friday, June 19, 2015

Basic SW Engineering - Essential software engineering quality principle

Description of the Scenario

The basics of software engineering has not changed a lot the last 25 years. Of course we have seen the introduction of new paradigms like object oriented and agile methods. But the basic principles behind quality are still the same.
When the software in a product in a company grows from a very small size with one or two developers to more than 15-30 developers, this usually puts new demands on both software processes and software architecture to cope with the increased group of developers working with the same piece of code. Two developers can handle requirements, configuration management, quality assurance, project planning and follow up in a more informal way than is possible in a larger team. With a larger team a lot of communication problems arise that do not exist when the team is smaller.
There are still three elements that are essential to assuring good quality in the software product. These three areas (called elements) are defined in Baker (2007). These elements are:
  • Establish Requirements and Control Changes
  • Evaluate Process and Product Quality
  • Establish and Implement Methods to Achieve Quality (methods to build quality into products or other entities)
Establish Requirements and Control Changes includes definition of the requirements of the product and the control of changes of the requirements. In this area we need a process for establishing the requirements. We also need a defined process for controlling changes of the requirements, like a Change Control Board (CCB). The important thing is not what the process looks like, but that there exist a process that handles the requirements in a controlled way. The importance is on always knowing what to do and what is the most important for the project. It can be done differently depending of which software development model that is being followed. For instance the requirement definition process for the Waterfall model and the Agile model will obviously look very different, but the main importance is that the process is engineers always know what is needed by the customer of the system, so that they can focus on development in those areas.
Evaluate Process and Product Quality includes the definition of the testing processes, but also the process for making sure that the processes that are defined in the organization are being followed. Just like within development, testing has its own test models that there has to be decided which one to follow in this particular case. There also has to be a routine for continuously check that the teams are following the processes defined and if there are any problems in the current processes a way of changing and improving the current processes.
Establish and Implement Methods to Achieve Quality (methods to build quality into products or other entities). This area defines processes to establish what shall be done and by whom. So development, configuration management, project planning, project follow up and role definitions need to be defined and put into use. You have to decide which development model to use, is it a Plan-and-document model or a more Agile model like Scrum or Kanban? You also need to consider how to keep track of all the artifacts that are being developed in the projects. This is done in the configuration management process.
We have to keep in mind that there is no proofs that a structured and consistent usage of processes will lead to better quality products. Gibson (2006) has studied 35 organizations and measured their improvements on cost, productivity and quality. And have found empirical evidence supporting the connection between these three elements and better cost, productivity and quality.
Although there is general belief that the use of a structured, consistent process will lead to better quality products, a number of researchers point out that the cause and effect relationships have not been established quantitatively. Thus, the relationship between quantitative measures of process quality and their relationship to product quality has not been clearly demonstrated. However, there is empirical evidence supporting our intuitions that there is a connection, i.e., a cause and effect relationship (Baker 2007).
The other area that will be affected by the number of engineers working with the software system is the architecture. There will not be a lot of problems with the architecture due to communication issues in an organization with one or two engineers. But when the size of the organization increases, the software architecture needs to be refactored in a way that supports the number of developers involved in the project.

Main challenges

Here are some of the very characteristic problems that you will see in an organization that is growing rapidly:
  • The product management experience that they do not get the requirements that they have asked for. 
  • Even more alarming they do not get an insight into the status of the project is or when the requirements can be implemented.
  • Projects are constantly slipping schedule.
  • Problems delivering with quality on time.
  • The software development process becomes slower and slower.
  • The software organization gets a bad reputation for never finishing projects on time and always having quality problems. 
When your organization experience these issues, you probably need to implement the Essential software engineering quality principles in your organization. If your organization is experience the problems above, then it is very probable that you have problems with the architecture. Then your organization need a refactoring of the architecture to better support the new number of developers that are currently working on the code at the same time. See the architecture scenario.
When implementing the Essential software engineering quality principles Scenario in your organization, you need to implement the different principles differently depending on which development method your organization is using or plan to be using. If your organization is using a Plan-and-Document software development processes (like Waterfall, Spiral or the Rational Unified Process (RUP) lifecycles) or an Agile (like Extreme Programming (XP), Scrum or Kanban) the implementation of the Essential software engineering quality principles will be done differently.

Main Business drivers and Growing pains

The main business drivers for the Scenario Essential software engineering principles are:
  • Improvement of cost, performance and quality is needed
  • Improvement of quality towards competition
  • Implement a future proof architecture
When implementing dealing with problems in this Scenario, very often companies has to deal with other drivers as well. The other drivers are not the main drivers for this scenario, but they might be the reason that the software organization is growing in the first place. Some examples of those drivers are: safety standard, frequent releases to customer, selling additional features, wider product range, ease for customers/update service, new services, maintenance and intelligence/self-diagnostics and new markets.

Relation to other areas outside the software development organization (product management, sales, HR, sourcing ...)

There is a lot of relations to other organizations outside software. The software organization is due to the problems they have with the growth not considered to be very trustworthy on delivery times and functionality. Sometimes software organization is also considered incompetent due to those problems. It is important to understand that the software organization has those problems not because they are incompetent, but due to the rapid growth of the organization without defining the new way of working. However this is possible to change, by following the principles described in this chapter.
When introducing a more formal process for software development it will directly affect other departments as well. Usually other departments outside software like the freedom that comes with the more informal process. However they do usually not realize that the informal process might work for a couple of software engineers, but definitely not for 20 or more engineers. So a more formal requirement process will get some negative comments from organizations around the software organization. Also the configuration management process defines how software is delivered and deployed. This of course is affecting the other organizations around the software organization, like the product management, sales, electronics and hardware organizations.

Summary of literature study and references

  • (Baker 2007) Basic principles and concepts for achieving quality, Emanuel R. Baker, Mattew J. Fisher, 2007, Software Engineering Institute, Carnegie Mellon University
  • (Chrissis 2006) CMMI: Guidelines for process integration and product improvement, M. B. Chrissis, M. Konrad, S. Shrum, 2006, Addison-Wesley
  • (Gibson 2006) Performance results of CMMI-based process improvement, Diane L. Gibson, Dennis R. Goldenson, Keith Kost, July 2006

Tuesday, May 12, 2015

Essential software engineering quality principles

Here is my description of the essential software engineering quality principles, or what is needed for software quality.

The basics of software engineering practices have not changed a lot during the last 25 years. Of course we have seen the introduction of new paradigms like object oriented and agile methods. But the basic principles behind quality are still the same.

When the software labor effort in a product of a company grows from a very small size with one or two developers to more than 15-30 developers, this usually puts new demands on both software processes and software architecture to cope with the increased group of developers working with the same piece of the code. Two developers can handle requirements, configuration management, quality assurance, project planning and follow up in a more informal way than is possible in a larger team. With a larger team a lot of communication problems arise that do not exist when the team is smaller.
There are still three elements that are essential to assuring good quality in software products. These three areas (called elements) are defined in Baker (2007). These elements are:

·           Establish Requirements and Control Changes

·           Evaluate Process and Product Quality

·           Establish and Implement Methods to Achieve Quality (methods to build quality into products or other entities)


Establish Requirements and Control Changes includes definition of the requirements of the product and the control of changes of the requirements. In this area we need a process for establishing the requirements. We also need a defined process for controlling changes of the requirements, like a Change Control Board (CCB). The important thing is not what the process looks like, but that there exist a process that handles the requirements in a controlled way. The importance is on always knowing what to do and what is the most important for the project. It can be done differently depending of which software development model that is being followed. For instance the requirement definition process for the Waterfall model and the Agile model will obviously look very different. But the most important, for both models, is that the engineers always know what the customer needs, so that development can be focused to those areas.

Evaluate Process and Product Quality includes the definition of the testing processes, but also the process for making sure that the processes that are defined in the organization are being followed. Just like within development, testing has its own test models that there has to be decided which one to follow in this particular case. There also has to be a routine for continuously checking that the teams are following the processes defined, if there are any problems in the current processes and a way of changing and improving the current processes.

Establish and Implement Methods to Achieve Quality (methods to build quality into products or other entities). This area defines processes to establish what shall be done and by whom. So development, configuration management, project planning, project follow up and role definitions need to be defined and put into use. You have to decide which development model to use, is it a Plan-and-document model or a more Agile model like Scrum or Kanban? You also need to consider how to keep track of all the artifacts that are being developed in the projects. This is done in the configuration management process.

We have to keep in mind that there is no proofs that a structured and consistent usage of processes will lead to better quality products. Gibson (2006) has studied 35 organizations and measured their improvements on cost, productivity and quality. And have found empirical evidence supporting the connection between these three elements and better cost, productivity and quality.

Although there is general belief that the use of a structured, consistent process will lead to better quality products, a number of researchers point out that the cause and effect relationships have not been established quantitatively. Thus, the relationship between quantitative measures of process quality and their relationship to product quality has not been clearly demonstrated. However, there is empirical evidence supporting our intuitions that there is a connection, i.e., a cause and effect relationship (Baker 2007).

The other area that will be affected by the number of engineers working with the software system is the architecture. There will not be a lot of problems with the architecture due to communication issues in an organization with one or two engineers. But when the size of the organization increases, the software architecture needs to be refactored in a way that supports the number of developers involved in the project.

·         (Baker 2007) Basic principles and concepts for achieving quality, Emanuel R. Baker, Mattew J. Fisher, 2007, Software Engineering Institute, Carnegie Mellon University

·         (Chrissis 2006) CMMI: Guidelines for process integration and product improvement, M. B. Chrissis, M. Konrad, S. Shrum, 2006, Addison-Wesley

·         (Gibson 2006) Performance results of CMMI-based process improvement, Diane L. Gibson, Dennis R. Goldenson, Keith Kost, July 2006
 

Monday, April 13, 2015

Nordic IoT Hackathon

This weekend we had a good time in Mobile Heights Center on the 50 hour Nordic IoT Hackathon.



http://8till5.se/2015/04/10/hogt-soktryck-infor-helgens-hackathon-i-lund/