# 2. Project Management¶

This week I worked on project and time management.

I also found additional material by Fiore Basile which I found very useful so here it is:

The project development guidelines previous projects by other student can be found here.

## Research¶

### Time Management : Demand-side vs Supply-side¶

One thing that struck me during the first lecture with Neil, is the concept of Demand-side vs Supply-side time management.

I want to investigate it further but here is a summary.

“You will never be done with your project !”

Indeed, when you start something, the end is somewhat undefined and often even when it is, you will discover that the metrics or criteria you used to define the end of the project are not appropriate.

Thus, you will never finish your project if you just intend to work on it until “it is finished”.

The other method is to plan what how much time you have to perform a given task and deliver something and do the best you can in that period.

I don’t really know which one is the demand-side and which one is the supply-side but I think the second one is the demand-side.

The second is in anyway much more reliable to make sure you deliver on time, because that is how it is built.

This is even more true when what you need to do is learn as, by definition, you can always continue learning and you are never truly finished.

My time management is not optimal for the moment and I will work on it to plan ahead and define a schedule for the coming week with the time I plan to spend on each activity.

### MkDocs vs fastpages¶

MkDocs is a static site generator based on Jenkins and markdown files.

If you want to learn how to build a simple blog while keeping the possibility to add complexity, it’s an interesting choice.

Another interesting and very similar platform is fastpages, it is similar because it also serves static sites but instead of using markdown files, it uses Jupyter Notebooks.

JupyterNotebooks allows the user to write in markdown as well but mostly, you can write code and display the output directly on your website without any manipulation or additional coding.

To keep it simple, I’ll stick to Mkdocs here, anyway I have not used fast pages a lot either.

To learn MkDocs, the original website is a bit dry so I advise you to take a look at the FabAcademy tutorial which is very well made.

### Git¶

The FabAcademy is using git and GitLab to support the creation of our static websites.

I am fairly familiar with the basics of git which are:

// Initialize a git repository
git init

// Add a file to the stage (things that will be commited)

// Commit changes
git commit -m "<Commit message>"

// Push your changes to the origin repo (in our case the GitLab hosted by Academany)
git push

// Pull changes from the central repository
git pull

// Go back to a previous commit with a specific id or hash
git checkout <commit hash>

However, I am not very comfortable with the branches, merging and more complex functions of git. It’s understandable as they are mostly useful for collaborative work, when multiple people work simultaneously on the same files/folders.

Neil advised us to do a git tutorial so I’ll be working on that.

### HTML and CSS¶

I like to have something that works well and is easy to use, build and maintain. HTML and CSS are not part of my core skills but I can already read and understand how it works thanks to great tutorials I did a couple of years ago.

I wanted to relearn some HTML/CSS from freecodecamp.org but finally decide to focus my energy on other topics and thus did not do it in the end.

I was very impressed by the websites of the other students and decided to invest more time on mine. The images were not displayed as I wanted so I looked at how Maxime did it and used his syntax to get my images shown with a legend.

<figure> <center>
<img src="PATH" alt="" width="80%"/>
<figcaption>Label<figcaption>
</figure>


## Reflections¶

After the review of the documentation of the other students, I realized that I had not documented my work properly and should redo part of it, rethink my way of working and documenting to prepare better the next assignments.

During the regional meeting, I discovered the work of Erwin Kooi who did an awesome job in my opinion to organize his learning process and his schedule for the week. I therefore decided to use that as inspirations for the next assignments.

If you want to check out Erwin’s work, you can find it here.

The good ideas were :

• Include the assignment to make sure you stay focus on what is required

Define

• what you plan to learn,
• what you actually learned.

Include “Reflections” after the week is done describing :

• what went well
• what went wrong and how did I fix it
• what I plan to do differently next time

Build a template for all assignment to have it ready to go for the next assignment

Therefore, I will do the exercise now.

### What went well ?¶

I was ready before the assignment started and I had a website up and running on time. I know git well enough to manage my work, so i’ll be able to do mostly everything from the command line. However I need to improve my understanding of git branches and merging.

I successfuly compressed my images and described my final project.

### What went wrong and how did I fix it ?¶

I did not go deep enough in understanding how MkDocs worked and stayed stuck on dumb blocking points such as not changing the theme because I had not noticed that there was a requirements.txt file where I could download it.

In short I lacked grit. However I came back to my previous assignment (i.e. this one) and improved it.

I did not plan my work thoroughly nor documented my work completely as others did and thus it would be difficult to continue like this in the following weeks.

To fix this, I took inspirations from others such as Erwin to structure my work for the following weeks.

### What I plan to do differently next time ?¶

I plan to start the assignments by defining what my objective is and start building a process for the documentation.

As a first step for the documentation, I prepared a script to compress images automatically. I will :

1. Put all non compressed images in the same folder that is not synchronized with the online repo
2. using Python and OpenCV, I will compress these images, and save them in the same file structure in another folder that is synchronized with the online repo.
3. If the file structure does not exist, I will create it.
4. I will share that script and instructions with my fellow FabAcademy students.

## Files¶

Last update: August 24, 2021