4 ms·
Very fast development, how to do it?
I'm not talking shoving a huge number of man hours at the project in the shortest time period possible. I mean what tools, strategies,or anything really that will cut application development time(and also the man hours put in).
Note:I'm asking this question with webapps in mind but something that would work with general development I think is also relevant.
- daleharvey 16y agotests once you are sure that you arent breaking something, the speed at which you can code changes an order of magnitude. the hard part is how to produce tests quickly
- abdulhaq 16y agoThe sooner you start typing the longer it takes to finish.
- jaddison 16y agoUse a framework: Django. RoR. Go minimalist (feature set) and release ASAP - no matter how crappy it is. Having something released will force you to improve it quickly.
- stonemetal 16y agoA willingness to do it right the first time. I find any time I take on "technical debt" it almost always bites me in the rear latter. A good VCS and the ability to use it. Spiral development with strict YAGNI. Do it right but don't over engineer. Automated Tests. Not because I am all that big a fan of tests but because if you write it to where it is easy to test it is often better designed. Code that is written with everything you need to do to unit test is often written with lower coupling and better cohesion because you are thinking about how to take out this one little part to test.
- makecheck 16y agoChoose the best language for the job, because coding really slows down when even the simplest things are awkward to express. Sometimes, this can be handled by writing a simple tool or file format for code generation, as opposed to using a new language. Make sure perl and python are both in your toolbox. While it's useful to spend some time looking for existing solutions, don't be afraid to build things. Your version will often be good enough, and quicker to integrate than a 3rd party solution. Besides, you usually learn something in the process, which will only make you better at coding, and speed up your next project.
- tszming 16y agoRelease early. Release often. And listen to your customers.
- coryl 16y agoThis doesn't really help you with putting out code quicker/more efficiently.
- anactofgod 16y agoThe number one thing you can do to develop the "correct" software quickly is to choose a language at the proper level of abstraction and with the right idioms to allow you to address your problem space. If you are tackling a problem space where such a language doesn't already exist, or one where the right idioms and level of abstraction is unknown to you, then choose a language that permits you to easily discover and construct the domain specific language that is required.
- laxk 16y agoAutomate all processes: assembly, releases, tests. If there is a process that has to do every day - automates this. A good example of when you need to do automation - delivery website for test and production server. Also use modern frameworks like RoR, Grails, Django, Spring, etc
- 10ren 16y agoThe fastest coding is no coding. Some pre-programming thoughts: Problems are easier to fix the earlier you find them. Try to define the problem (get it clear in your head); try to define the solution. A minimal product can help (does it solve the problem? is it the problem real?), or mocking up a pretend solution (e.g. a manual backend, or no backend), even on paper, or with a tool like balsamiq. Can you solve the problem using an existing tool, perhaps by modifying the problem to fit (constraining it, generalizing it, or transforming it)? This can be embarassingly effective, esp if you have NIH syndrome and just want to code. Can you make the cause of the problem go away? ie Doctor, my arm hurts when I do this. Don't do that. Estimate times, by sub-dividing the tasks, then doubling the estimates. Then re-ask what is really essential. It can change the balance of what alternatives are reasonable to consider. [x2 seems to account for one's optimism. But confirm it for yourself: make some estimates and check what happened.] Reread The Mythical-Man Month. eg He suggests 1/6 of project time be allocated to coding. (p.20, anniversary edition); the rest is planning (1/3) and testing (1/2)
- ippisl 16y agoproductive django development: http://stackoverflow.com/questions/1852237/productive-django-web-development http://stackoverflow.com/questions/1852237/productive-django...
- DennisP 16y agoAbstractions and code generation. Start by being completely intolerant of repetitive code. Boilerplate must die. Closures can help a lot with this. To whatever extent you can't abstract away, use code generation. Make your generator insert code directly into your project files, maybe in between comment tags. You want to be able to configure things with minimal code and hit a button to get everything you need. I'm experimenting with using emacs for this, but generally I've just built c# projects to generate my c# code. On one project this had an unexpected benefit: I realized I could change my generator from a compiler to an interpreter, doing everything at runtime, and I got a very concise and flexible data-driven project, with 1/3 the lines of code as a similar project built by a contractor that had everything hardcoded. Of course, know your language and libraries well. You don't want to be googling for every little thing. To help learn the libraries, staged memory software like anki or mnemosyne can be a big help. Finally, get really good at a topnotch text editor. I'm about 8 months into using Vim for everything (mainly via Viemu, a plugin for Visual Studio) and it makes a huge difference. It's not just that I can edit faster, but that it helps keep me in flow.