Improve the development process by improving the requirements

Introduction

During my time as a developer, I often encountered incomplete requirements. While the user stories were usually well-described, crucial elements such as UI designs or backend endpoints were frequently missing. Gathering all the necessary information consumed significant time and effort, which I found frustrating. Unfortunately, this wasn't an isolated issue; colleagues and friends in the software development field shared similar experiences. The challenge was exacerbated by the fragmented storage of essential information across different systems. Designers relied on tools like Zeplin, while backend developers used Swagger files. Despite receiving copies of these resources, they quickly became outdated, leading to confusion and errors during development—a truly exasperating experience! 🤯

The Idea and Inspiration

Motivated by this common frustration, I set out to create a solution: ollayr. The goal was to consolidate requirements into a unified platform that provided developers with comprehensive, up-to-date information. Rather than duplicating resources, ollayr would establish live references to external sources, ensuring that any changes were automatically reflected in the requirements. This approach aimed to streamline development workflows and minimize errors.

Functions and Screenshots

ollayr's primary function is to provide users with a holistic view of projects or systems from various perspectives:

  • Product owners can easily track requirements and their status.
  • Designers can identify missing designs for specific requirements and reference existing components.
  • Developers have access to all necessary information, including user stories, acceptance criteria, designs and endpoint definitions. This enables them to make informed decisions and verify the availability of required data before coding, ultimately leading to more accurate estimations and shorter development cycles.

Requirements View

Epic Representation - Epic Overview Page: Epic Overview

Epic Representation - Related Designs Page: Epic Designs

Epic Representation - Related Stories Page: Epic Stories

Epic Representation - Related APIs Page: Epic APIS

API View

Parsing and visualization of a Swagger / OAI file - Overview Page: API Detail Page

Parsing and visualization of a Swagger / OAI file - Detail Page: API Modell Details

Design View

Integration of Zeplin - Overview Page: Integration von Designs

Integration of Zeplin - Detail Page: Integration von Designs - Detailseite

The Team and Planning

As is often the case with my projects, I took on the roles of requirements analysis and development, while my wife contributed her expertise in design. The project began with a thorough examination of existing challenges and the derivation of requirements for ollayr. We adopted a waterfall approach, first documenting all requirements before proceeding to design and implementation. Collaboration between design and development ensured alignment and feasibility throughout the process.

Technology Stack

Given budget constraints, I sought to minimize costs while maximizing functionality:

Infrastructure

For hosting, I utilized a small HPE ProLiant Microserver Gen10 Plus running Proxmox VE 7.2 for virtualization. pfSense handled firewall and routing configurations.

Backend

I chose Appwrite as my backend because I initially thought that I hardly needed any of my own functions and I would mostly work with integrations. The idea was that I would connect to an external tool and fetch the data every time a user accessed it. This should ensure that the information is always up-to-date. This should also reduce the effort on my part.

Frontend

Although Flutter Web initially seemed promising for the frontend, practical considerations led me to choose Vue3 with TypeScript and TailwindCSS for its speed of development and robust ecosystem. While I faced a learning curve with Vue and TypeScript, their developer-friendly nature facilitated rapid progress.

Reflections and Takeaways

In hindsight, my ambition to undertake every aspect of the project independently proved overly optimistic. Managing server hosting, configurations, and implementing features single-handedly consumed significant time and energy, highlighting the benefits of cloud hosting solutions. Additionally, the scope of the MVP exceeded manageable proportions, emphasizing the importance of prioritization and focusing on core functionalities.

Lessons learned

  • Start with an exceptionally small MVP focusing on essential features.
  • Avoid shouldering the entire workload alone to prevent cognitive overload and maintain productivity.
  • Consider collaborating with a coding partner for improved results and faster development.
  • Allocate sufficient time for ambitious projects to avoid burnout and ensure realistic timelines.

Conclusion

Despite its challenges, ollayr remains a testament to the importance of refining requirements and offering diverse perspectives on projects. While the journey taught me valuable lessons in technology and project management, it also underscored the need to recognize when to pivot or scale back efforts. As I continue exploring new projects, I'm committed to applying these insights to ensure smoother, more successful endeavors. Stay tuned for updates on future endeavors! 🚀