Misuse of Inheritance in Web Controllers

Inheritance is a common feature in OOP languages to specialise classes/types and allows polymorphism. It is easy to reuse the common functionality between classes by moving it to the parent class and use by the child classes. Without being mindful of software design principles, it can lead to increased coupling and responsibilities, making existing code hard to change. We’ll take you through a situation in C# MVC’s controllers and show how it improves the design by refactoring. The class diagram shown illustrates a fictitious online photo stock website.

misuse-inheritance-1 class diagram before refactor

This is a violation of interface segregation principle (ISP) which states that no client should be forced to depend on methods it does not use. In this case, BaseController has multiple methods and through inheritance, all of the child controllers have access to them but only use some of them and does not need some of them. When there’s a change in BaseController’s GetCredit, the child controllers which use it might be affected and should be checked and tested.

Continue reading

Top 3 Benefits of Titansoft

What comes to your mind when you are deciding which organization to work for? Every organization has its own benefits and it is also one of the major aspects that people will look at when deciding where to go for a job.

In this sense, we polled our own staff to find out what are the top 3 benefits that Titansoft offers (in no particular order)!

top 3 benefits

Our Top 3 Benefits in a nutshell (Image credits to Freepik – flaticon.com)

Training & Development

While training and developing the skills of each individual is pretty much in every organization. In Titansoft, we believe that everyone should Never Stop Improving, which is also one of our organization’s core value.

In Titansoft, anyone can suggest to attend a training, conference or workshop to their manager. These could be relevant to one’s job role or simply to learn out of interest (of course, there is a need to tie-up personal interest with the organization’s interest). In addition, the company would identify training that may be relevant to anyone within the organization and even open up the opportunity to all. Some examples include the Certified Scrum Master course (where even our HR can attend), User Experience etc.

Learning doesn’t stop after the training either. Participants who have attended any of the above are also invited to provide a sharing to the rest of us, allowing knowledge sharing and opportunities to gain new perspectives from the others!

Continue reading

“What?! You are a HR personnel in a Scrum Master Course?” 2

Unlike two years ago, when my HR colleague attended a Scrum Master course, the reactions from other participants wasn’t this great when I attended the Scrum Master course about two months ago. I guess simply because Agile practices are becoming more widespread and also, it was an internal training where we invited Daniel Teng (from Odd-E) to conduct this workshop.

Although Agile has been around for a pretty long time and has flipped the entire waterfall model on its head, it hasn’t really made headway in very traditional or highly regulated practices (such as HR, Financial services, Healthcare, etc).

While there are plenty of reasons why Agile adopters can fail, that doesn’t mean traditional services cannot become Agile. From what I have learned at the Scrum Master course, I am beginning to see a clearer picture of the ‘perfect world’ where Agile HR resides. As I am a HR practitioner, the perspective that I would like to share would (naturally) be limited to this context.

Agile HR

Agile HR Team! (Image credit to Flaticon – Freepik, MadebyOliver)

Let’s look at it from a Product angle

HR does many things for an organization, some administrative, others strategic. With the importance and ever-increasing popularity of HR business partners, we can actually consider the organization as our customers.

What if the HR service is a product? And it’s features (i.e. Recruitment, Payroll, etc) are there to resolve the needs of our customers? So for example, if it comes to the end of the month and payroll needs to be done, the entire team will do what it takes to accomplish it at the end of the sprint. If the customer requires a fix to an employee engagement problem, then the team will seek to understand the situation (again doing whatever it takes – research, interviews, etc) and come up with a MVP (minimum viable policy/procedure/process) to tackle it. From real users’ feedback, the team can then iterate and improve on it.

Continue reading

Global Scrum Gathering 2017 Singapore

The Global Scrum Gathering Singapore 2017 was organized by the Scrum Alliance and was held on 17 – 19 July 2017. We here at Titansoft are very passionate about supporting the local Agile community. In addition, we are extremely thankful to the local Agile community in our journey to become the Best Tech Company to Work For in Singapore 2017.

Thus, it only became natural for us to be the gold sponsor for this event to show our appreciation.

We did the Polls… again!

Similar to what we did at the Agile Conference 2016, we decided to consult the community for a few questions that we have had as well as help the community out by getting responses for their posted questions.

Continue reading

Trick Eye Museum

Trick Eye

Bonding is always a good way for people to develop an attachment with each other, creating and increasing trust among one another. In Titansoft, we value the time spent with each other and will organize a quarterly event for all our Titaners!

Having to look for various activities, this quarter, we have decided to organize the Trick Eye Museum! So why Trick Eye Museum?

What? Not Many People has visited?

We have seen so many people posting pictures on their Facebook and Instagram, but not many of our Titaners have visited this place. This museum is an interesting and amazing place where you will see a two-dimensional paintings into three-dimensional images though the use of optical illusions!

Continue reading

Home Automation with Amazon Echo + HA Bridge

2017-06-26_030747

Hi guys, today my sharing is how to build a HA system with Amazon Echo, Google Home, HA Bridge and Raspberry Pi 3

Brief introduction
HA Bridge emulate Phillips Hue so that Google Home and Amazon Echo can recognized any devices that is not yet supported by Google Home and Amazon Echo.

Google Home and Amazon Echo used as voice assistant to control devices created in HA Bridge and Home Assistant.

This sharing consists of 5 sections.

  1. Install HA Bridge
  2. Adding Vera/Vera Edge to HA Bridge
  3. Add customize device/scene
  4. Voice Assistant with Amazon Echo
  5. Voice Assistant with Google Home (No longer supported due to Google change the pairing method)

Continue reading