Any developer who has done greenfield development will tell you it’s the best way to write code. No existing system to maintain, no antiquated patterns or languages you have to deal with, and no constraints (within reason). Greenfield development is an easy, unobtrusive way to code, but at the same time, it is incredibly difficult to scope and deliver.
In case you are unfamiliar with the term, greenfield development simply means building something new from scratch. You are uninhibited by legacy systems and have nothing but possibilities in front of you.
If developers had their way, we’d likely never see a new piece of software again. Their tendency is to continue adding features until the product is “done.” Spoiler alert: Software is never done.
So how do you pare down your feature set and get your app in the hands of customers in the quickest way possible?
There are three things you must have before pushing your application to production.
Security means a lot of things to a lot of people. When it comes to getting a greenfield product out the door, it really means one thing: Prevent your data from being publicly accessible.
Take the time to lock down your databases and data storage mechanisms. The last thing you want is a Capital One situation that compromises your whole operation. If you require a login to your app, make sure it’s secure. There are standards out there like Auth0 that provide easy mechanisms to keep your site safe.
The most important thing you can do is give your users the confidence that their data and information is safe.
If you use cloud services like AWS, they provide fast and easy ways to secure your databases and data storage. Through IAM, you can swiftly prevent an open connection to files, data, and even endpoints.
Think about it this way: You wouldn’t live in a house without locks on the doors, would you?
Yes, it sounds obvious. But trust me: If you’ve never done greenfield development, this is harder than it sounds. Not for the reasons you’d expect, though.
When building a new product, you must build it up horizontally layer by layer. This means you have to get it working end to end before you start adding extra features. Get the happy path working to solve the business problem. Then take another pass at it and add some features that improve the experience end to end. Then do it again. And again. And again.
Let’s take an example. Say you have a food ordering app. People visit your site, look at a menu, put items from that menu on an order, pay, then you fulfill the order.
To solve the business problem, you need to provide a way to do all four of those things. No matter how rudimentarily you solve it, you must be able to fulfill an order that your customer places.
A common hangup with developers is that they will stick to one area and continue to add feature after feature indefinitely. If you aren’t careful, you could end up with a menu in your app where you can search through, add favorites, see how many times you’ve ordered something, and rename items all before you have the ability to actually place an order.
The minimum that needs to be done is to display a static list of text, but instead, you have a gold-plated menu with titanium trim and no way to order.
When talking with your team, here are some common phrases to listen for to make sure you don’t add extra features before you need them:
Your goal when building a new app is to get it to your customers as quickly as possible, get feedback, and enhance the experience. You’ll never get that invaluable feedback if you keep adding features instead of getting the app in the hands of your customer.
Always remember to K.I.S.S (Keep It Stupid Simple).
As stated earlier, your primary objective when building a new app is to get feedback from your customers. You want to build what they want and satisfy the market need.
If you have locked down your app with the right security, solved the business problem, and pushed to production but have no means to get that feedback… you’ve lost.
There’s no way for you to enhance the experience based on what the customer actually needs. You’re flying blind. You need to provide a way to get that feedback. Luckily, you have options.
A simple way to get feedback is to have someone manning the phones to field calls when they come in. Record the questions people ask about how to do something and figure out a way to make that experience better.
Can’t afford someone being on the phone all the time? Put a feedback/help form on your site. Let the users fill out an email describing their problem and you can get back to them when you’re available. This way, you also have a means of receiving positive feedback that you can use for testimonials!
There’s always the option of doing focused user testing. Get on the phone with some of your customers and have them use the application while you watch. Ask guided questions about what they would expect to happen and if they feel like anything is missing.
Prioritize the feedback you hear most often. Address the needs of the many. After you make some changes, do it again. Plan for iteration.
If you can remember the three S’s (Secure, Simple, and Support), you will set yourself up for quick success in greenfield development.
Give your users confidence they won’t get hacked. Provide them with an experience early with the promise of enhanced features and improved UX over time. Offer ways to reach out and provide valuable feedback.
Greenfield development doesn’t have to be hard. It all comes down to how you execute. Plan to iterate, solve the problem, go to market, profit!