It has been noticed a few years ago that the trend of turning to the work-from-home model has been rapidly increasing, among all levels of software companies, that you may have heard about some teams in Microsoft, Google, and many others.
Although it wasn’t so easy to work in the same performance as it was in on-site mode, the team as well as management had to pass many challenges and overcome a lot of obstacles to reach the satisfaction level.
And here we should mention some other actors which were playing main roles to succeed with the new model, such as technical infrastructure readiness, management hierarchy, applied process, and development methodology, as well as team member’s willingness to perform the same as and maybe more than old models they used to have.
Today in our article we will focus more on the last 2 factors, process and team member performance.
As most of you may agree with me to choose agile as a development methodology as many of great companies have implemented many years before, we also are going to build our model on agile as well, but this time it will not be either SCRUM or Kanban but we are going to use the term remote-agile for the new methodology which we highly recommend to use when coming to remote or distributed teams management as we strongly believe.
Agile Principles at a glance
In the beginning, I would like to refer to some – not all – principles from the agile manifesto which are most important and considered as essential rules for remote development.
That doesn’t mean other principles are not important, but they are not as essential as those we mention.
Collaboration: “Business people and developers must work together daily throughout the project.”
Means, the idea owner must be engaged in the development process and try to be close to the developers to ensure the same understanding of what exactly the business value/s we need to introduce to the market.
Simplicity: “The art of maximizing the amount of work not done is essential.”
Always challenge the feature before you start developing, if it matches the main objectives of our product??, if it doesn’t, then postpone it for now.
There are many ways that help define those important and essential features that our product must have before launching to market, and that is how we introduce our MVP release.
Early and Continuous Delivery: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
That means you always get feedback on what has been done till now, and as you go you can verify your idea and tune your direction to the right customer with really needed value/s.
Working software: “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”
Also: Working software is the primary measure of progress.
You may have noticed that “working software” is an expression that has been used more than a time in different principles, and that of course because it is the primary measure of development progress.
Never consider building a Back-end component or an RD diagram of your database as a deliverable item, instead, focus to deliver something functional, that could be used by a user.
I wouldn’t say it is something easy to achieve all the time, however, if one follows the agile practices he will learn how to do such a thing in daily work.
The main benefit of this principle is you always have something working and could be shown or presented to any prospect.
Lacking Principles with Remote Agile
Interactions over processes and tools
As per Agile Manifesto: Individuals and interactions over processes and tools is the first rule
Unfortunately, that doesn’t comply 100% with remote-environment, where the only way to communicate is over video/audio calls and most of the time through chatting apps, which forces tea to step back again to stick to the processes and lay on some tools to avoid conflicts or adding ambiguity.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Co-Location is mandatory in other agile methodologies and particularly in SCRUM, however, it is not valid in remote-work, so How can the team overcome this challenge?
Engagement of businesspeople
Business people and developers must work together daily throughout the project.
Actually, it is still a challenge in the normal working mode, but it is– of course – becoming worse in remote-work unless we find a way to maximize the value of the meeting with the business presenter, by being prepared, focused and to the point in our questions and inquiries.
Technical excellence: “Continuous attention to technical excellence and good design enhances agility.”
This principle – with its 2 parts – is a challenge itself, where the second “the good design” will stay a critical factor of success even for normal working modes, and of course, by applying a good cloud architecture with a proper technology stack which complies with our project roadmap can solve it one time and for all time, still, we lack the first part “technical excellence” especially with team skills.
Our recommendation is to spend some time designing your solution or product, try to be precise about the technology stack you will use, it is critical and could be a point of failure in the future.
And once you did, you should have got those skills among your development team, and avoid lack of experience, but if you really can’t avoid, then you should do the following:
- Improve your skills first, try to get the knowledge before you start.
- Hire a talent, even part-time, at least at the beginning of the project.
- Keep improving, by learning and practicing.
- Have a coach, who can ensure product delivery, as learning does consume time and effort which – in most of the cases –deviate the delivery plan.