My 10 Rules to Implement a Functionality

  1. Think before you start coding: What is it that needs to be implemented? What should the end result look like? Do you know enough details about the use case? What is the benefit for the end user? What do you know about the non-functional requirements? Does similar functionality already exist that you can learn from? If the functionality is big (> 5 days to implement), create a mock-up and discuss it with the product owner. Break down the task down into smaller steps that take 2-4 hours to implement. Arrange the tasks in the correct order, so you have a clear implementation path.
  2. Identify risks: Do you need to use anything unfamiliar (e.g. a new external library, a complex algorithm, etc)? Ask around to see if another team member has some experiences. In case there is nobody on your team, do a quick research and check the two most promising candidates in more detail (anything useful on Stackoverflow?). Take notes of your decisions.
  3. Explain the implementation plan to a colleague. Any concerns that require a change of the plan? Is the timeline feasible? Is the functionality worth the estimated effort?
  4. Start the implementation by thinking about how to test your first step. Usually this results in a unit test. Test-driven development (TDD) has the advantage that you think from a usage perspective and that the implementation becomes easier and clearer to use. And you have a safety net if you do refactorings later.
  5. Implement until you get the „green light“ of your unit test.
  6. Check for violations. Any new compiler warnings? Findbugs, Checkstyle, PMD warnings? Any architecture violations? Any metric threshold violations? Is there a critical execution path that is not covered by the test? Does the implementation scale as necessary?
    Anything that looks awkward? Any class / method / variable name that does not reveal its true intent? -> Refactor! Anything that looks too complicated? -> Refactor! But try to avoid getting carried away.
  7. Take a step back and contemplate. Are you still on the right path? Did you learn anything new that changes the rest of your implementation plan? Iterate over the remaining steps of your plan until the implementation is complete.
  8. Adjust the end user documentation. If you have done step 1, you can re-use a lot of those notes.
  9. Get feedback. Get a colleague to review the result. Listen carefully to any suggestions and take a break. Sometimes it needs a few minutes for feedback to make sense.
  10. Present it to the product owner and listen carefully to his feedback, too. Implement the necessary adjustments.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.