Bastila for Junior Developers, Managers, and Senior Developers.
You’re a junior developer. You are continuously learning new things, everything is new to you, and most of the time you make code contributions by finding a similar example, copying and pasting, and t
You’re a junior developer. You are continuously learning new things, everything is new to you, and most of the time you make code contributions by finding a similar example, copying and pasting, and then modifying it until you get something working. This routine, with care and expertise, will carry you into becoming a senior developer and beyond, but there is a problem with it. It is exceptionally good at propagating deprecated code standards and patterns. If you’re lucky you may have linters catching these errors, a well-documented wiki defining what you should do, and/or a strong pull request review process to help more senior developers direct you on the right path.
However, linters can only catch so many errors, wiki’s enforce nothing and are only useful if they are constantly updated and regularly read, and pull request reviewers are unlikely to be aware of and remember all the deprecated code patterns in a code base. They need to be defined and enforced! Defining and enforcing these patterns makes your life easier as well. How often have you copied and pasted code to complete a feature, only to have your pull request rejected because the reviewer doesn’t like one of the patterns you use? Of course, this pattern was copied from another place so you may ask yourself, “Why does it exist there as well? Should we fix it there too?”. Depending on what your senior is like their answer may vary from let’s just update your change to let’s find, define, and document all instances of this code pattern so we can work to remove it. And depending on your team’s capacity and stress, that pattern may start to get removed or other priorities will take its place and it will continue to exist and potentially continue to propagate.
The term code patterns can refer to hundreds of different things in a code base and all code bases will forever have outdated patterns. Some of them will drastically affect your ability to do work and some will not but regardless, you shouldn’t have your pull requests being blocked for deprecated patterns that aren’t abundantly clear to you. This is where Bastila comes in, with Bastila, your team can explicitly define deprecated patterns and alternatives. You can have them highlighted in your editor, have your commit attempts throw errors if you use deprecated patterns, and have your pull requests fail automatically if they use deprecated patterns so that you don’t have to wait for another developer to tell you to update your code.
Bastila for Managers
You manage a development team. One important responsibility you have is managing development velocity and empowering the development team to do their best work possible. One struggle with this is that development is unpredictable and estimates are regularly two or three times as large as expected. Technical debt is one of the reasons for this and I built Bastila to help define, document, and remove technical debt so that your teams’ velocity stays fast.
Packages, client needs, and code bases evolve over time and this leads to various sections of code becoming deprecated. By encouraging your team to set up Bastila, they will be able to define all the deprecated components, patterns, utility methods, classes, etc. These could be deprecated for a hundred different reasons but the outcome for the client for all of these is often an inconsistent and perhaps even incorrect user experience. Once set up, the developers will be able to run checks to continuously update the progress they’ve made in removing deprecated patterns. This visualization, seen below, allows you to at least partially understand what sort of technical debt the team is working with. In slow development periods, if they exist, you can empower your team to tackle these deprecated patterns so that when demands are high they are able to move fast.
Bastila for Senior Developers
You’re a senior developer. Part of your responsibilities likely includes reviewing pull requests from other developers on your team. Depending on your team and how rigorous your pull request reviews are they can seem like a constructive opportunity to learn, share knowledge, and bond team members. On the flip side, sometimes they can be a tedious and painful experience, often due to misalignment in how things should be implemented and what the current and future code patterns are. I made Bastila to help with the latter.
I’m sure you’ve had your fair share of pull requests, perhaps from more junior team members, where you open them up and immediately find at least half a dozen minor code pattern issues, but not so minor that they should be ignored. One older but still usable component or class, a deprecated utility method, a framework feature that the team decided to never use, an endpoint that gets the job done but the team is interested in deprecating, the list goes on. There are many automated tools for catching various code pattern smells and linter errors and they work well but there are few options for catching deprecated patterns specific to your code base. How do you define and document a deprecated class, function, utility, naming convention, endpoint, type, etc in a way that you can easily enforce it across your team?
I built Bastila to solve this issue for myself and now I’m sharing it with others. With Bastila, you define deprecated patterns using regex and define replacement instructions for developers who use that pattern. If you can define it with regex, you can define it in Bastila. You can then integrate checks to prevent the additions of those defined patterns throughout your whole process. We currently offer code highlighting tools, pre-commit hooks, and pull request checks. In addition, you can submit your progress in removing those deprecated patterns, when you merge pull requests into your main branch, and track that progress in the web app. If this interests you, get set up with Bastila today within a matter of minutes.