software engineering

This subject is mainly focused on project management for the Software Oriented Architecture (SOA) project.

Descriptive part

Project management is the process of leading the work of a team to achieve all project goals within the given constraints. This information is usually described in project documentation, created at the beginning of the development process. The goal is to optimize the time spent on a project while reducing the associated risks that would make us lose money on a project.

During the course we studied several project management methods including the Waterfall model, the V model, the Incremental model, the Spiral model, the Unified process (RUP: Rational Unified Process) and finally the Agile method. It is this last one that we will use for the management of our project in SOA.

The goal of the Agile method is to improve their process and reduce their failure rate. To do this, they place the customer at the heart of the project and adapt throughout the project. This is a whole new way of looking at things, and of approaching the development of a product, a service or a project.

An agile methodology includes setting short-term goals. The project is thus fragmented into several sub-parts that the team in charge of it has to reach progressively, adjusting if necessary the objectives to meet the customer's expectations as much as possible.

Jira

We chose to use the JIRA tool to apply the SCRUM method to our project. This tool allowed us to create user stories and the backlog as well as the different sprints. It also allowed us to distribute the tasks and to see the evolution of the project in real time.

Jenkins

Jenkins is an open source software which is used in server's automation. With Jenkins, we can build, test and deploy our micro services on a container. On the picture below we use Jenkins et build all of our dependencies for each microservices. 

Technical part

This section describes the context of the subject, my accomplishments and a summary of the skills I have acquired.

Presentation

The course runs from November to January and is evaluated in the form of a project. I realized this project in collaboration with GENEAU Téo and KHALED Walid.

The work done during this project is to be put in parallel with SOA which approaches the project organization with Jira. I faced the same problems as SOA and also have the same observations overall so this part is going to be shorter. This subject is evaluated by a report that you can see on the SOA page.

Observations

I am making the same remarks as SOA tutorials. They are very well guided and therefore carried out and allowed me to progress very quickly because almost all the problems I encountered were referenced in the tutorial. 

I regret the fact that Jenkins cannot be deployed on a server at INSA. I had to try to do it myself and it took me extra time.

We also faced, the same organization problem as SOA and despite that, I was still able to understand all the concepts of the course.

Skills  used

This subject didn't really call upon the skills I had before, except for the basic skills in project organization for Jira and perhaps in Unix for Jenkins.

Review

I am now able to use tools like Jira to conduct a project in agile method and to automate my tasks with Jenkins.

Analytical Part

This section presents a comprehensive analysis of all the knowledge and skills acquired during this experiences

Skills matrix

Define the different phases in software development

Know the different project management methods

Apply one of these methods a project

Further Explaination

This part comes very late in the year and could have come earlier for the innovative project. However, I was able to gain experience through the innovative project and this course.

See related work

Click on the button below to visit my GitHub SOA Repo.