Review, Stages of project development, Best practices & TDD

Summary

  • What I’ve done.
  • Stages of project development.
  • Best practices to develop new projects.
  • Test Driven Development.

Session

We started reviewing the work I’ve done, I got from lesson 4 in head first to lesson 7 (around 150 pages) and I am getting a much better understanding of the Javascript language and the DOM.

I spent the Saturday finding out how to improve my learning process since I was feeling like quickly forgetting what I just learned, so I landed on the amazing article of Derek Sivers where I found out about Anki. I downloaded a couple of decks for Javascript and started creating my own. Now I spend 30 minutes every day doing my flashcards.

I showed AirCrewMentor the Grunt livereload server I installed and how I used the add-on fetch to quickly install a basic-plain version of the Grunt livereload server.

I showed AirCrewMentor how to fetch the latest boilerplate version and I asked about two folders that seemed to be with the same content, SRC & DIST.

He explained that this are the folders were I have to code the project, SRC is were I have to code it and the DIST would be automatically updated (my guess running some command on shell)

We talked about stages of a project, initially AirCrewMentor talked about 4 stages but I couldn’t write down everything he said, so I did some Research and I found out that typically the people talks about 7 stages but there is no official rule for it.

  • Requirements analysis resulting in a software requirements specification
  • Software design
  • Implementation
  • Testing
  • Integration, if there are multiple subsystems
  • Deployment (or Installation)
  • Maintenance

This is the order it appears on wikipedia but AirCrewMentor remarked really intense the obligation to code testing everything I do, so the testing is becoming more and more important each day.

For what we talked my guess is that the order would have to be something like the following:

  1. use cases
  2. Testing design. (How can I test it?)
  3. software design.
  4. Implementation
  5. Integration
  6. Deployment
  7. Maintenance
I really hope AirCrewMentor give me his view of this since this is a really important matter and I am going to be following his path.

He said that if I can focus and become a developer used to test my code and to deliver my projects well tested, I would become quickly a better developer than a lot of developers that are actually on the market, since the people is not used to code testing the apps because it is more work (my guess is that at the beginning would be more work but later would be charm, like learning to type on the keyboard with all your fingers without looking the keyboard, hard at the beginning, later a blessing.)

I found an article that I liked a lot this morning about how to write the code that the tests (with mocha) request/allow you to code. Gabriel Manricks at this article explains how to use Mocha along with the Chai assertion library.

He focus the coding on the testing prior than the code itself, really interesting and seems to go on the direction AirCrewMentor remarked.

He explained to me how they organize for a new project.

  1. There is the project manager who establish what needs to be done to accomplish a project and divides it on smaller tasks.
  2. The developers tell the project manager an estimate time needed for each task and sometimes when the task is too big, they request the project manager to split it in smaller tasks that can be estimated.
As always, thanks AirCrewMentor  for your time and great mentorship you are providing to me.
Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s