Instafunc Manifesto WIP

Why

It is my belief that application development has become too complicated and unfriendly to new developers and software engineers. Learning a programming language is difficult as it is, modern application development requires good understanding of several best practices such as microservices architecture, testing methodology, source control management, documentation, deployment strategy, team dynamics, cost consciousness etc.

Often I see new developers mess up because of lack of understanding of these best practices. While there are ways for a company or a team to enforce best practices using tools, they are nevertheless unintuitive and complicated to setup and use. Ultimately all those take away the "fun" of building something. Even for experienced software engineers joining new teams, it is difficult to understand context of their work and best practices implemented by this new team.

This problem thus extends outwards to stakeholders who are often non-technical people who do not have visibility into what work is done and if it aligns with their vision. A business manager has to wait till the product is in a functional shape to see whether or not the built product is aligned or not. Any change requested by business users can be expensive event at this early stage.

Developers often lack the context of what they are building and where it fits in the larger product. while a system diagram or a powerpoint presentation is often how things are done, there is always a disconnect between such pictorial representations and actual codebase. Developers also need to care about the cost their code will incur for a company in production. Writing streamlined, performant code will result in lower cost and this should be obvious to a developer during development using some kind of visual feedback.

There is a lack of cohesion of not just tooling but between the way people in a software development team works. To summarize, following are the areas where things can be improved:

New developer experience - Create better development experience For novice software engineers and experienced software engineers joining new teams Business context awareness for developers - Developers should understand immediately where a piece of code fits into larger product. Adherence to best practices - Fool proofing best practice adherence - Developers cannot break best practice if they tried. Product workings awareness to external stakeholders - Non-technical stakeholders should be able to view developement in progress and understand immediately what is happening without learning how to code. Streamlined development and deployment - Seamless development to deployment and debugging.

What is Instafunc

Instafunc is an opinionated software development platform which allows application development in a creative and highly visual editor. Best practices like TDD, SOLID will be baked into the editing environment in a way where developers simply cannot develop without using these best practices. Due to the visual nature of the editor, a non-technical user can view the application taking shape during development itself.