Realization of a software solution (shared experience and personal thoughts)

Here i share i have learned as a developer (in my 1.5 years of experience).

Planning

0) Before take project be sure that you are familiar and have complete understanding of the specified problematic domain
1) Never start single task or project with unclear basic requirements!
2) Make plan(time, resources...) and try to stick with it (even if you fail(yes you will) to stick with it, you will have a nice view of where are you at the moment and what you must change to proceed).
3) If there is a working solution - use it. Don't reinvent the wheel!
4) Choose precisely the technology/platform... that will be used.
5) If project is done from scratch - invest more time in architecturing!
6) Don't make compromises with ad hoc solutions at base stage of architecturing! Never!
7) Aim for a scalable model in order to confront upcoming changes/new requirements! (believe me, requirements are something extremely volatile)
8) Invest time in learning new practices that will be helpfull during development stage.
9) Listen to every single opinion in planning stage.
10) Document everything (from begining to the end)!

Developing
11) Create or use code notation and standarts
11) Define milestones and define set of functualities to be completed for each milestone
12) Delegate each task precisely - choose the right man for it.
13) Major tasks must be delegated to pair of programmers.
14) Give your team freedom for the realization of each task (ofcource in the constraints of already planned architecture)
15) Start testing as soon as the developing process has started. Test every chunk of code before it's ready to take place on the big "picture"
16) Synchronize team actions.
17) Completing single milestone, you must have a working part of the big picture.
18) Talk with the client and show them the progress of the project.


Will be happy to share your advices!
top