Analyze the way Software Projects are developed among Distributed teams highlighting the various hurdles, a typical Distributed team may face, including the solutions and the most appropriate tools to help overcome those challenges
3. Index
• What is Distributed teams?
• Barriers for distributed teams
• Issues-Tools
1. Source Code Management (Git)
2. Collaboration (Slack)
• Slack Vs Skype
3. Containerization (Docker)
• Docker Vs VM
4. Calendar and Timeline (Teamweek)
5. Test and Issue Tracker (Toggle)
4. Distributed teams?
According to Forrester Research 63 million Americans
work from home as in 2016, comprising 43% of the US
workforce.
If we extrapolate this to a global workforce, there are
potentially hundreds of millions of people willing to
work as part of a distributed team.
In the new world order, the best talent doesn’t reside
in one location: it’s more distributed than ever!
5. Barriers to Distributed Teams
• Physical separation: Leads to lack of collaboration.
• Working in separate organizations: Lack of
security while sharing information.
• Time-Zone differences: Difficulties in establishing
real time meetings
• Language and culture: Misunderstandings due of
different languages can lead to major mistake.
7. Source Code Management
• In software engineering, software configuration
management (SCM or S/W CM) is the task of tracking
and controlling changes in the software.
• SCM tools can provide file management and version
control facility, so the members don’t overwrite each
other’s changes
• SCM can also provide security for the data stored.
8. Version Control System
A component of source code management that
performs various tasks such as-
• Method for centrally storing files.
• Keeping a record of changes.
• Who did what, when in the system.
• Covering yourself when things inevitably go wrong.
11. Why Version Control?
• Collaboration: Shared workspace and notification
when any changes are made.
• Storing Versions: Snapshots of all versions are
properly documented and stored and named
accurately.
• Backup: If central server crashes, backup is always
available in local server.
• Analyze: Proper description like what and when
changes were made.
14. Distributed version control tool that supports distributed non-
linear workflows by providing data assurance for developing quality
software.
What is git?
17. • Distributed:
Allows distributed development of code.
Every developer has a copy of entire development history and
changes.
• Compatible:
Compatible with existing system and protocols.
SVN and SVK repositories can directly be accessed using Git-SVN.
• Non-linear:
Supports non-linear development of software.
Includes various techniques to navigate and visualize non-linear
development history.
18. • Branching:
It takes only a second to create and merge branches
Master branch always contains production quality code.
• Lightweight:
Uses lossless compression techniques to compress data on the
client’s side.
• Speed:
Fetching data from local repository is 100 times faster than
remote repository.
Git is one order of magnitude faster than other VCS tool.
• Open source:
You can modify its source code according to your needs.
19. • Reliable:
On event of system crash, the lost data can be easily recovered
from any of the local repository of the collaborators.
• Secure:
Uses SHA1 to name and identify objects.
Every file and commit is checksummed an is retrieved by its
checksum at the time of checkout.
• Economical:
Released under GPL’s license. It is for free.
All heavy lifting is done on client side, hence a lot of money can
be saved on costly servers.
22. Collaboration
• Teams are expected to produce results, but
performance is hindered when team members
do not work well together. A collaborative
team environment is essential for the team's
success.
• To create a collaborative environment, team
members must practice the following:
23. Have a Common Purpose and Goal
Trust Each Other
Clarify Roles
Communicate Openly and Effectively
Appreciate Diversity
Balance the Team's Focus
24.
25. ?
• Slack creates alignment and shared
understanding across your team, making you
more productive, less stressed, and just a little bit
happier.
• Slack brings all your team's communication
together, giving everyone a shared workspace
where conversations are organized and
accessible. You don’t have to go to every meeting
to stay informed.
• Slack builds a searchable archive of your team’s
conversations, decisions, and work — made more
useful with machine learning — putting
knowledge in everyone’s hands.
26.
27.
28.
29. • Integration is what takes Slack from a normal
online instant messaging and collaboration
system to a solution that enables you to
centralize all your notifications, from sales to
tech support, social media and more, into one
searchable place where your team can discuss
and take action on each.
30. At its heart, Slack is an instant
messaging and collaboration
system on steroids
31.
32. • Is Slack better than Skype? For many
businesses considering communication tools,
Slack and Skype are among the top services
being considered.
• As they are two of the most popular
messaging and audio/video calling solutions, it
can be hard to choose between the two
platforms.
• To help you find the right communication
solution for your business, here's a criteria to
set the basis for choosing Slack/Skype
36. Containerization/V.M
• There are often many roadblocks that stand in the
way of easily moving your application through the
development cycle and eventually into production.
Besides the actual work of developing your
application to respond appropriately in each
environment, you may also face issues with tracking
down dependencies, scaling your application, and
updating individual components without affecting
the entire application.
37.
38. What is Docker?
• Docker is an open-source project that
automates the deployment
of applications inside software containers, by
providing an additional layer of abstraction
and automation of operating system–level
virtualization on Linux.
39. • Docker is a tool that can package an
application and its dependencies in a virtual
container that can run on any Linux server.
This helps enable flexibility and portability on
where the application can run, whether on
premises, public cloud, private cloud, bare
metal, etc.
40. • Building on top of facilities provided by
the Linux kernel (primarily cgroups and
namespaces), a Docker container, unlike a
virtual machine, does not require or include a
separate operating system. Instead, it relies on
the kernel's functionality and uses resource
isolation (CPU, memory, block I/O, network,
etc.) and separate namespaces to isolate the
application's view of the operating system.
44. Team Calendar
• To organize and complete your projects in a timely,
quality and financially responsible manner, you need to
schedule projects carefully.
• Effective project scheduling plays a crucial role in
ensuring project success. To keep projects on track, set
realistic time frames, assign resources appropriately
and manage quality to decrease product errors.
• This typically results in reduced costs and increased
customer satisfaction. Important factors include
financial, documentation, management and quality
assurance.
45.
46. Teamweek
• Visual, Colorful Calendar for Easier Project
Management.
– When creating tasks with Teamweek, you select a
color for a project and all tasks under that project
automatically carry the same color, allowing you to
spot dependencies in just a glance. You can plot tasks
on a timeline, and in case of any changes to the scope
or schedule, you can drag and drop the tasks as you
see fit.
• Enable notifications for your tasks.
• You can share your calendar in multiple ways.
47. • Customize your own calendar.
– Teamweek allows you the freedom to customize
your user experience. You can hide the weekends
from the calendar, enable notifications, subscribe
to a weekly overview of the activities happening in
a workspace, and even turn on the visually
impaired mode to personalize your dashboard's
look and feel.
50. Test and Track
• Time-tracking can feel painful, but the
benefits extend much further than the
accounting department. Next time you’re
feeling like you couldn’t bear to add one more
minute to your timesheet, perhaps the list
below will help remind you and your team
why time tracking is a good idea.
51. Benefits
• Data for future project costing/estimation.
• Data for processing payroll efficiently.
• Data for billing/invoicing automation.
• Insight into costs/ Now that they’re visible, perhaps you can go about
lowering them!
• Get a raise
• Get help when you need it
• Accurate delivery dates
• Easy re-estimation of open tasks
• Project start dates
• Reporting
• Discipline
52.
53. Why Toggl
• Logging time with Toggl is as easy as it can possibly
be. Just click a button to start the timer, and stop it
once you’re done with your tasks. Simple as that, on
any device.
• Instead of always opening Toggl to start tracking,
connect your timer to more than 100 web tools via
browser extensions and track time from anywhere on
the web. Honestly, logging your hours can’t get any
simpler.
54. • The visual reports make it extremely easy to keep
track of your time usage. See exactly how long
each task takes, how many hours your team
spends on different projects and clients, and
who’s currently working on what.
• Set up projects, assign responsibilities and follow
the progress. See how well your projects are
hitting the estimated timelines and budgets, and
immediately spot what’s overdue or over budget.
Knowing this will help you plan your time and
resources more accurately.
55. Features
• It allows to set tracking reminders.
• It can record your computer usage.
• You can save and share toggl reports.
• Track time with single click.
• Log time everywhere on the web.
• You can see what's overdue and over budget.