Reflections On The D0 journey
Structure of the SIMS program
SIMS which in full is called the Simulations program is a 12-week full-time self-learning program which concentrates on fellows working together as teams using the Agile methodology to build products in a simulated environment of the practices used in real life development of software products. These practices range from technical and soft skills which are required to succeed as a world-class software developer on a distributed team.
The Simulations mock the real in a nutshell mock a real-world environment to the software developer. This better prepares the developer for challenges involved in such an environment.
The program is divided into two that is SIMS 1 and SIMS 2 each spanning a period of 6 weeks.SIMS 1 involves a working on the backend of the project with Django platform of python then for SIMS 2, the front-end using React-js.
The SIMS program kicks off with a zoom call meeting with the Technical Team Lead(TTL) and the Project Owner(PO) in which the project owner outlines the objectives and sets expectations to the team taking on the project. It’s at this point that the TTL together with the team show the PO that they can not only accomplish the project but also add value to it. The TTL interacts with the PO to plan for the sprints and also sets and distributes tasks in each sprint to each of the developers on the team.
A sprint spans a week and at the end of each sprint, the developer has a retrospective meeting with the TTL to give reflections on the work done over the last sprint, what to be done in the next sprint and what blockers were meet in the previous sprint. The developer also presents a live demo current state of the project to the PO each week.
The tasks are managed by the TTL. Each task is given points on the pivotal tracker board which determines the span of the task. The TTL goes through the tasks and assigns them to the developers on the team according to their experience. For tasks which depend on each other, pair programming is used where two developers work on a single task to ensure the deadlines are met by the team.
Since Agile Methodology is used; at the beginning of each day, the team holds stand-ups with the TTL which can be a zoom call or physical meeting where each team member describes what they have been working on, what they hope to do in the next 24 hours and what challenges they are facing. Also, the TTL sets expectations for the day.
At the end of each week, each developer is graded on a scale by the Learning Facilitator(LF) depending on six attributes which include;
- Quality
- Quantity
- Initiative
- Communications
- Professionalism
- Integrity
This grading collectively contributes to the Developer Pulse shortened to DevPulse.After the end of 6 weeks, the average of the total score got by the developer determines whether they are fit to advance to the next step of D0 called Apprenticeship.
Structure of the Apprenticeship program
Comparison
When the developer has accomplished the requirements for success in the SIMS program, they join the Apprenticeship program which takes a period of 12 weeks. Here the developer works on a real-life project with real project owners and users with teams members from different location unlike in the SIMS program.
The developer chooses the stack with which they want to work with, unlike the SIMS where it is dictated. The developer can decide to change stack or remain in the stack for the SIMS depending on their curve.
Projects in this program can be external or internal (Andela used products), unlike the SIMS program.Also when selecting the tasks, here the developer has a liberty to choose what they prefer to work on.
Apprenticeship deals with building real products that have real users, while simulation deals with building real products, but with no real users. For the above reason, the codebase in apprenticeship is more overwhelming than that for the SIMS program.
In the simulations program, the developer gets can support from the Technical Team Lead and Learning Facilitator, unlike the apprenticeship program.
Also mistakes are acceptable in the SIMS program unlike the Apprenticeship program since the product in the latter is a real-life project with real users and any error can cause losses to the project owner and so it’s always advisable to seek support during the SIMS program and experiment as much as possible to avoid making errors in the following stage.
Challenges
Some of the challenges faced by the developer in the D0 stage include;
The developer has to learn how the codebase works before they can go on to start producing results which may be overwhelming especially for the apprenticeship stage.
Setting up the project can also be a challenge for the developer since the structure may not be what they are used to.
The developer also has to produce outputs and respond to feedback from various fronts in a very short period of time.
Another challenge which can be experienced is the underestimation of project tasks which later become overwhelming to meet the deadline.
The developer may also have to work long hours to be able to meet deadlines.
Lastly, say a developer switches stack for apprenticeship, there is a lot of new things they have to learn before being productive.
To solve most of these challenges, am planning to make time management key in my works and also make timely communication with the team and all other stakeholders.
I also hope to learn how to estimate projects tasks so that I can deliver my outputs in a timely manner.
Lastly, Andela is a resource for me to help me develop and so I plan to use it through learning from my fellow developers and soft resources provided like the internet.
Conclusion
As a developer, both technical and people skills are required to solve problems and produce results. These skills are the work and team skills. The Andela D0 programs test such skills and even more. These are the driving force towards being EPIC in any undertaking as a Software Developer. At the end of this program, I hope to be a holistic individual with better problem-solving skills, communications skills and the ability to work remotely which are some of the prerequisites to be world-class.