/
Craftsmanship Craftsmanship

Craftsmanship - PowerPoint Presentation

jane-oiler
jane-oiler . @jane-oiler
Follow
403 views
Uploaded On 2016-03-11

Craftsmanship - PPT Presentation

Kevin Patel What is making software classified as It is NOT a manufacturing process It is NOT quite a craftsmanship either Writing code is not production i t is rather a design Design Design is that area where you can add value faster than you add cost ID: 251309

citydesk file craftsmanship code file citydesk code craftsmanship add database design process big child software byte read array time

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Craftsmanship" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Craftsmanship

Kevin PatelSlide2

What is making software classified as?

It is NOT a manufacturing process

It is NOT quite a craftsmanship either

Writing code is not production,

i

t is rather a designSlide3

Design

Design is that area where you can add value faster than you add cost

The New York Times magazines

raved

about how apple is one of the few companies that knows how to use good design to add valueSlide4

CityDesk 3.0: The file i

mport

c

ode

Simple piece of code written by Joel

The user chooses a file  the program copies that file into the CityDesk database

Great example of one of those places where “the last 1% of the code takes 90% of the time.”Slide5

First draft of CityDesk code

Open the file

Read it all into a big byte array

Store the byte array in a recordSlide6

One of many bugs of CityDesk

CityDesk worked great for small sized files, although it had many bugs which were later fixed

Biggest bug was dragging a big sized (120 MB) file into CityDesk

The code worked but took almost a minute and provided no visual feedback

The app then ended up crashingSlide7

From a UI perspective

Progress bar of some sort for long operations

Cancel button

Have the ability to run the file copy procedure in the background so you can continue doing other operations with

CityDeskSlide8

Ways to make copy procedure run in the background

From a single thread, polling frequently for input events

Never quite works

By launching a second thread and synchronizing it carefully

Programming with multiple threads creates much additional complexity

By launching a second process and synchronizing it less carefully

Good solution, since the database is multiuser and doesn't mind lots of processes running at the same timeSlide9

The big picture

From reading the file and saving it in the database to something more complicated

Launch a child process

 read the file  save it in the database  add a progress bar and cancel button to the child process, and then some kind of mechanism so the child can notify the parent when the file has arrived so it can be displayed.Slide10

The moral of the story

Sometimes, fixing a 1% defect takes 500% effort

It comes down to an attribute of software that most people think of as craftsmanship

Craftsmanship is incredibly expensive

Only way you can afford it is when you are developing software for a mass audienceSlide11

Reference

http://

www.joelonsoftware.com/articles/Craftsmanship.html