TL;DR notes from articles I read today.
Software development speed vs. quality: a tech shop conundrum
- Achieving both speed and quality together is nearly impossible. A tech shop can operate in speed mode, or quality mode, or somewhere in the middle.
- Developers, quality engineers, and quality assurance folks, who define their success in terms of quality, are the advocates for it.
- Executives, product managers, sales & marketing people who are driven by deadlines that impact growth and revenues push for speed.
- Startups and smaller companies often lean towards speed, since they need to be disruptive to succeed.
- Within a single product release schedule, there can be a shift from quality mode early on in development to speed as there is more pressure to deliver.
- Towards the end of the release cycle, you may need to sacrifice scope to hot deadlines while maintaining quality.
Full post here, 5 mins read
Functional lessons learnt
- Respect the purity of the functions. Keeping your code pure makes it easier to test and overall more predictable. A function is pure when it doesn’t create side effects and only affect the context within the function itself, not outside.
- Focus on the order of parameters to increase the readability of your code. Go with either horizontal or vertical functions. Avoid mixing them as much as possible. Start by keeping the function heads consistent in the order of parameters.
- Applying transformations to your data structures and always making sure you return that same data structure can help endlessly pipe your reducers, and achieve vertical functions.
- Keep your data private and your behaviour public. That way, modifying the underlying implementation of your behaviour will never affect the users of your API.
Full post here, 11 mins read
Practical advice for new software engineers
- Get feedback early. While working on a pull request, start with a trivial change just to open it up for discussion. Or offer mockups, whiteboard wireframes or sketches, before you start writing code.
- Thinking out loud can lend enough clarity for the solution to emerge readily.
- Automate your most tedious or more frequently run processes.
- Don’t let writing the perfect abstraction slow you down.
- Read ahead to get more context when struggling to comprehend code, documentation or technical articles.
- Keep detailed daily/weekly notes of what you worked on, problems you encountered, and how you solved them.
Full post here, 6 mins read
Get these notes directly in your inbox every weekday by signing up for my newsletter, in.snippets().