Skip to content

Conversation

@melcha
Copy link
Contributor

@melcha melcha commented Jul 9, 2020

Task: #285

@melcha melcha requested review from d4be4st and nikone as code owners July 9, 2020 11:41
@melcha melcha marked this pull request as draft July 9, 2020 11:41
@melcha melcha requested review from bjosip and vr4b4c July 9, 2020 11:42
Copy link
Member

@bjosip bjosip left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All looks good to me.

@melcha melcha changed the base branch from rewrite/all to master July 24, 2020 06:57
@lovro-bikic lovro-bikic force-pushed the rewrite/architecture-review branch from 57a39f5 to 8f581d8 Compare March 8, 2022 22:51
@lovro-bikic lovro-bikic marked this pull request as ready for review March 8, 2022 22:54
5. Once you're done with the initial project meeting and have the specification, sit down with the member of your team that was at the meeting with you and design the database. You can do this on a whiteboard or a piece of paper, or use a tool, such as [Gliffy](https://www.gliffy.com/) or [MySQL Workbench](https://dev.mysql.com/downloads/workbench/). If you need to draw a sequence diagram, use [Web Sequence Diagram](https://www.websequencediagrams.com/).
6. Consult the project manager at will and add new discoveries to the specification if you find that something's missing.
7. Don't hesitate to involve other team members since this is the most important part of the app.
8. Once you've finished the database design, it has to be approved by someone from the management.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why management specifically? I'd say this should probably be the system architect?

8. Once you've finished the database design, it has to be approved by someone from the management.
9. Once your architecture has been approved, you can generate a new Rails project. Read more about that on the next page.

Ask the project manager to give you the project specification.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems out of place

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should have been handed down way before this 😄 Just ✂️ it

Ask the project manager to give you the project specification.

## Database design & discuss major implementation details
Once you're done with the initial project meeting and have the specification, you can start designing the database. Use an online tool so you can easily present the diagram later on the review, such as [dbdiagram](https://dbdiagram.io/home) or [SqlDBM](https://sqldbm.com/Home/), or some other.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We mention tooling above as well, we should probably only do it once

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also mention that the login credentials for sqldbm can be found on 1pass

## Database design & discuss major implementation details
Once you're done with the initial project meeting and have the specification, you can start designing the database. Use an online tool so you can easily present the diagram later on the review, such as [dbdiagram](https://dbdiagram.io/home) or [SqlDBM](https://sqldbm.com/Home/), or some other.

Consult the project manager at anytime and add new discoveries to the specification if you find that something's missing. Don't hesitate to involve other team members since this is the most important part of the app.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we would benefit from doing this in pairs for both a better outcome and sharing of the domain/requirement knowledge


Consult the project manager at anytime and add new discoveries to the specification if you find that something's missing. Don't hesitate to involve other team members since this is the most important part of the app.

When you're done with the database diagram, sit down with the member of your team that was at the meeting with you and go through:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this include the infrastructure parts as well?

- API authentication - cookies (web frontend) or jwt/custom tokens (mobile frontend), or both
* admin UI setup
* emails - templates (preferred) or custom design (rarely a good use of time for MVP)
* any 3rd party services
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We go in depth for some points (e.g. JWT/cookies), but we cast a very wide net here. I think we should be more specific - decide/reference decisions about APM, performance budgets, team collaboration, client AWS accounts, etc

* any other project specific problems

## The review meeting
Once you've finished the database design and discussed other major implementation details with the team member, it has to be approved by the project sponsor. The next step is to ping the project sponsor to organise the review meeting. At the meeting the main focus will be on the database design. Standard implementation details will be covered briefly. This meeting is a good place to dicuss any other uncertainties or problems.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure of the sponsor role here, shouldn't the technical part be signed of by the system/solutions architect?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@d4be4st what do you think?

## The reason behind it
# The reasons behind it

Before you start programming, your application should go through an architecture review.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't use "programming" here. It feels too narrow minded.

Projects are usually grown and the code is one component of the whole. I'd write this maybe as:

An architecture review is required before the team starts implementing the system.

8. Once you've finished the database design, it has to be approved by someone from the management.
9. Once your architecture has been approved, you can generate a new Rails project. Read more about that on the next page.

Ask the project manager to give you the project specification.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should have been handed down way before this 😄 Just ✂️ it

Ask the project manager to give you the project specification.

## Database design & discuss major implementation details
Once you're done with the initial project meeting and have the specification, you can start designing the database. Use an online tool so you can easily present the diagram later on the review, such as [dbdiagram](https://dbdiagram.io/home) or [SqlDBM](https://sqldbm.com/Home/), or some other.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also mention that the login credentials for sqldbm can be found on 1pass

@nikajukic
Copy link
Contributor

I feel like we have a lot of duplicated content here 🤷‍♀️

We have architecture review timeline and then later explain everything in a bit more detail, but most stuff is basically just a c/p

@d4be4st
Copy link
Contributor

d4be4st commented Mar 9, 2022

Sorry all I havent read the conversation above, but here is what I know:
We are in the process of defining a project lifeline (you all mighve seen the email). As a part of that process a document called "Techincal specification" is created with the help of all parties (Sol/Sys architects, developers, PM, etc).
As a part of that document there will be an Architectural overview, business flows and DB diagrams. Because it will be a part of the documentation everyone will see it and everyone will be able to comment on it.

So there will be a chain of approvals going on. currenly the approvals stand on Sol/Sys architects as they are slowly becoming these "sponsors".

I sugest we pause this chapter for now until we have a definitive and clear picture of what we need in it (it is possible it will be moved to another handbook altoghether)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants