Windows Containers – What is it and why should we care?

This post is originally published as article within SDN Magazine on February 28th, 2017.

One of the hot topics within the Microsoft development community right now is undoubtedly the “container” topic. Following the success of both Docker and containers on Linux, Microsoft developed a Windows container implementation on Windows Server 2016 and Windows 10. After two and a half years of development plus one year of running this container technology in preview for insiders (Windows Server 2016 TP3 – TP5), September of 2016 finally saw Microsoft’s announcement that it had released Windows Server 2016 to the public.

While the container technology and Containerized Delivery have been used by non-Microsoft focused enterprises for a few years now (Linux has had its container technology since August 2008), the Microsoft community is only at the beginning of this new journey. This is, therefore, the perfect moment to ask ourselves whether we should care about Windows containers, and whether we should look into the structure of this new technology. However, before we take a more detailed look at Windows container technology, let’s look at the way in which we have been delivering our applications for the past 10 years.

Read more →

No WeChat no life (part III): implementing an echo service

In this three-part series on WeChat, Léon will show you how the Chinese alternative to WhatsApp’ is transforming the on- and offline lives of Chinese consumers, thereby forcing companies to reconsider their marketing and sales strategies. In the previous two parts, he argued for the necessity of a presence on WeChat for companies facing Chinese customers and gave an overview of the features. In this part, he will show you how to build a simple echo service using the WeChat APIs.

After the previous two more theoretical posts, it is time to get our hands dirty. As you might recall from part 2 of this series, companies can register an official account (OA) on WeChat to get access to all the APIs that the platform provides. An OA shows up in a user’s chat list, either between the regular chats or in a dedicated folder, and can send and receive messages to users or provide other useful on-demand services in the chat. Today, we will build an endpoint that follows the WeChat standards and can be tested on WeChat using the debug sandbox. It will echo any message a user sends by replying with the contents of the message reversed. Although this is not a really compelling example, it sets you up with the right tools to build more enticing user experiences on WeChat (and it forces you to register a WeChat account ;)). 

Read more →

First Adventures in 3D Printing

Xebia recently acquired a 3D printer, a Prusa i3 MK2S to be precise. It came as a kit so it required assembly before we could put it into action. Luckily, multiple 3D printing enthusiasts at Xebia had done this before. I wasn’t one of them, so I mostly watched and helped out where I could.

Assembling the printer took several evenings, but eventually, it was done! It needed to calibrate itself afterward, to know the position of its head and nozzle in relation to the bed. Prusa added an automatic setting in its menu to make calibration as painless as possible. The MK2 comes with multiple ready-to-print example models, and over the following weeks, various Xebians (including myself) printed one of the models. Now we have quite an eclectic collection of 3D printed vases, whistles and dinosaur bones laying around the office. 

These models were fun, but I wanted to print something other than an example. I’m a software engineer at Xebia, currently working on a project built in GO.  As some of you may know, the mascot of the Golang programming language is a Gopher. I don’t know why, but for some reason, I got it in my head that I wanted to print a Gopher.

Read more →

Which DevOps topology is right for me?

Why should I read this?

You’re working in an organisation that aims to explore the benefits of working according to DevOps principles. You’ve heard terms like “platform team” and “SRE” and you have an idea what “you build, you run it” means. These terms, however, have made your exploration into DevOps more complicated and now you even have to choose how to organise your team(s). This blog provides an overview of the three most applied DevOps topologies and which conditions make a specific topology a good fit for your company.

As a reference, Matthew Skelton’s “DevOps topologies” (http://web.devopstopologies.com/) page gives a nice overview of all kinds of organisational topologies. These topologies have been implemented by companies around the world in their quest for agility and operational excellence through DevOps. Although many topologies have been documented, I believe that they are all variants of these three topologies:

1. All teams are product teams. Each team does everything that is needed to run their software including the use of any infrastructure components, usually cloud-based PaaS.

2. Internal platform team(s) and Product team(s). Product-teams make use of the infrastructure/platform-services provided by internal platform-team(s). Services provided by the platform-team(s) can range from infrastructure and “run” services such as monitoring to Continuous Integration tools and dashboarding tools.

3. Internal Platform team(s), Product team(s) and Site Reliability Engineering team(s) (SRE). This topology is based on Google’s best practices around running software. Product teams can gain the SRE teams’ support in running their software if they need it and if their software adheres to standards defined by SRE teams. SRE teams can also share on-call responsibility with product teams. The platform-team(s) provide infrastructure/platform-services.

The DevOps topology that will have the best fit within your organisation is dependent on your current organisational hierarchy, scale, regulatory requirements and people’s skills. It is also important to recognise that any chosen topology has its pitfalls, which need to be dealt with.

Read more →

Scrum Master Q&A Fulltime Scrum Master Role

In my Scrum Master training courses, I get a lot of questions about the workload of a Scrum Master. One question I hear frequently is this:

Is the Scrum Master role a full-time job?

The answer is yes! In my opinion, the Scrum Master role is a full-time job. As a Scrum Master, you support the Development Team, the Product Owner, and the organization. You help others understand and master Scrum, and to achieve their potential at different levels.

Scrum Master activities can include any of the following:

  • facilitating Scrum events
  • working on the Scrum process
  • helping teams to become better
  • supporting empiricism
  • promoting inspecting and adapting
  • facilitating teamwork
  • removing and solving impediments,
  • assisting the Development Team to become self-organizing
  • help the Scrum Team to live by the Scrum values,
  • and observing team dynamics.

You will have your Scrum Master radar on at all time. You watch the things that are not being said, and you sense the things that are not on the surface. You can’t do that if you’re not there.

With this in mind, here are some answers to some other frequently asked questions.

Can you combine your Development Team role with the Scrum Master role?

No, you will lose focus and will not be able to excel in either role.

Imagine yourself as a developer, you are in the zone, minding your own business and delivering value. Then, suddenly, another developer has an impediment – the deployment to the acceptance environment did not go well because this environment is down. Your team member has tried everything to get it back up again, but it doesn’t seem to help. He asks you if you could help him. If you do not help your team member right away, he is not able to continue. So you leave your current coding and help your team member. When you finally have solved the impediment, you return to your work and continue. You have to connect with the subject again, since you were distracted for a while. Your focus is lost.

What if your company requires you to combine your Development Team role with the Scrum Master role?

If your company requires you to combine your team and Scrum Master role, make clear agreements with the Development Team about how to interact in the event of an impediment. Make it explicit agreements which role has priority.

Can we rotate Scrum Mastership amongst Development Team members?

No, you can’t rotate Scrum Mastership amongst Development Team members because not everyone on the team is a capable Scrum Master. The Scrum Master role requires certain capabilities, skills, and behaviors. Some of these Scrum Master characteristics can be learned, coaching, listening, facilitating, mentoring, observing, intervening but others are innate, such as servant leadership and being pro-active. If you have a role on the Development Team and you are also the Scrum Master, you will lose focus.

What if your company requires you to rotate Scrum Mastership?

If your company requires you to rotate Scrum Mastership, make sure that you are the Scrum Master for more than one sprint (e.g. three sprints) so you can start developing SM skills before you switch.

Can you combine the Product Owner and Scrum Master role?

No, it’s not a good idea to combine the Product Owner and Scrum Master roles because it creates a conflict of interest.

As a Product Owner, you’re busy with your stakeholders, changes in the market, exploring what delivers the most business value and helping the Development Team understand the requirements you have. As a Scrum Master, your focus is on supporting the Development Team, the Product Owner, and the organization. So, the people you contact the most are different and have different approaches.

 

As a Product owner, you want to deliver business value at the right pace. You can challenge the Development Team to take up a lot of items in the Sprint Backlog. As a Scrum Master, you protect the Development Team from overly demanding Product Owners (believe me, they exist). You do this by helping them asking challenging questions, like: Do we really believe we can finish this? Do we understand what is being asked? It is difficult to approach the team while wearing two hats. You will lose focus.

 

What if your company requires you to combine the Product Owner role and the Scrum Master role?

If your company requires you to combine the Product Owner role and Scrum Master role, make sure you have a clear distinction between them.  It’s also important to clarify which position you’re coming from with those with who you interact.

 

Can you work as a Scrum Master at a different location from your team or the Product Owner?

No, it’s not possible to function effectively in the role of Scrum Master if you are not onsite with the Development Team. You need to be present to sense the things unsaid or feel the vibe in the room. If the Scrum Master and Development Team work at the same location but the Product Owner and stakeholders are at another location, the necessary contact and collaboration are lost.

 

What if logistics require the Scrum Master and Development Team to work in separate locations from the Product Owner and stakeholders?

If you can’t work in the same onsite location, interact with each other as often as possible. Make an all-day video connection if possible. Ask Development Team members who work on different locations to work together in the same location for a period of at least one month. The team members will get to know each other a bit, this will help to build trust in the team.

If you’re still stuck in a situation that prevents your Scrum Team from performing at its best, please contact us: info@scrumboosters.com

 

Scrum Master Scan

There was a point you were a Scrum Master for the first time. Maybe you read about Scrum and decided the Scrum Master role would be perfect for you, or maybe your company chose to work with Scrum and pointed you out as the Scrum Master. Either way, there was a day one as a Scrum Master, you started learning about Scrum, about people, about organizations and a lot more.
 
As Scrum Masters, we never stop learning. I learn every day, I experiment, I broaden, deepen and share my knowledge, and I challenge myself to keep learning. To find new suitable ways to facilitate, new models to use when coaching people, games to bring things across, etc.
I fail, and I learn, I succeed, and I learn. I do assessments, and I fail; I do assessments, and I pass. But in all these activities I learn. But in which areas can I learn most?
 
As a part of the learning process of a Scrum Master, we developed a Scrum Master Scan.
To see at which points you have learned and at what point you have room to learn more. The scan is an online survey with almost 90 questions. The result is a graphical display with a score on three areas, attitude & behavior, craftsmanship, and results. Are you a Scrum Master and want to use the Scrum Master Scan, please contact eroos@xebia.com 

Deep dive into Windows Server Containers and Docker – Part 3 – Underlying implementation of Hyper-V Containers

Last April I visited DockerCon 2017 and while they announced many new great things like the LinuxKit and the Moby Project, one of the most appealing announcements for me definitely was the announcement of John Gossman that Microsoft and Docker made it possible to run Linux containers natively on Windows Hosts by using the same Hyper-V isolation layer as Hyper-V containers. So, time for me to create a blogpost about Hyper-V containers and to explain how this Hyper-V container virtualization layer works.

Read more →

TDD in React

It’s nearly impossible to keep up with the pace JavaScript frameworks pop up nowadays and I believe it’s good to have some focus. For me, this means the big three as defined in this post and more specifically doing basic TDD with React. Read more →

Share This