Azterizm
Back to Blog

The Best Freelancing Software Development Strategy

Here I provide my development strategy or blueprint. It is general which means, I don't handpick exact technologies for you. This way, you would be able to select your own stack. Your stack that you are most comfortable with is better than the stack that everyone uses.

I will provide you with ordered list that which you can follow by order. It's not important to do every single phase that is documented here, instead follow what's necessary. For small projects, you will skip most of the parts while for complex or critical projects, you may do all these parts and may also add more.

I wrote 3 articles in general that are interconnected with each other for full software development process. They are Software Development Strategy, Feature Prioritisation, and Communication. This article is one of these and is called Software Development Strategy. For reading other connected articles, please reference the links.

Gather Information

  1. System Design
  2. Database Design
  3. API Design
  4. Service Interaction
  5. Cache Strategy
  6. Security
  7. Scalability
  8. Infrastructure (server) requirements
  9. Third party service integrations
  10. Prioritise features (reference Features Prioritization)

Select Technology

  1. Backend framework (ex. NestJS, ExpressJS)
  2. Frontend framework (ex. ReactJS) {or combined (ex. NextJS, RemixJS)}
  3. Database (ex. SQLite)
  4. Cache library (ex. Redis)
  5. CI/CD (ex. CircleCI)
  6. Monitoring
  7. Testing (preferably write prompts for AI to automate testing)
  8. Admin Management
  9. Development Environment
  10. Component/Style Library (ex. ShadCN)

Design/Mockup

  1. Foundation: Color, Fonts, Spacing, Grid, Wireframe
  2. Component: Extract components from design concept
  3. Feature: Animation, Interaction, Responsiveness, Performance

Walking Skeleton (named by Alistair Cockburn)

Here you will start developing the product. You will not write actual logic of the application, instead setup configuration for the project. Utilities and libraries are setup here for use when writing actual product code.

  1. Setup database
  2. Setup API endpoints
  3. Add health check endpoints (that ensure server existence)
  4. Add reliable logging system
  5. Add global error handing system
  6. Authentication ad Session management.
  7. Add rate limit mechanism
  8. Add cache

MVP

  1. Develop main functionality (Core business logic)
  2. Use the database
  3. Develop basic UI
    1. You can use AI to write components for you (or even entire pages). I prefer to use Vercel v0 at the time of writing this for best response. You can also use ChatGPT, Claude and Gemini to do this as well.
  4. Add error handling to areas that make asynchronous processing.
  5. Monitor usage to admin panel (Make report

Enhancement / Progress

This is iterative process to develop the rest of the application and process new requests.

  1. Finish UI development. Make it pixel perfect and responsive.
  2. Build the rest of small functions.
  3. Add loading spinner, error messages UI, and form validations.
  4. Add cache
  5. Account for best performance
  6. Ensure security in your flow
  7. Add rate limit where possible
  8. Improve integration of the systems
  9. Improve reporting

Reporting: This is often overlooked. Logging and tracking data is used to make reports. These reports are highly valuable to ensure if the system works as expected and find areas of improvement. Also valuable for marketing and increasing value of the product and brainstorm for new features development. Note that most people would not report if the issue is found, they simply leave the website.

Rate limit: It's better to add it where possible. Make realistic limits to ensure server takes load as expected. Even normal user should get rate limit. While it is bad for user experience, it will at least keep the website functioning as expected and also substantially decrease the risk of attacks on the server. How much you should put the limit depends on the functionality and capability of the server.

I wrote 3 articles that are interconnected with each other for full software development process for freelancing. This is Communication.

Links:

The best freelancing communication strategy as software developer

The best freelancing feature prioritisation strategy as software developer

More Articles You Might Like

Subscribe for new articles.

talk