fbpx
Categories
empathy management stories

Project empathy — day five – logic and the first test

Today felt productive, engaging, and like I finally made real progress.

Here is how the day went.

I created a new ProjectManager class to contain the logic for the project domain.

Since I am exposing the most straightforward functionality, I only added create and read methods, with creation only having a title as a required field.

Since I added new logic, I felt it pertinent to cover the logic under tests.

Luckily, the framework took care of a lot of the initialization items needed to test, such as 

  • In-memory DB
  • Seeding test data
  • Faking auths as various users
  • Dependency injection
  • Testing frameworks such as xunit and shouldly.
  • Sample tests to get you started

I can only imagine the amount of time it would have taken to set everything up to a point necessary to run a test.

With that note, I remember when I was getting started, I found the time required to set up tests quite challenging, especially when thinking about all the feature work I could be working on.

The learning here is that it isn’t enough to expect tests to be done. We need to dig deeper and embed within our teams the importance and value-added of having quality software.

Until next time.

Icons made by Freepik from www.flaticon.com

Categories
empathy management stories Uncategorized

Project empathy, day four — first new code

Day four was fun but short.

I began by setting my Pomodoro timer to 25 minutes to work on the first milestone, creating and viewing projects.

The project’s definition already has a lot of functionality, so I constrained the milestone only to include the title as part of the project.

The framework I am using https://aspnetboilerplate.com is highly opinionated, so I had to spend my first Pomodoro timer just browsing through the docs in order to get acquainted with it.

For my second Pomodoro, I wrote our first class, the project class. I added the database migrations and pushed them to the database.

I mentioned that the framework I am using is highly opinionated. It uses domain-driven design, so our class has no logic and can only be instantiated via a create method, ensuring that domain rules are applied consistently.

The logic will be added to another class they call “the manager” you can see more details on their design here.

So far, this little project has proven successful in building empathy. I had already forgotten that there is a significant amount of time devoted to research and learning for every line of code.

Categories
empathy management stories

Project empathy, day three — milestones

Day 3 took me towards project management; here is what happened.

I managed to get 30 minutes in before the end of my day, so I was determined to make the most out of them.

Recently, someone shared an article on project management and the importance of setting milestones rather than features.

Using the concept on our project means that I’ll work on delivering a subset of the functionality rather than a full feature.

So I created a milestone in GitHub and got started on it.

I spend most of the time thinking about what the milestone should contain and how to break up the work.

During the last two minutes of the Pomodoro timer, I created a branch in source control.

I am hopeful that next time I’ll be able to get started on actual code 👨‍💻

Categories
empathy growth habits management

Project empathy, day two

For day two of our project, I only got in 30 minutes of work. Here is how that went.

Since I am in management, I am constantly in project management and productivity software such as Jira and Todoist.

The idea is to build a project management tool that feels as simple as todoist.

Doing so should get me into design, architecture, and software system implementation.

Thus reminding myself of what it is like to do all the things I expect of engineers in my teams.

With this in mind, I created a few documentation tasks and got started on the first one, defining a `project.`

The deliverable requires a model, commands, queries, events, API consumers, and dependencies.

Luckily, I found a microservices canvas that neatly organizes the areas I hoped to document.

I copied it into our repository and filled it out with `project` details. 

Check out the draft here https://github.com/toyiyo/todo/blob/issue-3-define-project/services%20canvas/project.adoc

For day two, I figured out what I wanted this project to shape and started a documentation task via a microservices canvas template.

Stay tuned for day three.