How To Leverage Iterative Development As A Developer

I have built products ranging from:
- Point of sales application
- Computer-based testing applications
- Blogs
My career goals aim at combining my technical skills with my passion for adding value to the startup ecosystem.
I want to explore writing and how I can provide value through creating.
I was going through a course on udacity (Full Stack Foundations) and was impressed by the idea of iterative development, I couldn't help but turn it into an article.
How do you go about building an application; do you dive in and start typing away on your keyboard, or you rather work in chunks or pieces improving a feature now and another feature later?
Picking the first option might seem active and fast, but that will lead to more bugs, and you will end up spending more time fixing those bugs than getting a prototype ready. The latter being more organized, will lead to bugs when it is time to integrate all those pieces.
I recall starting some projects without a layout or a plan. Going in headfirst to get the feel of my adrenalin. I was always lacking development discipline, which usually resulted in confusion and reduced motivation.
What Is Iterative Development?
Simply put, iterative development is commencing a project from the very basic layer or feature, adding subsequent layers of features only when the one before has been completed. According to techtarget :
Iterative development is a way of breaking down the software development of a large application into smaller chunks. It is used in association with incremental development (a much longer development cycle).
With each feature in iterative development, we stop, test, debug, and share to make sure we always have a working prototype no matter how insignificant. The benefits outweigh its pains. Using such discipline while working with a team will enable all team players to understand when, how, and why changes or features are being made; saving time that would have used in doubling back to get everybody up to date. This development discipline enables you to code in an agile way. No matter who is suggesting a new feature for your project, you are sure not to break or mess it all up.

How Do I Employ Iterative Development ( Plan -> Organise -> Execute ) ?
The above plan looks simple; putting in the work is something far from easy. How do I plan, organize, and execute a project?
Ijeoma is an interning software developer and wants to build a restaurant menu app as a side project to boost her portfolio, how can she leverage iterative discipline? She has to breakdown this project into different iterations and tackle them one after another.
Mockups: Ijeoma would have to create simple sketches or designs of all the pages required for her restaurant menu app. It mustn't be done with UI design software, she could start with a simple pencil and paper for this iteration. Jane is prototyping a restaurant menu app, her mockup has to consider CRUD events or pages for restaurants and their menu item.
Templates: In tandem with the previous iteration she would have to build those mockups or wireframes into real frontend templates, and verifying their functional state.
CRUD Functionality: Here Ijeoma is mostly done with her frontend and will create a database, tables with CRUD functionalities for the restaurants' details and their menu items.
APIs: Such a project would scale if Ijeoma builds an API endpoint for external applications to consume with adequate testing.
Styling and Responsiveness: This last iteration would involve our intern adding CSS, Javascript, and images of restaurants and menu items.
Anyone who argues that the flow of this iteration is upsidedown won't be wrong one bit. Most developers especially backend devs tend to commence their projects with CRUD functionalities and APIs. But the point of iterative development is not to dive into writing of code but to first: plan -> organise -> execute.





