How do you guys manage your time with a very limited time in designing their desired system?

Recommended Answers

All 2 Replies

Do a depth-first traversal through the decisionspace, ordering by expected time of finishing the design having made that decision.

Do a depth-first traversal through the decisionspace, ordering by expected time of finishing the design having made that decision.

Sounds more like an A* algorithm to me! ;)

As for the OP's question, it is all a matter of picking your battles. You can't make everything perfect all the time, you have to go back-and-forth between cowboy-coding and elegant software design all the time. Identify things that are critical, require more attention, and whose design will have a longer-lasting effect on the rest of the development of the system, and then take the time to design that part correctly. Then, for the rest, you quickly throw a working piece of code together (i.e., that's called cowboy-coding). Usually, core functionalities fall under the former category, while auxiliary functionalities fall under the latter.

At the end, investing proper time into the design of critical functionalities is going to save you a lot of time later when you don't have to debug as much or have to do too many design iterations (or patch-work). So, in the long run, proper design actually helps you meet the deadlines (given that the requirement is for a quality-assured software that has gone through enough testing and enhancements).

The field or company you are working at will also strongly affect the time you can spend designing a system. If you are just writing a simple Android app for a company (for an ad-campaign, sales, etc.), then you probably shouldn't even spend a minute doing "software design", just code it up. But if you are designing 6-sigma quality-assured software to do high-fidelity tasks, and it's a long-term-support type of software (10-20 years, with plenty of maintenance and enhancements to do later), then you'd better spend a good amount of time designing that software system (as rubberman (a daniweb member, who does this kind of work) would say, spend 90% of your time designing, 10% coding). It also depends on the culture at your company, some just want versions to roll-out as fast as possible so that they can fill the shelves in the stores, others understand that the quality and sustainability of the design matters a lot down the road.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.