My new experience at Andela
My day started quite early, with a few things to put out of my way and prepare for the boot camp. I had run, did some simple chores but time was closing in. I checked the feedback on the activities of the yesterday. Well explained feedback, I must say. It showed me the mess I had created in my blog. It is at such moments in primary school one also got feedback, except you seriously got caned. Today, it was Actionable, Specific and kind. Moving on, I had no idea what was ahead of me in the boot camp. I opened my trello board and behold, the entire package for the day was every new thing I have never really done. These included Test Driven Development (TDD), Agile development with Pivotal Tracker and Github. I was quite familiar with TDD, at a beginner level. For github, apart from pushing to the master branch, I had never branched off. However, Pivotal tracker was completely new. So to my knowledge I learnt a few things.
This is an advanced technique for designing automated software unit tests. As the development is ongoing and changes to code are run, it can be used to provide feedback if the product is still working. TDD goes by the motto Red, Green, Refactor. Red, meaning that you create a test and make it fail. Green means you make your code pass those tests by any means possible. While Refactor means that at the end, you clean up the code to remove duplicates and improve the general design or flow while ensuring it still passes all test.
For an open source project to run smoothly especially when it needs collaboration, Github is the right tool. It is web based and offers version control of the developers source code. It allows one to have their own copy of the source code locally which in in sync with the one hosted online. As a result if offers distributed version control and source code management. This also comes along with access control. Github’s distributed version control capability allows developers to work on one project without having to be either on the same network or in close proximity. Earlier versions of the software over the development time are kept track of by the distributed version control system. This allows developers to rewind back to any point in time irrespective of their location. With source code managed and kept track of, software can easily be released in versions that are neatly kept track of. This means, bugs can be easily identified. Developers can therefore easily correct future versions of the software and without the same bugs. In general, Github harmonises the life cycle of a software over time and eases the pressure on the developers keeping track of the changes.
This is a project management tool although not limited to software development. A user is able to create activities that they need to do during the project. Activities can marked when completed, delivered and accepted. These activities can be further described and their level of difficulty estimated. This gives Pivotal Tracker the ability to estimate how long the project may take. Depending on the pace at which the activities are completed, it is able to estimate the velocity of the project. The activities can be prioritised in a stack, this gives any team a clear focus of their objectives.
I have been able to grasp the concepts and twists that build up to agile development today. Testing software is important to keep it robust to different scenarios. Version control through a tool like Github is important to for software development to keep track of changes and history of the software product. Most importantly is to keep the team focused to priorities in the development cycle. Tools like Pivotal Tracker create the environment and an objective view of the history pace and progress of a project.