Showing posts with label Book Notes. Show all posts
Showing posts with label Book Notes. Show all posts

Thursday 19 April 2018

Aqeeda tut Tahavia

Here are my book notes from this book. For a review, go here.

Friday 2 May 2014

Monday 30 April 2012

Software Construction

So I am reading this book that my colleague recommended, Code Complete by Steve McConnell. It's supposed to contain the best practices of software engineering, without which, not only your software is mediocre, it's also very expensive.

The book makes it clear early on that it's only about the Software Construction part of the software development life-cycle, but does talk about what to assess before doing construction. So it does talk about what're the steps before it.

Here's the life-cycle as the book mentions it:
  • Problem definition
  • Requirements
  • Architecture
  • Construction
  • Systems Testing
  • Future Improvements

What I was surprised to learn is that problem definition really has to be just the problem. It can't contain any solution in it, and it can't contain any technical terminology. It should state the problem, as faced by the User, in User's words. Only then can the requirement analysis be unbiased and most suitable. 

From the book:
A problem definition defines what the problem is without any reference to possible solutions. It’s a simple statement, maybe one or two pages, and it should sound like a problem. The statement “We can’t keep up with orders for the Gigatron” sounds like a problem and is a good problem definition. The statement  “We need to optimize our automated data-entry system to keep up with orders  for the Gigatron” is a poor problem definition. It doesn’t sound like a problem; it  sounds like a solution. ...

Suppose you need a report that shows your annual profit. You already have computerized  reports that show quarterly profits. If you’re locked into the programmer mind- set, you’ll reason that adding an annual report to a system that already does quarterly reports should be easy. Then you’ll pay a programmer to write and debug a time-consuming program that calculates annual profits. If you’re not locked into the computer mind-set, you’ll pay your secretary to create the annual figures by taking one minute to add up the quarterly figures on a pocket calculator. 
— McConnell, S. (2004) Code Complete.