Click here to load reader
Upload
papagel
View
222
Download
1
Embed Size (px)
DESCRIPTION
A few experiences from the process of building a web system
Citation preview
The time paradox
Assume a software system that needs 20 days to complete 80% of it
How much time will it take to complete 100%?
Answer = Infinite As closer we get to 100% time becomes
relative. We can never reach 100% as we need more and more time to cover the next step
Balance between time and results It is important to get something working
quickly Aim to 90% - this gives you a good
balance between functionality-quality and time-to-market
Get used to reiterate later your logical and layout issues
Don’t loose long-run goals perspective over every-day hurdles
Balance is a key ingredient for everything
Care for the “wrapper”
Build a decent web-site from the scratch
Use your brand as the glue for everything you do
Use a forum or blog to communicate with the users
Build documents, video presentations … whatever you can to explain your system
Look and be professional on all aspects
Get used to people differences Not all people are the same, work the same,
produce the same Make a good mix
You need the architect, you need the builder and you need the clerk
Motivate them and keep them as a team BUT: You need at least a few extraordinary
members to lead the process And you need the correct attitude from all
members Don’t go with people that cannot communicate at all
Get external support
Promoting your system is harder that you expect
Find the appropriate channels Measure your site traffic, it is the only
trustworthy success mechanism Find people to help you
Building a community takes time and it is extremely hard
Help them back
Keep it simple
In an iterative environment debugging can become a headache
Forget about unit-testing and other exotic debugging mechanisms
Write simple, well-structured code Use continuous scenario testing (labor or
automatic) Have experienced system testers If you have a user community include them
to the testing process
Get used to change
Change is inevitable You should get prepared to handle it efficiently Filter external interferences from the
development team Give them ample time to do it correct / work with
them Make sure that everything is simple so as to be
able to adjust Re-balance your system frequently to be change-
friendly Minimize source Optimize code
Products vs Projects
Projects have a deadline, you don’t have one Projects get to 80%, you need to go to 95% Most project management tactics are useless
under a continuous development environment A small development team can make miracles But use ample resources for wrapper tasks
(documentation, testing, marketing,…)
Pick the correct tools
There will always be a variety of tools that can make the job
Do not get “attached” to certain tools Pick the ones that can help your time-to-
market equation and not based on their superiority
Be careful to pick those that will provide an optimized solution for the end-user
Be honest
…to the team …to the customers …to yourself Don’t offer biased advices.
Or whenever you do so make sure you are open about your bias
Don’t promise what you cannot deliver Don’t aim to the impossible Aim to the extraordinary
Don’t give up
Building a product is a long-process full of good and bad moments
Each day has something new to give. Let yourself grow through them
Be persistent but not dogmatic Don’t forget that opportunity meets
preparation