Greenfield Application Development (GAD)

I’ve been very busy of late, focusing on prototyping little things (along with some personal things). This is the first time I’ve had a real level of control of how a greenfield application will be built. In the past I’ve experienced too many obstacles to achieve a desirable outcome.

Dilbert Failure

But now a twist of fate along with; a bit of planning, brainstorming and prototyping is on track as a “greenfield” application.

Green Field

I can’t go into the details of the application and it’s operation, so I thought I’d share a little summary list of things we’ve considered, discussed, and even decided* upon for our application.

*Decided as far as we haven’t changed our mind yet.

Disclaimers
1. This is by no means a complete checklist – but if you’ve got the opportunity to be part of creating a new application which has some degree of flexibility in terms of deadline pressure and implementation. When I say flexibility I mean ability to make choices without intense time pressure or a lot of other external pressures. I hope we’ll discover if the time we’re taking was viable based on our final delivery time frame and delivery outcome.

2. This is biased towards patterns and technology common in the Microsoft.NET space.

Once there are some more interesting prototypes/concepts, I’ll post some lessons learnt or just cool solutions (if we do end up producing something “cool”).

So onto the list.

Consider:


How long you spend on:

  • A pure research phase.
  • Brainstorming sessions with stakeholders / domain experts.
  • General discussions amongst developers

When to:

  • Lock down some big decisions, only to change course if it’s an impedance.
  • Restrict new ideas from even more stake holders, (people with opinions).

How to conduct the:


Choice of:

  • System architecture.
  • Presentation platform; web, desktop, mobile.
  • Presentation framework; ASP.NET MVC, WPF, Silverlight.
  • Development patterns; MVC, MVP, MVVM.
  • IoC container.
  • Mocking and Unit-Testing frameworks.
  • ORM frameworks.
  • Database approach in general
  • Using a non-tradition database technology along the lines of NoSQL.

How many:

  • Initial features you need to deliver, before you have a beta.
  • Newish techniques to adopt/use. (New to developer community or just your team).
  • Beta technologies to take a bet on.

but most importantly, how you will deliver:

  • Business/customer value.
  • A pleasant end user experience.
  • Support and help.
  • Confidence in the system.

Obviously several of the above choice branches are reasonably trivial, and come down to personal preference and familiarity, clear cut example is the choice of a unit testing framework.

As a summary point for our choices, the current set of “locked down” technology choices revolve around:

  • WCF – for a distributed deployment of system services.
  • ASP.NET MVC 3 – the way to go on the web space with .NET 😉
  • NHibernate – a popular ORM in the .NET community, and due to some unpleasant experiences with other ORMs in the past.
Advertisements

2 thoughts on “Greenfield Application Development (GAD)

  1. What unpleasant ORM experiences would they be I wonder.

    • Yes there’s some shared grief there as Soozook mentions from our past experiences together, without naming the ORM it wasn’t itself to blame entirely but just made worse by other surrounding issues.

      None-the-less a negative association forms for many of us, that’s difficult to overcome and you find yourself avoiding a technology simply for that reason.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s