Afonso de Gouveia

Development Guide

This guide takes you through every relevant step and aspect of developing a project, so that even without your morning coffee or after months of development hiatus, you can click through its different sections and remember everything you're supposed to do to achieve good results cleanly and efficiently.

Development Stages

Every development project is broken down into the following categories:

Planning

Start by defining the outcome, limiting the scope and deciding what to deliver first:

  1. What does the end result look like?
  2. What are the bare minimum features required?
  3. Technologies and Functionalities:
    1. What technologies should you use?
    2. What functionalities do you need to complete the project?
  4. Organizing deliveries - from features to stories and tasks

For the Scrum details, read the online Scrum Guide: use the Product Backlog to order and refine the work, Sprint Planning to agree on a goal and select achievable work, and the Definition of Done to clarify when work is complete.

If you don't know how much time to spend on each Scrum activity, see Scrum Durations.

If you're developing your own project, especially one lasting less than a month, see Applying Scrum methodologies at a lower scale too.

Expect the plan to change. Unfamiliar tools and requirements make estimates uncertain, so leave room for learning, tackle the biggest unknowns early and adjust the remaining work after each delivery.

Development

Ideally you're so used to developing that everything comes naturally, but realistically there'll always be a lot to keep track of and the process may differ per project.

Here's everything you have to pay attention to while developing something:

  1. Write tests first, code later (TDD) - Writing tests.
  2. Write good comments. Make sure you can explain your code.
  3. Review the SOLID principles.
  4. Review the Top 10 OWASP Security Concerns before and after adding features.
  5. Think like the end user - don't waste time on functionalities they don't want.
  6. Create pipelines to ensure nothing breaks and deployment is easy.
  7. Write documentation per story completion and not per sprint.

When it comes to UI design specifically, you should:

Delivery

If you followed all the steps right, you should be good to go. If you need a refresher anyway, here's the delivery steps:

  1. Verify your pyramid tests. Are you happy with your coverage?
  2. Review your documentation to make sure it's complete and up-to-date.
  3. Re-check your production resources and pipeline configurations:
    • Do you have enough resources allocated?
    • Are your production & testing accesses properly separated?
    • Are your pipelines properly configured for both deployment types?
  4. Deploy the application to the production environment.
  5. Verify your health checks. Is everything running as expected?

Further Notes

There you go, if you followed all this you should have a well-structured project ready to deliver. When delivering a project, you also have other concerns:

Not to mention the specifics. This guide doesn't tell you how, just what. So journey forth, keep your critical thinking on, and best of luck in your adventures!