Green Field Project Checklist



 A few days ago, a friend of mine contacted me about a new application he was thinking about and wanted to get together to discuss it. I said sure. Then I started thinking about what questions I needed to ask to be able to give good advice on how to build the application.

The more I thought about it, I realized what I really needed was a checklist of areas to understand to be able to get a handle on the system he wanted me to build. This post is that set of checkboxes.


From his description, I was able to get the domain the application would be in. Once I understood that I could dive into my items.


User Directed

1. User Flow
a. What feature/functionality is required

2. Paid or free application
a. A paid version requires more work than a free version.

3. Support Platforms
a. Web
b. Desktop
i. Windows
ii. Mac
iii. Linux
c. Mobile
d. Tables
e. The decisions here will drive the technology and UI Framework

4. Customer Sign up
a. How will a new customer sign up for an account?
b. Admin need
c. Manual process

5. Security
a. Users
i. Security setting for usernames and passwords.
ii. How to manage failed log-in
iii. How to manage forgotten passwords.
b. Credit cards.
c. Data

6. Authentication
a. How will users be authenticated?
i. Username / Password
ii. Singal Sign On
iii. Community Sign up.
1. Facebook
2. Google
3. Microsoft

7. Authorization
a. Will roles need to be supported?
b. How will roles be maintained?

8. Billing
a. If paid, how will the system be updated if the account is overdue?
b. System responsible for processing payments
c. How late before locking an account.

9. Editions
a. How many different editions, free, paid, premium. 

10. Sales Editions
a. Does there need to be a system for sales to demo?
b. Need a demo mode.

11. Licensing
a. Goes with authentication, security, and authentication.

12. Third-party integration
a. Billing system
b. Sales System
c. Services

13. Document Processing
a. Will documents need to be processed, PDF, images, etc.
b. How large of a document
c. How many documents
d. Where to store documents

14. Reporting
a. For users
b. For system
c. For business


Technology Directed

1. Database
a. Would depend on skill set. 
b. Import / Export

 

2. API Set
a. External, to allow customers to interface with
b. Internal

 

3. UI Framework
a. Build vs buy.
b. Any special components needed.

 

4. Logging
a. Where?
b. What?

 

5. Monitoring
a. Alerting

 

6. CI/CD
a. Paid, GitHub, Azure
b. Manual

 

7. Deployment
a. How to get a new release to the customer
b. Depends on the platforms supported.

 

8. Exception Handling
a. Show
b. Alert

 

9. Error Reporting
a. Log
b. Call home.

 

10. Auto Update
a. Needed if desktop or PWA.


Summary

Being a new application is a very dynamic process. I have provided areas to cover. I have provided examples of each, but the actual questions and flow of the conversation will depend heavily on the application being built.

Greenfield projects are fun and exciting. They can also be very frustrating if you get deep in and realize you missed an area of development. Pre-operational planning, like using this checklist will help you avoid those moments.


Comments

Popular posts from this blog

Yes, Blazor Server can scale!

Blazor new and improved Search Box

Blazor Wizard Step Component