Sunday 30 July 2017

A new beginning

A lot of things have happened since I last wrote here.

1) I moved to London and started working in a tech startup (www.grakn.ai)
2) I now work with a fantastic team and have learned a lot about software development
3) I have used a bit of Python here and there (mostly for ETL tasks), read code, even done some bits of Java
4) Wrote a lot for work (and that is one reason I abandoned both this and my personal blog)
5) Got back into studying Agile methods
6) Started using git and github a bit more effectively. I still find it confusing, but I know my way around it. At least I have used it enough for being confident with the basic operations. And I have discovered GitKracken, which I highly recommend.

Recently I have also picked up the code of Tesseract and started doing some refactoring.

My first reaction when I picked up the code was "Ewww". There is a lot of duplication, bad code, and, which at my level of experience is the most difficult to get rid of, forced design pattern that do not belong.

I need to refactor. A lot. I decided to not add any feature until I am satisfied with the current codebase. In other words, I will not add features until the current ones are "Done".

Since I also want to start experimenting with Scrum, I decided to hold a Sprint planning session with myself and I. It is totally unnecessary (as I am not a team), and of course it will not be Scrum, but I want to try it anyway.

Here is what happens:
1) My Sprint backlog is on Trello. Once again, it's totally unnecessary, but it scopes my work. Besides, I suck at making user stories and want to look more into it
2) I do not have a real sprint duration as I work on this on my free time. Where free time means no work and no family occupations. I will try to set my sprint so that I can complete them into 5 sessions.
3) Since I am really bad at estimating my work, and I don't have a team to coordinate with, instead of the "Daily" scrum, I will write Mini post documenting what I have done and what I plan to do for next session. Basically a standup with myself. Only at the end of the day instead of the beginning. And with "day" I mean coding session.
4) The objective of my first sprint will be to setup CI on Travis, setup cucumber and unit tests. Possibly writing some acceptance test.

So here we are. Let's see if I can keep up with this.

Stay tuned,

Miko