How do we start developing WP App Studio based WordPress apps without making rookie mistakes? In this article, I would like to share some of my experience as a WPAS designer, highlighting some of the key steps and concepts to make your WordPress project a success story.
Think before you do
Thinking about what you need to do is absolutely one of the best favors you can do to yourself. Try to visualize your requirements using a Computer-aided design (CAD) tool. There are many online drawing sites which can help you.
As someone who started his career as data modeller, understanding data helped me a lot. So get to know what entity relationship(ERD) or UML class diagram is. Draw your entities, taxonomies and relationships. Understand their definitions and how they relate or complement each other.
Spending time on your requirements may look like you're adding red tape to your process, it is absolutely not. Understanding your own requirements is a key project success indicator.
Most developers and designers nowadays, unfortunately do not have a chance go through a structured computer science training. This leads to "jumping into code" a.k.a "doing before thinking" or "thinking while doing". I will not go into "doing before thinking". I think everyone knows what a bad idea that is.
"Thinking while doing" is a more common behavior. It may stem from someone's overconfidence on his or her abilities. This behavior leads to loosing the big picture and "going to your cave mode". So unless you are tasked with developing a certain functionality, ask questions to yourself or someone who knows the big picture how what you're doing is going to affect the overall system.
Understand that a tool is a tool
One of the main misconceptions on using a development tool is that it may have a special logic that can read your mind and somehow comes up with what you want to do. We're moving towards that direction but we're not there yet. So understand that a development tool like WPAS can save you significant time, but you're the one behind the wheel. Drive carefully.
Development tools almost certainly come with a learning curve. How steep that learning curve is up to your experience and how quick learner you really are. So do not get frustrated when things do not go to your way ( and give us one star review 🙂 ).
Understanding that designing and developing software is a journey and everyone goes through some road bumps one way or another help you get less frustrated
Being patient, reading the documentation and asking questions to support people help a lot. In the end, once you get a hang of it, tools produce more efficient and fast results.
Incremental development is the way to go
Let's be honest, we can not think about everything while designing a system. Although WordPress API and its documentation help us a lot minimizing the need to reinvent the wheel, it is up to us to produce a design which we home will help our users.
Incremental development helps you produce something very quick and give you a base to build upon. Take advantage of it.
Using the change log in the app setting and backing up your design by exporting are the two things you should consider in my opinion. Benefits are:
- You will get a documentation of your development progress
- You will have a base to go back to if a design does not produce what you want
- Users will have something to review and hopefully give you feedback
Communicate with users through your design
Having a design walk though with your users before letting them see what you came up with before code generation is a huge step gaining their confidence in your abilities to make things happen.
Using WP App Studio as a WordPress requirement collection and documentation tool helps you take better control of your requirements than a text document.
Every WPAS app comes with an app glossary. Having a glossary helps you and your users be on the same page in terms of what the main concepts are, the project scope etc. Try to communicate them what you did or will be doing through the glossary first. And then introduce them to your design step by step, going though the order below:
- Entities: define each entity, show them the icon to be used in the menu, slugs to be used and messages that will be displayed etc.
- Taxonomies: define each taxonomy, is taxonomy support hierarchies, multiple values, will there be default value, what messages need to be displayed etc.
- Relationships: define each relationship, how and why they are getting created, will there be attributes which be displayed to users, how the relationship records will be displayed on the frontend etc.
- Views: Define the purpose of each view, how they are connected to each other in terms of screen flow, what will be displayed and how etc.
- Widgets: Sidebar or dashboard widgets?
- Forms: What kind forms will be needed, will you allow users to enter data from frontend, how, who, what users will be allowed to search or will users will allowed to search etc.
- Notifications: How users will be notified on app events and in which format etc.
- Permissions: who's going to access to which segment of data and how
The list above is not a definitive list. Obviously, we can not cover everything WPAS does and it is not my intention. I just wanted to give you an idea. Make a decision what and how much you will cover in your walk-though based on your experience with the walk-through audience.