starting a project

Approach to starting a new project – c. May 2013

Understand functional goals
Consider options to achieve – choose best option with the functional and technical goals

find high risk areas and try to do POCs (proofs of concept) early to mitigate them
look at usability, UI guidelines etc
find types of development task (list form, crud form, report, admin section)
consider non functional requirements

remember rules (try not to reinvent the wheel) and patterns
and antipatterns – golden hammer – using a golden hammer for everything

setup an infrastructure (framework / way of working)
code organization / source control
build process and qa / release deployment (environments, script deployment, config management)
logging / exception / theming / installer / updater / license / authentication
first few iterations (sprints) are mostly architect / minimum additional developer(s)

spec generation
task management (todolist / scrum / tfs / bitbucket / buggenie)
test case / qa process (checklist)
estimation – checklist / past history project
metrics – velocity, defect rate
escalation plan

technical management
knowledge base
coding guidelines
layering / enforcing rules

.Net – what is important

You need to understand the spirit of the framework / language you are using.
Start guessing how it works. you can assume what will be available and how it should work.
– function chaining (StringBuilder)
– linq order, group, any, where, select, todictionary
– reflection / generics
– attribute usage

– separation of concerns – object modelling / single responsibility principle
– keep technical problems different from functional ones – this is a very important distinction and classes, methods and even variables are based on this.

Leave a Comment