~/$: lesson 1 build --features
–user_value=10
The most important aspect of any application is that it provides value, and that users can easily derive that value. In the context of our project the value is making the entire process of managing, contributing, and working on a project easier, or lowering the bar for success by empowering users with simplicity. When building and prioritizing features this value can easily be lost. Either in cool and interesting tasks, complex requirements, or technical specifications. But at the end of the day as developers planning and shipping a product designed for users, it is the perspective of the users that really matter. So lesson one is to always approach code, design, and tasks from the user perspective first. I.e. How will the code in front of me support the value of the project and make it easier for users to see that value.
~/$: lesson
2 –have fun
While its important to always have a vision for the project sometimes the best ideas, the features that set your project apart, are the ones made when having fun. In the sea of tasks that we are often confronted with as developers working on something fun, allows unique, and interesting features to manifest. Not everything needs to be meticulously thought out, planned, and executed. Some features can float in a superposition of valuable and a fun side task.
~/$: lesson
3 build –and=build –again
The first time you write something its often with the goal of functionality. For example when a user drags and drops a task the order should change, persist, and update for everyone else. In the pursuit of the goals we often build half baked functionality that meets the requirements but doesn’t completely solve the problem the requirements set out to resolve. I find I write my best code, when I write it twice. The first time I focus on functionality, how do we accomplish this goal and how does the code fit into the existing repo, where does it go, what needs to change, and how do we get this done quickly. This is what I call the learning step. Learn about the functionality, the consequences, the requirements, and the solution. Then build it again. The second time you have all the information you know the solution, and its consequences. So lesson 3 is pretty much the idea that iteration, is key to any feature.
~/$: lesson
4 –forget perfection
Nothing is perfect. We all know this, there are always flaws, edge cases we didn’t think about, and design choices we regret. Like we talked about in less one about building features that provide value is important and often times perfection doesn’t actually equate to value. When working in a small team, with limited time, lots of features and ideas you have to forget about perfection. Break things, fix them, re-build them, break them again. Its fine, as long as over time the value of your code and the product is increasing it doesn’t matter if there is an edge case in form validation that occurs 0.1% of the time. Now I will note this is context dependent, if you are writing code that flies a plain, launches a missile, handles social security numbers, etc then perfection is often a requirement. But in our situation with our project its not.
~/$: lesson
5 –embrace_feedback
Embracing feedback is vital. It’s easy to fall in love with your own code and designs, but the truth is, we’re not our users. We’re not even our own best critics. The value of external feedback is immense. It provides new perspectives, challenges our assumptions, and ultimately leads to a more refined and user first product. Feedback loops should be built into every stage of the development process. From initial design to final implementation, every iteration benefits from fresh eyes and diverse viewpoints. Incorporating feedback isn’t just about fixing bugs or improving usability; it’s about understanding the broader impact of your work. It’s about recognizing that development is an iterative process, where each cycle brings you closer to a product that truly resonates with its users. So, lesson 5 is all about embracing feedback — not as criticism, but as a crucial tool for growth, innovation, and success.
ctrl+c
Leave a Reply