The product manager requests to develop a feature within a month: when there are no apartments in Saint Petersburg for May viewings, show similar options in neighboring cities (Vyborg, Kronstadt). No analyst, no technical specification. Describe the steps from the conversation to the first commit.
sobes.tech AI
Answer from AI
-
Clarification of requirements: have a call with the product manager to understand the business goal, criteria for apartment similarity, list of neighboring cities, and conditions for showing alternatives.
-
Data analysis: check if there is data on apartments in neighboring cities, how it is stored, and how quickly a list of apartments can be obtained.
-
Defining similarity criteria: discuss with the product team and possibly with the development team what to consider as similar options (price, district, type of housing).
-
Designing the solution: based on the requirements, design the logic — if there are no apartments in Saint Petersburg for the selected dates, show alternatives from neighboring cities.
-
Technical specification: prepare a brief technical task for the development team and agree on it with the product manager.
-
Estimation and planning: estimate the scope of work, break it down into tasks, and determine priorities.
-
Environment preparation: set up a branch in the repository, prepare necessary tools.
-
Implementation: write code, cover it with tests, and make the first commit.
Sample Go code for checking apartment availability and selecting alternatives:
func GetAvailableApartments(city string, date time.Time) []Apartment {
apartments := fetchApartments(city, date)
if len(apartments) == 0 && city == "Saint Petersburg" {
neighbors := []string{"Vyborg", "Kronstadt"}
for _, c := range neighbors {
apartments = fetchApartments(c, date)
if len(apartments) > 0 {
break
}
}
}
return apartments
}
This code is just an example of the logic; details depend on architecture and data.