Here is in somewhere there is story, once upon the time there is passionate front-end developer with his spirit does his task. He manage and build code by his style. He does cool stuff ES6, webpack, react and babel. This is what we say geeky chosen for front-end receipt.
Within team he comply gitflow framework. This framework that the team committed to collaborate: work in, discuss and review to make story in the code level.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. ~Martin Fowler
What is this thing gitflow, he always likes the explanation from atlassian for gitflow. Even though this is original branching model invented by nvie - Vincent Driessen’s. From the following simple marbles and square images, he always remind himself and explain to his colleagues.
He has a good confident level with his stack handed and code collaboration framework. And now this spirit of agility spread into all aspect within team, the choosing agile methodology — scrum to story and task collaboration. Everyday he and team are done daily standup, report the status yesterday’s task and next task. How’s he interact with other member within team such as to designer, QA or even to product owner to clarify the unclear things. He used to self-managed, but sometime he needs help when stumble by impediments so that scrum master always there to facilitate to find the solutions.
Every starting new sprint after sprint planning, scrum master always remind him and team about Three Pillar of Scrum.
“It’s fun”, “it’s challenging”, “it’s game changer” — that ‘s the hype perceived by the team. Yaa, after more than 3 sprints, the atmosphere is established as such. But before that, it is running slow, a lot of thing is not working right. He need to learn the mechanism and the chemistry of the team. It build fundamental for each team member.
The minute you get away from fundamentals — whether its proper technique, work ethic or mental preparation — the bottom can fall out of your game, your schoolwork, your job, whatever you’re doing. ~Michael Jordan
And now what next? He has over and over routines that sometime seize the tasks development, especially related to build and deploy. Build for code reviewer, deploy for tested by QA. And now he think this is should be automated. So, he setup the continuous-Integration to automate process related to compile, build, deploy the source.
He and team has choose travis-ci as cloud continuous integration. The chosen itself is to get rid from the maintenance server. And all control is very simple file .travis.yml configurations. So how’s the story more detail about introduction, registration, pricing, setup and configuration, he is still in progress to write down into good articles, he promises. :)
To take optimal benefit from Continuous Integration he makes sure to automate running and checking unit test. What he calls Quality Gates to be passed when unit test is run and checking. Whenever and whoever commit the code to repo, travis-ci will be notified to run automation. Basically continuous integration is to prevent the break in 3 things:
- Compile and Build
- Unit Test
- Coverage threshold
Every status successfully or fail, it configure to specific channel email & slack. It make team awareness if something happen earlier.
That’s being said CI without unit test existing is useless. So it push him and team to have unit test for every code they make. Beforehand he tries to understand what is the objective and fundamental of using unit test. He knows this is ‘cool’, but he want to know more the purpose so that he can give the best what he has. He find that unit test is mindset not only discipline.
The purpose of writing unit tests case is to learn more about coding and improving the way I code.
Forced by mechanism unit test to improving his code, realize him to understand deeper clean code mindset,“Do One Thing” pattern as said on clean code. Clean code book by Robert C.Martin (uncle Bob) become developer’s handbook. The output said on introduction chapter of Clean Code book for measurement of code quality by how many WTF you have while doing code review.
Let’s wrap up what experience has been through:
- The efficient way to choose of stack technology by recommendation and geeky receipt.
- Use good framework code collaboration: git — gitflow.
- Agile mindset and use good methodology — Scrum.
- Continuous Integration — travis-ci.
- Clean Code mindset by make it developer’s handbook.