Skip to main content

5 Things I learned about Integration project while building my home

From my childhood I had a dream to have my own house. It should have nice surroundings, good greenery, and nice neighbors. Also, the room size will be good enough. It should have my own study room. Now I am very near to my dream and it becomes a reality. The house is being built by the builder. However, my wife and I decided to have our customized kitchen. So, the modular kitchen and on top of it granite fitting, we have decided to go by ourselves. This had teach me very important lesson about the integration project. I have listed top five lessons I have learned about the integration project. Although the pre-requisite is to hire the consultant who has prior experience of similar kind of job.

1.       Interface specification:  The first thing I faced while implementing the granite top and modular kitchen is that getting the measurement from both the team, - the carpenter team and the team who will cut, fix and set the granite. It is very important to define a blue print of the interface else none of the component dependent on them will able to proceed. There are situations where you need to change the specification a bit. But that should be well communicated to the other team as well. Fail to do so, will collapse the very purpose and integration will not work. It is very important that the boundary specification should be understood, documented and shared among the team and no compromise with the boundary specification. When the granite cutter tried to mount the granite on the kitchen box, it is found that the surface was uneven. One side is up and the other side is little (2 mm) down. In some cases, the back side of the kitchen box was down. This is not confirm the boundary specification that was created and the module became faulty.

2.       Individual component should work properly: The individual component should work and should be complete as per the design requirement. All the boundary condition need to be checked and unit tested properly. The earlier story I have mentioned about the box with different heights at the edges could have been fixed if unit test at the boundary condition were tested properly.

 
3.       User journey from start to end: Giving client demo on the individual items although brings confidence to customer about the individual module, however, experience on the kitchen fitting taught me that it the integration of the components  brings hidden bugs and sometimes rework needed. In my kitchen, the individual components – Kitchen box and granite tops were perfect when they were shown to me. I was very happy with the individual team. However, all the issues were surfaced at the time of integration. So, for any integration project, success of entire user journey is important.

 
4.       Bring individual team work together: It is human tendency to blame the other team if integration goes wrong. In the kitchen fitting case, the carpenter team said that their component was as per specification and there won't be any problem while fixing the granite. The granite fixing team said that as the box door were not fixed, they cannot mount the granite. We have bring both the team together and then the work was done on time. During integration project, if one team testing and building the interface, then the support from the other side is very important. If it is not there, the chance of the success of the project diminishes.

 
5.       Stakeholder support: During integration, if it found there is a miss in the specification and re-work is needed, then the stakeholder should work together to get it resolved. In the kitchen fitting story, we are fixing a 12 ft long granite with cut in the form of rectangle. The cut was such that the material strength got reduced. When the people working on the piece, tried to bring the material, it was broken. It was complete chaos. It impacted all three dimensions of the project – time, money and resource. The involved stakeholders are we as owner, the supervisor of the house who is also owning the granite cutting. We told that we'll fund second piece of granite and ask them not to use the granite as a single piece, rather use multiple piece of same width. This will help to maintain the material strength after cutting out from inside and reduce fixing complexity. The supervisor agreed to extend his resources (cutting team) to work extra day to fix them. The structural changes increase fixing time a little, however it reduces the fixing complexities and he happily agreed the solution. Stakeholders in the projects need to be informed so that they can take correct decision based on the situation.

After initial hiccups, we have the kitchen the way we wanted. The lesson learnt in the process is worth sharing and we can relate with any other integration project of any kind.​

Comments

Popular posts from this blog

Hybris Beanshell and Groovy script example

While doing support, we need to check some of the scenario and their result in the production server. The beanshell and groovy script comes very handy on this. Below are the few example of how I used/using it in my various project. This is very handy to test your data as well 1.        Check the log: Sometimes getting server access is very painful in the enterprise landscape. However, person joined in the project is required to work as soon as they inducted in the project. In this scenario, below groovy script is very useful.   Please note, run these in the rollback mode unless and until the otherwise is required. a.        The application is running from the container. For the POC, it was running in the tomcat server (tomcat/bin). To know the exact directory, run the below script in groovy console println "pwd".execute().text Below will be printed in the output tab /usr/sap/hybris/bin/platform/tomcat/bin ...

SonarCube and Hybris integration

There are some issues reported for SonarCube 6.7 integration with Hybris. The recommended version is Sonar 6.4 or less. For Sonar 6.4, there is no need to build the database. Please follow the below steps to use sonarcube with Hybris. For the POC, we have used Hybris 6.4.0.2 and sonar 6.4. Sonar Cube configuration 1.        Download sonar 6.4 and install/unzip. 2.        For the POC, we have used Embedded Database (default). But multiple database is supported. Access management can also be implemented. However, for the simplicity purpose, it is not used for the POC 3.        The java properties can be set at the sonar.properties file (not used in our case). Example of the property is sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError which can be enabled in the sonar.properties file under conf folder of the installed folder. 4.      ...

Beanshell/Groovy example - Change Local.properties permanently using script

Sometimes we need to change some of values defined for properties key in local.properties/project.properties. There are three ways to do it Update via HAC Update Local.properties Update using beanshell/groovy script If we use the first process, after server re-start, changes will go. So, the value will remain in the system memory till the server got re-started. Here, will give an example how to change local.properties and changes remain even after rebuild. Run the below script in the HAC script tab with "commit" on. import org.apache.commons.configuration.PropertiesConfiguration; import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; //The new value to be stored in the key/value pair in local.properties. String changedValue = "NEW_VALUE"; //Key name in the local.properties String propertyName = "test.properties.value"; PropertiesConfiguration config = new PropertiesConfiguratio...