During a recent vacation, I wanted to code...something. My background is primarily in .NET and Laravel, with Laravel being my most go-to stack since its quick to develop anything. Anywho, at my company we've been managing our daily stand ups in a Confluence doc, constantly updating it as the sprint goes on. It turned out to be a really good system to keep track of everything we're doing and have it documented for each sprint. For example:
- Say your Sprint is called Abracadabra, you would create a corresponding Confluence document with the same name.
- You would then start by adding a table per day. Members of your team would insert their "In Progress" tasks, their "Priorities", and any "Blockers".
- You continue to insert new tables as the days of the sprint continue, until the sprint is over.
- Then you create another Sprint doc and repeat.
Although this worked well, we found that there were a lot of conflicts that occurred as a result, since all of us were updating the same confluence doc. This is where the idea for this app came along.
Daily Stand Up App
The goal of this app is to replicate the same experience of writing stand up entries within a Document, with the exception that it would be impossible to have conflicts.
The way it works is like this:
- You create a Stand Up group, which would be your Sprint name.
- Once created, click "View". This will take you to a place to add entries.
- You can submit your first entry. All you need is a Date and your stand up details.
- And then at any moment you can edit that entry.
All your stand up entries are under the stand up "group", which is under the currently selected "team". You can freely create teams, invite others to your team, and have everyone see each others stand up information (though only the author of the stand up entry can edit or delete their entry).
Open Source
https://github.com/m4rcoperuano/daily-standup-2
I wanted to build an app that is more of a tool rather than a product (though it can certainly be one). I also understand that not everyone wants to use a hosted platform where you, and others in your company, put sensitive information into. So by open sourcing it, you can pull the repository down and host it in any environment you wish. For the time being, I've hosted mine on a subdomain of my website: https://standups.sunnyorlando.dev.
Is It Production Ready?
Not quite. First, there is no landing page that advertises what this app does effectively (the landing page of the site is still Laravel's default one). Also, if you register for an account, you will be greeted with an empty "Dashboard" page (part of the starter kit I used). Otherwise, everything else should work as intended with security in mind. There's more work to do still when it comes to Unit tests too, and maybe some better coding practices.
Overall, I'd say I've put about 10-12 or so hours into the project, and at best can be called a Beta.
Tech Stack Details
- The app uses Laravel 11.x, PHP 8.3, and MySQL 8.0.
- I used Laravel Jetstream to kickstart a few things for me, such as Authentication, Teams, and API support.
- The text editor for formatting your stand up entry is CKEditor (which has come a long way!).
- The app is hosted on a decent-size Linode instance, with the provisioning of the server handled by Laravel Forge.
- It uses Redis as well for caching and user sessions.
What's next?
As time permits, I plan to continue adding features to the project, such as:
- Mood tracking: Allows the team to see how everyone is feeling which, if you have a great company culture, may be helpful to see how your teammates are feeling sprint to sprint.
- Sprint Retro Automation: Creating sprint retro docs and trying to remember what exactly were issues during the sprint is hard, our memories are not reliable. Therefore, why not have users enter any sprint-retro information whenever they submit their daily stand up? Almost like building a list of notes throughout the sprint that get dumped into a Sprint-Retro bucket, of sorts. Furthermore, leveraging OpenAI, summarization of key points within the sprint should be fairly easy.
- Integrations with Slack, Github, and JIRA?
- Make Stand Ups fun! Honestly, its such a drag sometimes to just talk through everyone's todolists. There's an NPM package called beanheads (https://beanheads.robertbroersma.com/) that allows each person to customize their avatar. Then, my plan is to show these characters on the screen around a circle of sorts, maybe with a spinning arrow to navigate to the next person to begin giving their update, rather than being called upon by the SCRUM master (though I'm still thinking through all this). I really want the remote-nature of development work to feel more connected. Reading documents, meeting once a day, etc. it all feels so...isolating at times with remote work. Why not have a place where you can have fun with these mandatory meetings, perhaps with web-based games integrated in it? But i digress.
Questions
In my time as a dev, I've been exposed to a variety of ways to do stand ups:
- Via Slack
- Via Meetings where nothing is written down
- Via Emails
I haven't found any that quite work as well as having an ongoing doc per Sprint, but perhaps we've been doing it wrong? I would love to know how your company handles daily stand ups and any pains associated with it :).
Top comments (2)
Good project and nice tech stack. Keep it up!
Nice! Daily standups really help to keep me on task :)