The Joel Test: 12 Steps to Better Code By Tim Denton.

Slides:



Advertisements
Similar presentations
By Rick Clements Software Testing 101 By Rick Clements
Advertisements

An open source QA stack testing tools for agile teams Presented by Aaron Evans
Chapter 8: Evaluating Alternatives for Requirements, Environment, and Implementation.
SSA 2013 Software Development Lifecycle (and how to make the best of it) Mono d.o.o.
How Do I Evaluate Workflow?
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Important concepts in software engineering The tools to make it easy to apply common sense!
15 Jul 2005CSE403, Summer'05, Lecture 10 Lecture 10: Incremental Releases Valentin Razmov.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Compilers and Interpreters. Translation to machine language Every high level language needs to be translated to machine code There are different ways.
8 Systems Analysis and Design in a Changing World, Fifth Edition.
Systems Analysis and Design in a Changing World, 6th Edition
12-February-2003cse Construction © 2003 University of Washington1 Construction CSE 403, Winter 2003 Software Engineering
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Marketing Research Unit 7.
Testing Dojo Łukasz Kempny Autor: Łukasz KempnyCopyright© Future Processing 2012.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Louisa Lambregts, What Makes a Web Site Successful and Effective? Bottom Line... Site are successful if they meet goals/expectations.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
Introduction to Usability By : Sumathie Sundaresan.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Open Source Software An Introduction. The Creation of Software l As you know, programmers create the software that we use l What you may not understand.
The Joel Test 12 Steps to Better Code. Readings The Joel Test (by Joel Spolsky) 043.html.
Painless Bug Tracking Michael Tsai 2011/9/30. Reference  html 2.
1 Lecture 19 Configuration Management Software Engineering.
Ethics of Software Testing Thomas LaToza CS 210 Final Presentation 12 / 2 / 2002.
Software Development Process.  You should already know that any computer system is made up of hardware and software.  The term hardware is fairly easy.
Software Assurance Session 13 INFM 603. Bugs, process, assurance Software assurance: quality assurance for software Particularly assurance of security.
ICT IGCSE.  Introducing or changing a system needs careful planning  Why?
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
Slide 12.1 Chapter 12 Implementation. Slide 12.2 Learning outcomes Produce a plan to minimize the risks involved with the launch phase of an e-business.
About Quality Pre paired By: Muhammad Azhar. Scope What is Quality Quality Attributes Conclusion on software Quality Quality Concepts Quality Costs.
Creating Databases for Web applications Open source, other DBMSs, etc. Homework: Keep working on projects.
Construction, Testing, Documentation, and Installation Chapters 15 and 16 Info 361: Systems Analysis and Design.
The Software Development Process
MIS 7003 MBA Core Course in MIS Professor Akhilesh Bajaj The University of Tulsa Introduction to S/W Engineering © All slides in this presentation Akhilesh.
Design - programming Cmpe 450 Fall Dynamic Analysis Software quality Design carefully from the start Simple and clean Fewer errors Finding errors.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
Week 7-10 MondayTuesdayWednesdayThursdayFriday Joel test & interviewing No reading GroupsReviewsSectionProgress report due Readings out Reading dueGroups.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Biological Model Engineering Peter Saffrey, Department of Medicine Cakes Talk Monday, October 20, 2008.
11 ADM2372 Management Information Systems (MIS) Chapter 10 – Part I Systems Development Chapter 10 – Part I Systems Development.
1 Chapter 1- Introduction How Bugs affect our lives What is a Bug? What software testers do?
 Software reliability is the probability that software will work properly in a specified environment and for a given amount of time. Using the following.
Unit 3 Computer Systems. What is software? unlike hardware it can’t be physically touched it’s the missing link between the computer hardware and the.
Systems Analysis and Design in a Changing World, Fifth Edition
Continuous Integration (CI)
Project Center Use Cases Revision 2
Project Center Use Cases
Segments Basic Uses: slides minutes
Project Center Use Cases
Systems Analysis – ITEC 3155 Evaluating Alternatives for Requirements, Environment, and Implementation.
Project Center Use Cases Revision 3
Project Center Use Cases Revision 3
Finding and Managing Bugs CSE 403 Lecture 23
CS240: Advanced Programming Concepts
Your code is not just…your code
Git started with git: 2018 edition
that focus first on areas of risk.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
PT0-001 Exam Questions 2019
Your code is not just…your code
Presentation transcript:

The Joel Test: 12 Steps to Better Code By Tim Denton

The Joel Test vs SEMA ▪ The Joel Test was created to replace SEMA ▪ SEMA (Software Measurement and Analysis) – Measurement and analysis of gathering quantitative data about products, processes, and projects – That data is then analyzed to influence your actions and plans for software development ▪ Joel's thoughts on SEMA: – “It will take you about six years just to understand that stuff. So I've come up with my own, highly irresponsible, sloppy test to rate the quality of a software team.”

The Joel Test vs SEMA ▪ The Joel Test – Only 12 questions ▪ Ideal score 12 ▪ 11 is tolerable ▪ 10 or lower = serious problems – Each question has a YES or NO answer – Line of code creation irrelevant – FAST!!! Takes around 3 minutes

Step 1. Do You Use Source Control? ▪ Source Control - the management of changes to documents, computer programs, large web sites, and other collections of information ▪ Allows a programmer to revert to an older version of code at a saved point in time – If a mistake is made, it can be rolled back ▪ Examples of source control – Github – Bitbucket – Team Foundation Server

Step 2. Can You Make A Build In One Step? ▪ On good teams, there's a single script that can be run to: – Conduct a full checkout from scratch – Rebuild every line of code – Create the executable in the desired versions and languages – Create the installation package ▪ If the process takes any more than one step, more chance for errors

Step 3. Do You Make Daily Builds? ▪ Daily builds insure that no breakage goes unnoticed – Large teams, do the daily build every afternoon (lunchtime) – Small teams, every 2-3 days (user discretion) ▪ If the build worked, great! – Everybody than has the latest version of code continues working ▪ If the build failed, fix it! – But everybody can keep working with the unbroken version of code

Step 4. Do You Have A Bug Database? ▪ Bugs must be formally tracked or low quality software will be created ▪ Why? Because programmers can continue to write bugs over and over again without realizing or knowing they are doing it ▪ Bug Database can be complicated or simple, but must have: – Steps to reproduce the bug – Expected behavior – Observed (buggy) behavior – Who it's assigned to – Whether it has been fixed or not

Step 5. Do You Fix Bugs Before Writing New Code? ▪ In general, the longer a programmer waits to fix a bug, the costlier it is to fix that bug ▪ And if a bug is found in code that has already shipped, it is even more expense to fix ▪ Bottom line, fix bugs before writing new code

Step 6. Do You Have An Up-To-Date Schedule? ▪ There are many planning decisions that the business needs to make: – Demos – Trade Shows – Advertising ▪ Forces development teams to decide what features are going to be implemented or not ▪ Prevents Scope Creep

Step 7. Do You Have A Spec? ▪ When creating a spec at the design stage, a problem can be easily fixed when it is discovered before it ever gets to code ▪ Software that wasn't built from a spec is usually badly designed and the schedule gets out of control. – Netscape started over from scratch 4 times ▪ No Spec = No Code

Step 8. Do Programmers Have Quiet Working Conditions? Knowledge workers need space, quiet, and privacy to be productive Issue: Getting into "the zone" is not easy Takes an average of 15 minutes to start working at maximum productivity, “the zone” Issue: Very easy to get knocked out of the zone:

Step 9. Do You Use The Best Tools Money Can Buy? ▪ Far cheaper to get programmers new tools vs. paying their competitive salaries! ▪ Tools – Latest computers – Multiple monitors – Fastest compilers

Step 10. Do You Have Testers? ▪ If your team doesn't have dedicated testers – You are shipping buggy product – AND/OR – You're wasting money on programmers doing the work of testers ▪ Should be at least one tester for every two or three programmers

Step 11. Do New Candidates Write Code During Their Interview? ▪ Would you hire a magician without asking them to show you some magic tricks? – No! ▪ Would you hire a caterer for your wedding without tasting their food? – No! ▪ Do whatever you want during interviews, but make the candidate write some code.

Step 12. Do You Do Hallway Usability Testing? ▪ A hallway usability test is where you grab the next person that passes by in the hallway and force them to try to use the code you just wrote. ▪ If you do this to five people, you will learn 95% of what there is to learn about usability problems in your code.

Conclusion ▪ The Joel Test is a unorthodox, but effective test. – Analyzes the productivity of the software development team – Identifies potential problems or shortfalls the team has or may encounter – No learning curve – Fast

Questions? Comments? ▪ Questions? ▪ Comments?

References ▪ The Joel Test: 12 Steps To Better Code – ▪ SEMA –