Craftsmanship

Craftsmanship
Slide Note
Embed
Share

In the world of software development, craftsmanship plays a crucial role alongside design and the inevitable presence of bugs. From creating efficient code to addressing common issues like bugs, this content delves into various aspects of software development, highlighting the importance of good design and the challenges developers face in their craft.

  • Software Development
  • Craftsmanship
  • Design
  • Bugs
  • Insights

Uploaded on Mar 03, 2025 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Craftsmanship Kevin Patel

  2. What is making software classified as? It is NOT a manufacturing process It is NOT quite a craftsmanship either Writing code is not production, it is rather a design

  3. 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 value

  4. CityDesk 3.0: The file import code 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.

  5. First draft of CityDesk code Open the file Read it all into a big byte array Store the byte array in a record

  6. 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 crashing

  7. 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 CityDesk

  8. 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 time

  9. 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.

  10. 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 audience

  11. Reference http://www.joelonsoftware.com/articles/Craftsmanship.html

Related


More Related Content