CORE VALUES - Engineering
Not in my experience, at least. I have found that design needs to be considered eventually, and making changes in design is a lot cheaper when it involves using an eraser instead of a debugger. In fact, I have noticed that those projects in which I have been most efficient in the past are precisely the ones in which I have spent an unusually long amount of time in the design and research phase. Coincidence? Probably not. Passing your test cases just means that a feature is not broken, the equivalent of a D- in a school grading system. Some other factors to consider to move toward an A+ quality implementation may be: When testing a product, try to test cases well outside of what is expected. There are many reasons for this: An engineer's code relates to a well prepared end product in the same way ingredients relate to a well prepared meal. It is nearly impossible to create a high quality meal with poor ingredients, no matter how many cooks, taste testers, and customer surveys we factor into the process. Besides, it takes less resources to fix a bug during engineering than it does to delegate the bug between engineering and QA and get back to fixing it later, when the feature that the bug relates to is no longer fresh in the engineer's mind and he needs to interrupt his current task to fix it. In software engineering, people often assume that a client's job is to give orders and a contractor's job is to follow them. I disagree. I think a good contractor is one who not only has a thorough understanding of design and engineering best practices, but also communicates them clearly to others and takes a stand for implementing them. There are many reasons for this. It is quite possible that the client does not spend half his life reading about development techniques and design guidelines and simply does not know what the designer or engineer knows. Also, following best practices leads to a better end product, which is mainly in the client and customer's best interest. Finally, a contractor has a personal stake in the end product as well - the contractor's name and reputation and time are involved in the product as well asl the client's. Yes, the client usually has the final say, but that does not mean that a contractor should behave as an unthinking yes-man. Usually excessive overtime is a sign of unrealistic planning, inefficient work, or both. Finishing a task under budget and ahead of schedule while working a 40 hour week, now that would be something to brag about! Surely someone who can do this is much more efficient, reliable, and focused than one who performs the same work in a 60 hour week, right? back to core values |