I can bet that at least once you were suggested to start coding without any specs, screen definitions or use cases. If it never happened to you yet, brace yourself, the no-specs project is coming.
Apps industry moves incredible fast: sometimes dead-lines gets shorter, your competition released a mind-blowing feature, your metrics are not going so well, etc. All those things generate situations where you and many others have to work against time on a fast, focused and organized way.
I am sharing with you what I do when that happens to me and how I end up with a good experience, a great work climate and optimizing my time.
Everyone’s main goal before starting doing anything (coding, designing, etc) is to agree on core features and requirements. Always.
To do so, everyone involved (engineers, business analyst, designers and product owners) has to get together and define which are the core features and requirements of the project.
This agreement will never change. It is the heart of the project. If it does, everyone involved should be notified instantly to avoid wasting time.
The key part here is that developers can start working while the rest of the product team can start finishing details, designs, secondary requirements, etc.
Let me present you the use case that I am gonna use as an example.
Use Case: “Mary is a user that wants to see a list of cars”.
Simple, right?
My imaginary stakeholders and I have agreed on this:
Details are a very important part of apps development but when the time is a scarce resource then you better start coding a simplified UI.
The secret is to forget about details.
You should identify core UI components and interactions.
For example:
For the listing example, I imagined this simplified UI:
Simplified UI sketched for the listing sample app.
Basically, I have identified the following: a filter button, a grid view of items, basic items’ information to display and some extra information to show about the listing.
As you already have the core functionalities and requirements and a simplified UI, you can start coding it and all the technical tasks that are specific to you work.
At this point you should focus on things like:
Going back to the example, I am going to focus on: retrieve items from the server, add logic for pagination, implement a staggered grid list, create the model classes, navigate to filters screen, add tracking events, and so on.
All that resulted in this:
Partial implementation of the listing sample app.
All your previous effort has a purpose, remember? To optimize the team’s time!
So, now it is time to implement all the details that you were postponing.
That would mean:
In my case it resulted in this:
End result of the listing sample app.
My last recommendation is: keep talking with everyone involved in the project (designers, product owners, business analysts) during the entire process.
Get updates, validate, show progress and ask for and give feedback always help to do a better and easier job.
Also, sitting close to the proper stakeholder while I implement each part of the project (design, product behaviors, tracking) helps me to have less bugs, re-work and frustration.
In the end everyone wants to have a killer-feature live!
Note: Dami Buonamico recommended me an article by Mike Cohn called “An Iterative Waterfall Isn’t Agile” and I encouraged you to read it too.
Did you like what you just read?Recommend this story (by clicking/tapping the ❤ button) so other people can read it!You can also react on Twitter: @santihollmann