Software Development Newsletter: Q2 2019

Director Message

Welcome to the 2019 2nd Quarter Mitrais newsletter!

Our featured client for this edition is Ksatria. Founded in 2017, Ksatria’s vision is to bring world-class Hospital Information Systems (HIS) to the emerging economies of South East Asia. With Ksatria’s rigorous criteria in selecting a software development partner, Mitrais has demonstrated a track record of success through delivering quality outcomes.

In this issue, we feature Agile practices within Mitrais’ client base. Agile methods can make valuable contribution to customer satisfaction which allows us to apply many Agile ideas, concepts and practices in product development. Find the full article of Agile Practises in Mitrais’ Client Base and we will show you how Mitrais applies Agile practices, including the possible problem that may arise from opting for these methods.

We also discuss how engaging a software development partner forces you to think and plan for effective collaborative strategies to ensure your local and remote teams collaborate well. Mitrais shares a few strategies that we apply to ensure success in providing software development services to global clients. Read the full article on Collaboration Is Key.

Our featured White Paper introduces you to the developer’s perspective on managed container services from the 3 major cloud platform providers.

Lastly, we would like to introduce one of our Technology Evangelists, Kustian. Find out how his interest in programming has put him in the right place.

The Virtual Company

The Virtual Company image

In the current era, not all companies operate in a “traditional” manner, and their unconventional operations often require unconventional solutions.

Ksatria is a perfect example. Founded in 2017, Ksatria’s vision is to bring world-class Hospital Information Systems (HIS) to the emerging economies of South East Asia. Although nominally headquartered in Singapore, Ksatria operates as a “virtual company”, with staff scattered throughout the region all collaborating using the latest cloud-based products and services.

Offering a pair of products covering the “front-office” (or patient-facing) needs of a modern hospital, as well as the “back-office” (finance, accounting, inventory management and procurement) requirements necessary for efficient administration, Ksatria offers the potential for a single solution for clients. Capable of being implemented as separate elements or as a tightly integrated pair, the Ksatria Medical Systems (KMS) provide the ability to manage all aspects of running a hospital, with a robust real-time reporting suite to boot.

Leveraging cloud-based solutions internally, it is only natural that the next step in Ksatria’s journey will be to evolve their offerings as cloud solutions, reducing the time and cost necessary to deploy and configure KMS to hospitals, and thereby reducing the “time to benefit” by allowing them to start using the products much faster.

Decisions needed to be made about how to best manage what is a potentially massive redevelopment effort. The first choice came quickly. “It was decided very early that Ksatria would outsource the support and maintenance of the system to an external technology partner,” says Ksatria’s CTO, Mr Raf Cammarano. “It would simply take too long to recruit staff and build the required capabilities in-house. But, as a start-up, it was imperative that Ksatria minimises friction and wasted effort by choosing just one technology partner, rather than picking several different partners with different specialities.”

So, when it came to choosing that Software Development Partner, Raf had quite a checklist in mind. First on the list was availability. As Raf says, “Ksatria needed an organisation capable of providing development resources in all of the technologies used in the application – and providing them immediately.” It was also important that the partner was comfortable working in the “cloud first” environment that Ksatria was accustomed to, and that had established domain expertise in the healthcare space. Mitrais ticked a lot of these boxes for Raf, but he needed more.

“Hospital systems are enterprise systems which tend to have a long life once installed,” he says. “Ksatria needed a technology partner that would be there for the long-term, and a partner that had the processes and corporate culture required to build and support enterprise systems.” With more than 25 years’ experience in providing software development teams for clients in Asia, Australia and New Zealand, Mitrais has a demonstrated track record of success through quality deliverables.

Raf was looking for a breadth of offering from Ksatria’s partner. As he explains, “Ksatria needed a technology partner with experience in other aspects of software development – not just writing code. Specifically, this included experience in DevOps, database design, UI design, automated testing and technical writing.” Mitrais’ team of nearly 400 technical staff meant that we could cover all of Raf’s requirements.

Finally, Raf focussed on the practical aspects of managing such a diverse and critical team. “Ksatria needed close collaboration between its sales team, product managers and consultants and the technical team working on the product. This is only possible if everyone is in the same time zone. The fact that Mitrais has offices and local developers in Vietnam and Indonesia is a real bonus because those are Ksatria’s key markets.”

So, after navigating Raf’s rigorous selection criteria, Ksatria and Mitrais have now consolidated a true long-term high-trust relationship, each committed to the success of current and future KMS iterations and to bring superior patient and management outcomes to hospitals throughout the region. We look forward to continuing to work with Ksatria in the long run.

Agile Practises in Mitrais' Client Base

Agile Practices in Mitrais' Client Base

Even in times of constantly changing requirements and influences, it must be possible to carry out development projects (especially production development) successfully, and in a structured manner. Agile methods can make a valuable contribution to customer satisfaction while at the same time, improving profitability. In this newsletter, we examine how some Mitrais clients are implementing Agile techniques, the benefits that can be reaped, and how to avoid some potential pitfalls.

Percentage of Software Engineers using Agile

We apply many Agile ideas, concepts and practices in product development, which we introduce by consulting with a wide range of customers. An internal survey that we recently conducted showed that 73% of the current 48 projects use Agile methods, and only 27% use traditional processes.

However, as most of our larger clients now use Agile methods, over 90% of our Software Engineers are working on Agile projects although we often encounter large differences between theoretical ideas and practical implementation. The existing environment and the natural inertia to change often require adjustments. In our project portfolio, we most frequently encounter the Agile methods:

  • Kanban,
  • Scrum and
  • Scrum-But.

Since Scrum is a framework, we define Scrum according to the Scrum Guide and Scrum-But as a Scrum method that is either added to or removed from standard Scrum practices. Scrum-But is acceptable as long as the team have agreed on the reason for the departure from standard practice and have developed their own workarounds. For example: “(We use Scrum, but) (sometimes our managers give us special tasks,) (so we don’t always have time to meet our definition of done.)”

SCRUM's Simple Rules
Source : https://www.scruminc.com/the-3-5-3-of-scrum/

We only identify a project as “Scrum based” if it uses the standard 3-5-3 content elements. Otherwise, false expectations are projected into the daily work process and can cause confusion in the team and misunderstandings with external groups (eg: senior managers). However, each project is an individual challenge, and the customer often express a desire for more traditional processes. But even here, we notice that Agile practices have occasionally been adapted in classic project processes. For example, we encounter the Daily-Standup in almost all implemented projects.

Besides Scrum, we often find Kanban as an Agile method. And this is no surprise because the main goal of Kanban is to reduce unproductive multitasking, the frequent switching between different tasks. Kanban is a great choice, especially for projects with a team of 1-3 people. In addition, the visualization of the workflow via a Kanban Board is a strong way to build trust with the customer. Through a transparent representation of the work steps, the customer can track project tasks easily and accurately. In addition, the average time between the start and completion of a task can be measured and strategies can be developed together with the customer to reduce this time and keep it as constant as possible.

A concrete process, which may also include parts from the traditional waterfall world, should always be exactly tailored to the circumstances of a project.

Questions we often ask when starting an engagement with a client include:

  • Is it a small project and team or a complex project with distributed or even scattered teams or people?
  • Is the risk of errors negligible and are there no guidelines, or are human lives at stake and do the relevant legal regulations have to be fulfilled?
  • Can the work be planned over a short period of time or does new and important work always arrive unexpectedly and continuously?

Only if the concrete process addresses all these different boundary conditions of a project, it can be properly followed and lead to effective work. Together with our experienced Agile Coaches, Scrum Masters and Product Owners, we recommend the appropriate Agile methodologies and practices in collaboration with our customers that always keep the valuable characteristics such as iterative development, continuous process improvement, transparency, communication and trust in mind.

If Agile software development actually brings all the advantages claimed, then “What’s the catch?” In fact, it can be highly inconvenient to a team to introduce agile methods successfully and to maintain them over long periods of time. For this, you must break away from old habits, explore new ways and check again and again how you can improve further. This is the constant task of the Scrum Master, who plays a special role in the implementation of projects. Our Certified Scrum Masters have gained experience over a wide range of projects and are there to accompany you so that your projects can also be carried out with higher agility.

Do you have any questions or are looking for guidance on how to improve your Agile Practices? Feel free to contact us.

Thomas Rothe

Thomas Rothe
Mitrais Technology Evangelist

Thomas Rothe is a certified Agile coach with a decade experience working in information technology field. He has developed a passion for experimenting, talking and coaching about technology and approaches of how to tackle everyday problems in an Agile manner. He started his career as a developer but with growing demand and curiosity about agility and the DevOps movement now he mostly spends time in consulting, training, coaching multinational teams and transforming their organizations. You can find him occasionally speaking for the community groups ‘Agile Circles Indonesia’; ‘DevOps Indonesia’; or at the conferences ‘Agile Impact’ and ‘DevOpsDays Jakarta’.

Collaboration is Key


Having decided to expand your software development capacity and capability by engaging a software development partner, the next question that is critical to your success is “How should I work with my remote team?”

The decision to grow your existing team with remote resources can be a fruitful one, and plenty of companies have been proving that for many years. But, equally, you have no doubt heard anecdotes regarding situations where it hasn’t been as successful.

In the early days of outsourcing, a popular strategy was the so-called “Black Box” approach. A specification for a discrete piece of software was handed to an outsourced team for them to develop from start to finish, often with very little communication during the process. It was like popping the specification into a Black Box and hoping for the best. Development houses often went to great pains to silo their local and outsourced teams from each other, each often unaware of what the other was doing. Unsurprisingly, this strategy was almost universally unsuccessful.

So, what is the common thread running through the stories of those organisations for whom a remote software development partner has worked? Evidence from years of providing software development services to global clients suggests that it may come down to one key concept – how well do the local and remote team members collaborate?

Collaboration through Communication

The first (and easiest) method to enable collaboration between local and remote team members is to recognise that they collectively constitute one team, not many. These days, it is not unusual for an on-shore corporate team to have one or more members working remotely. Family responsibilities and lifestyle choices mean that key team members may not always be physically located in the office, but most companies recognise that technology now means that remote work is very possible. Adding remote development team members from a Software Development partner is the same.

Like any team, the success of a hybrid local-remote team is likely to be how often and how well they communicate. It is essential that all team members understand the goals of any particular project, how their parts play into its success and the changes that will inevitably happen mid-project (and how they should react to them).

In an office environment where all the team are collocated in relatively close range of each other, the natural office intercommunications and “watercooler chat” generally suffice, although most have formal team meetings periodically. When you expand your team’s capacity and capability by adding team members from a software development partner, it needs to be recognised that those informal communication channels are not available to your remote developers. Building trust and rapport within your hybrid team is vital. It is easy to forget that the staff sitting overseas are just as integral to your project’s success as those sitting outside your office. It’s not the distance between your remote and local teams that matters here – it’s the time-zone. The more real-time the communication can be, the better it will work.

To mitigate this, a more formal communication plan is usually required to ensure that everyone on the team remains in sync. Many development teams these days operate using some type of Agile methodology, often SCRUM (or a variation). The daily stand-up meetings represent an ideal opportunity to kill two birds with one stone – meeting the needs of both the SCRUM model and your need to keep your entire team on the same page. By mandating attendance for all team members, regardless of location, at these meetings, many of these risks are mitigated effectively. There are so many great collaborative video/voice/screen sharing tools available that this becomes easier to maintain.

If your software development partner is in a time-zone that allows a significant overlap with your local team members, these tools can extend your options even further. Many organisations enjoy the advantage of having all the team in real-time communication through the business day via Zoom, Skype for Business, GoToMeeting etc. All the small questions that present themselves throughout the day can generally be discussed by the team as they arise, and solutions agreed without any delays in the project timeline..

Collaboration through Process

There is nothing more frustrating than working with a team, some of whom are following one process or standard, whilst others seem to be on another path entirely. You would never accept this in a local team.

When augmenting your team with remote developers through a partner, it is essential to try to have them work in exactly the same way as your local team. Ideally, every team member should use the same processes and tools. This way, everyone can see clearly where other team members are at in their work, everyone is working off the same priority list and timetable, and team members are much less likely to be stepping on each other’s toes.

As well as the communications tools mentioned earlier, consider having your team (local and remote) running off the same code repositories, versioning system, issue tracking system, documentation management system, and so on. The closer that the team members work together, the more likely it is that the project will succeed.

The roles played by key stakeholders should be clear to all team members. Your local team members may be in no doubt as to who the Product Owner is, but it is important that the remote team members are as well. You need to commit to having your Product Owner actively involved in regular team meetings if at all possible. Sometimes that is impossible, of course, and if so you should plan to have a proxy involved on the Product Owner’s behalf (and advise the team of this). This means that the communication lines are always clear to all team members. And don’t forget – if the people in these key roles change for whatever reason, the entire team needs to be updated immediately.

Collaboration through Team Integration

As the manager of a software development team, you know that great outcomes rely on having an integrated team all working toward the same goals and adapting to changes and issues that inevitably arise.

There are plenty of very successful companies who have been using team augmentation from a Software Development Partner to drive success in their development programs for years.

The challenge is to realise the benefits that flexible and cost-effective team augmentation brings, while not compromising the team integration that is such a vital part of the equation. The tools you select to facilitate that integration matter – a lot! With a wealth of such collaborative tools available on the market now, take the time to select those that work best within your team.

By thinking about and planning for effective collaborative strategies as part of your move to a geographically distributed development team structure, it is very possible to achieve the balanced, integrated team you need to reach your company’s goals.

Comparison of Kubernetes Service Offering from AWS, Azure and Google

Comparison of Kubernetes Service Offering from AWS, Azure and Google image

Nowadays many organizations opted to adopt container-based architecture in their application development lifecycle, which can increase efficiency on the development process, offering more consistent deployment process. However, it is not an easy task to set up and configure environment that able to orchestrate and manage multiple containers at once. Using Kubernetes may help to perform container orchestration, however creating Kubernetes cluster in on-premise environment is not an easy task. This is how the managed service from major Cloud provider can save time.

In this white paper, Mitrais evaluates managed container service from 3 major cloud platform provider. Get the full report by downloading our white paper.

Featured Employee - Kustian

The ‘Accidental’ Expert

Some people know from an early age exactly what they want to be. They have a relative in a profession who they long to emulate, or they are inspired by someone from a book, television show or movie that they see who sets them on the path to their career.

For others like Kustian, though, expertise in a field and the successful career that follows sneaks up on them without their even noticing.

Today, he is one of the highly acknowledged Technology Evangelists within Mitrais, with specialised knowledge in complex Java solutions that benefits our clients and teams every day. He is in demand as a trainer involved in Mitrais’ internal training, and often appears as a speaker on technical matters at Mitrais sponsored events. But is wasn’t always his plan.

Born in Bandung, one of Kustian’s earliest memory is being a huge fan of the classic Sesame Street. At the time, it was just great fun, but in hindsight he is sure that it was an invaluable aid in learning English at a very young age. He “accidentally” acquired a language skill that was to be a key factor in his schooling and the great career to come, but this wasn’t the last time such an accident would happen to him.

Taking advantage of that head start, Kustian went on to study in elementary a high school in Bandung. Immediately following his graduation, he was offered a scholarship at the prestigious STIE-STMIK (now known as Universitas Nasional PASIM) to study Information Management. It was during this time that Kustian first found himself becoming interested in programming.

As he was completing his dissertation, Kustian was offered a few month’s work on the island of Kalimantan, and he suspended his study briefly to experience this. On his return, he resumed his studies from Jakarta while working there. After nine months, though, Kustian missed his family in Bandung (particularly his young daughter), and he decided to relocate to home.

So, what to do next? His wife suggested that Kustian might apply to Mitrais. Unsurprisingly, he impressed at interview and was offered a position quickly. Welcome to the Mitrais family, Kustian!

But what of this new career? Kustian says “I never dreamed of being in the IT world. I remember the first time I borrowed a programming book on Fortran from my local public library after high school graduation. I didn’t even realize that Fortran was a programming language at that time. In the end, I gave up on the book because it was too complicated to understand. I knew nothing about computer programming at that time. It’s funny to me that, even though I had DBASE, Chi-writer, and Clipper lessons in my junior high school, I never realized that those were programming lessons until I took my study in college. But thanks to those early lesson, I found programming studies easier at college. You could say that life dragged me into IT world!”

But still, Kustian wasn’t sure about his new direction. Although he applied to Indonesia Open University to study Management, he found himself constantly drawn to web articles about the latest IT technology. At the same time, he was fascinated by the hobby of hacking his phone (first Symbian and Blackberry, and eventually Android), and hacking mods for the games that he enjoyed. He was hooked, and clearly had talent in software development and modification.

So that’s what got Kustian back on track to his IT career. Since then, he has gone from strength to strength, becoming one of Mitrais’ leading experts, particularly in Java. In Mitrais,  Kustian has been actively involved as a trainer on Mitrais’ internal courses, participated on out Java Bootcamps where other developers benefit from his experience, and become a key speaker at Mitrais’ sponsored events. And, of course, he is a valuable expert in formulating solutions for clients on significant projects. He seems to have found his home, even if it was by accident.

But he still enjoys learning. As he says, “I enjoy being part of the IT world, but I have taken several other courses like “Learn how to learn” and “R Programming Language”, even though they are not directly related to my main skill – Java.”

Kustian remembers a great quote from a developer on a forum that he read long ago. “As a developer, we can make the world better”. He never asked that person exactly what they meant by that. But he thinks he understands now – “We are not just helping business to work better, but also the people, society and environment around those businesses”. And, in the end, accident or not, Kustian seems to be in the right place – and Mitrais is glad he is!

Get the latest news from us to your inbox

Stay informed with our latest news delivered straight to your inbox