Journey of achieving great software ( Part 2) — Remote team, Development process & Collaboration — Agility in practice

Marwan Darwish
4 min readJan 15, 2021

As per my last article, we were requested to start new software programs in pandemic crisis mode, with two major challenges: No developers onsite and no ready infrastructure to start development.

In our company, there is no centralized onboarding mechanism to grant the developer all needed access and permissions mandated to start their development, moreover: Starting new project with engineers that you have never met or work with is a significant challenge. Moreover; there will be no hardware for months.

After acquiring the needed green light from my boss, we have decided to move all our development to be on the cloud, we have decided to use Azure dev boards instead of our official Jira scrum boards, and we have choose to use Gitlab instead of official company bitbucket, Google sheets, instead of official Sharepoint or Confluence wikis and finally: AWS cloud services instead of our private cloud servers.

We have decided to work in Agile Scrum approach, which we usually use Jira as our Scrum tool (Personally, I much prefer physical boards and sticky notes, real standup meetings, the feeling of moving tasks , stockpiling real cards rather than virtual standup meetings and virtual scrum boards), as we do not have mail addresses and we need to start our work, so our product owners have did an exercise to asses different available Scrum boards , among them they have choose the usage of Azure dev boards.

Azure board was extremely nice and collaborative tool, with a very affordable price plans, supporting Kanban views and custom boards as well as out of the box sprint planning features as well as Epics, Features, User stories, Tasks, Bugs and enhancements, with multiple status, tagging, Shared search queries.

Also some custom plugin can support sprint poker estimation tools, Integration with Slack and many other nice features.

But for my team: The ultimate advantage of using Azure boards was that it’s immediate, we do not have to wait in the long mail creation and activation queue, no need to ask for Jira access, ask to create new project, no more change request to customize the board to fit our needs, in Azure dashboard to need to add one extra task status in the Kanban board for code review, this was done in five minutes.

The strongest challenge to work was that this was the first time ever in our organization to work Agile on distance.

Our very first step in team building was a long meeting, where I have asked every one of my team to speak briefly about himself, his name, location, background, education, marital status, kids names and I make sure that I have memorized every info I got, as a team building activity we need to get more closer, feel more humane, an effective team is a team that understand each other, trust each other and feel safe together.

For audio and video sharing, our company has provided us Cisco Webex accounts, which was our main vocal and meeting communication tool, a great tool with perfect audio, video and sharing quality, other good alternatives was Redhat bluejeans, Amazon Chime, Zoom and Microsoft teams, but we preferred using Cisco Webex as it was the official audio communication tool in our company.

We were looking for document collaboration tool, for which we used google docs and sheets, as almost everyone is very familiar with to keep any collaboratively editable document, while we considered all our official documentation to be stored over our source control, to keep controlling official documents editing, merge requests changes …etc.

For our source control we pick gitlab, Gitlab provide private work spaces on contrary to github which requires subscription fees for any team more than 5 to keep your code repositories private.

Gitlab have almost every possible feature we may need, especially DevOps build triggers (Webhooks).

Later we did a quick vocal assessment for every potential technology or technique we may use, to define the are of improvement everyone should work on, I have estimated a two weeks of training and POC to make sure that the whole team is on the same page, a long session was conducted to discuss the technology stack and why every fraction is needed with heated discussion and challenging on every part, these discussions was extremely fruitful and led to a better components plan, with little points to prove, hence, every one was requested to perform a POC on the target technology stack to evaluate the different alternatives and to pick the best fit.

Also we have used Whatsapp for casual texting, which I didn’t feel much comfortable about this, however we used slack for any one to one official texting and document sharing.

Last pain point: Direct free of charge calls (Whatsapp audio & Slack call is blocked in one of our country residence so it was not an option)

Originally published at http://demystifyprogramming.wordpress.com on January 15, 2021.

--

--