- User Experience
- Scrum Agile Methodologies
- Test Driven Development
I started out doing a lot of courses to learn the theory behind it and then decided that I should create a project to put in practice and make sure that I am actually absorbing things. So in lieu of #netflix, Visual Studio became my night time entertainment. Luckily for me, my husband enjoys the same hobby.
User Experience & Scrum
I’ve completed one course from the Interaction Design Foundation which gave me a good understanding of the various thought processes surrounding the development of a good user experience. There is a LOT to learn there but having a project to work on was really helpful to apply the concepts and really hammer them into the brain.
I will not claim that my app now has the best user experience because I am far from becoming a decent designer however I will say that I have been more conscious of keeping the user experience simple and more focused as well as helping prioritize features to what should be part of the MVP instead of just building something because it would be nice to have.
I used a combination of analog + digital tools. There are pros and cons to both types of tools. Analog tools somehow allow me to focus more on the ideas, not having to think about how things look what size it should be etc etc.
On the other hand, having a tool like the Galaxy note allowed me to scribble out sketches of the UI on the bus without having to make a ceremony of it. I’m sure a regular notebook would have worked but there are times when inspiration strikes and all i have is my phone. For that, I really love having the Note as a phone.
I also scoured http://scrum.org for reading recommendations and again, it’s one of those things that you will need experience in order to fully digest and internalize. I would have preferred to go through the process with the team but everyone had different vacation schedules ¯\_(ツ)_/¯
I had to find a project where I could be the product owner, customer and developer at the same time so I settled with the idea of a mock banking app for kids.
Test Driven Development
Because I wanted to simulate a proper project process, I took the opportunity to learn more about the tools we had access to and setup Azure Devops for the project. The boards functionality was great for sorting out user stories and tasks and the built in templates was a great way to get started.
I did a number of courses on pluralsight, as well as a few code katas that let you practice test driven development and I think I got a hang of using tdd when it comes to refactoring things.
My struggle was how you would use it when you are in the startup phase of a project. I had my list of user stories to implement but was stumped on writing the first test. I always found myself getting ahead of things and worrying about design and architecture and where to put what. I got the advice from our senior developer to not overthink things.
The best approach I found was to take one of the user stories, imagine what the API call would be and start from there. Things started to grow organically for me. I stopped worrying about where to put what class because as I made more and more classes, I could always move them, extract interfaces, move namespaces etc etc. All of which visual studio made very easy to do.
Before I knew it, I had built the app in a relatively organized manner and learned about a few things along the way as well: different design patterns, entity framework and migrations (yey migrations), expressions and functions, dependency injection, so many things. Again, it didn’t make me an expert but having a project to work on from end to end brought me a little bit closer to understanding those bits.
I did want to make a nice front end for it and while it was find with the boiler plate code, I wanted to learn more new things so I decided to build the front end using create-react-app. I compromised by starting off with the visual studio template. https://serverless-stack.com/ is a great resource and I used most of it as a guide to get all the major parts of my app in place.
After building this first iteration of the front end, i have to say I am starting to like it. There is a way to get that organized!
Git, Azure Dev Ops & Azure
I had a pretty decent app running locally so I thought it would be a good idea to get it deployed. Visual Studio made it super easy to set up CI-CD. Apart for the little pain I experience when I had to update my data entities and thus create some major migrations in the database, the whole part was pain free. I would like to one day be able to set up the build and release pipeline by hand, but this is a good start. I at least now have a working environment that I can reference in the future.
When we finished watching all 3 seasons of Dark 1.66 times (we had to re-watch season 1 and 2 because it was so confusing) and made the decision to make more productive use of our time, I feel a lot more activated in the brain department.