Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ch2: Feedback #531

Open
g4brielvs opened this issue Dec 8, 2020 · 2 comments
Open

Ch2: Feedback #531

g4brielvs opened this issue Dec 8, 2020 · 2 comments

Comments

@g4brielvs
Copy link
Member

g4brielvs commented Dec 8, 2020

I am thankful for the opportunity to share our feedback as part of the final review (#476) and I appreciate the effort DIME is putting in disseminating these valuable guidelines and resources.

The chapter addresses a crucial part of a project's success: collaboration. Here are some ideas, especially coming from the angle of the Data Partnership. I'd be more than happy to collaborate.

Ideas

  • More often than not, relying on absolute paths causes trouble. It will almost guarantee your code won't run on computer other than yours.

    Ensure you know how to get the \textbf{absolute file path} for any given file.\index{absolute file paths}

  • It is recommended to check the Bank's stance on Dropbox. Alternatively, the Bank supports OneDrive with the advantage, other than being official and offering up to 5TB per account, of ensuring data classification (Official Only, Confidential, Strictly Confidential).

    When you are working with others, you will most likely be using
    some kind of \textbf{file sharing} software.\sidenote{
    \url{https://dimewiki.worldbank.org/Collaboration_Tools}}
    \index{file sharing}

  • It would be beneficial to have additional step-by-step examples on how to set up the many recommendations on the chapter. More can be found at DIME Wiki, but the intended audience might find helpful to have quick guides or more references to tutorials.

  • The book touches on a super important point when it comes to team communication and decisions. However, the section might need elaboration. Using tools like GitHub or Dropbox won't help much unless the team adopts an effective approach to project management. For example Agile, Agile-like, Scrum, Kanban. Of course, GitHub does support amazing features like GitHub Projects that can dramatically improve the team's performance (and sanity). In a nutshell, what's important here is not the tool, it is the process.

\subsection{Documenting decisions and tasks}
Once your technical and sharing workspace is set up,
you need to decide how you are going to communicate with your team.
The first habit that many teams need to break
is using instant communication for management and documentation.
Email is, simply put, not a system. It is not a system for anything.
Neither is instant messaging apps like WhatsApp.\index{email}\index{instant messaging}
Instant messaging tools are developed for communicating ``now'' and that is what they do well.\index{instant messaging}
They are not structured to manage group membership or to present the same information
across a group of people, or to remind you when old information becomes relevant.
They are not structured to allow people to collaborate over a long time or to review old discussions.
It is therefore easy to miss or lose communications from the past when they have relevance in the present.
Everything with future relevance that is communicated over email or any other instant medium
-- such as, for example, decisions about research design --
should immediately be recorded in a system that is designed to keep permanent records.
We call these systems collaboration tools, and there are several that are very useful.\sidenote{
\url{https://dimewiki.worldbank.org/Collaboration_Tools}}
\index{collaboration tools}
Good collaboration tools are workflow-oriented systems
that allow the team to create and assign tasks,
carry out discussions related to single tasks,
track task progress across time, and quickly see the overall project status.\index{task management}
They are web-based so that everyone on your team can access them simultaneously
and have ongoing discussions about tasks and processes.
Such systems link communications to specific tasks so that
related decisions are permanently recorded
and easy to find in the future when questions about that task come up.
Choosing the right tool for your team's needs is essential to designing an effective workflow.
What is important is that your team chooses a system and commits to using it,
so that decisions, discussions, and tasks are easily reviewable long after they are completed.
Some popular and free collaboration tools that meet these criteria are
GitHub and Dropbox Paper.
Any specific list of software will quickly be outdated;
we mention these as examples that have worked for our team.
Different collaboration tools can be used different types of tasks.
Our team, for example, uses GitHub for code-related tasks,
and Dropbox Paper for more managerial tasks.
GitHub creates incentives for writing down why changes were made
in response to specific discussions
as they are completed, creating naturally documented code.
It is useful also because tasks in GitHub Issues can clearly be tied to file versions.
On the other hand, Dropbox Paper provides a clean interface with task notifications,
assignments, and deadlines,
and is very intuitive for people with non-technical backgrounds.
Therefore, it is a useful tool for managing non-code-related tasks.

  • Probably out of scope, but it would be great to have a section on cloud computational environments and resources, such as JupyterHub, AWS Sagemaker or Google Colab.
  • Probably out of scope, but Python is a dispensable part of a modern analytics stack and there are considerations that might be useful when using Python or, more specifically, working on a data science project.
  • Probably out of scope, same goes for containerization with Docker.
@g4brielvs
Copy link
Member Author

g4brielvs commented Dec 8, 2020

Sorry. I don't have the permissions to assign a label to the issue per CONTRIBUTING.

@g4brielvs
Copy link
Member Author

g4brielvs commented Dec 8, 2020

Also, opening #532 to fix a typo to develop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants