Development: Process

After Design comes Development and there are a numbrer of best practices to apply when doing the actual development of a SW Project the promotes creation of good code and a smooth working team experience.

Code Creation with Best Practices include:

Below I have outlines the steps you take in typical process of actually "implementing" the code. I have highlighted some of the best practices that is part of code creation.

 

1. Decompose System

2. Setup schedule with milestone for each system component -asign team members & due date

3. For each system component design the code and think how to break down the code: modularize code via design classes methods = designing the "API" (application interface) for each system compute. With the design of the API consider developing the Test cases for each class/method/etc.

4. Move the currently working on milestones to the (Doing/In Progress) list of your schedule

5. Create Issues that represent task for each part of the code API in each system component & assign each issue to team members

6. As a developer select an Issue assigned to you and Implement code (create a good Style and Comment your code) & perform unit testing and integration testing

7. Perform Code Review with one or more team members -- especially with someone who develops code that is dependent on this code or who develops code this code is dependent on

8. Commit your code to your local and shared remote repository for software version control.

9. It is time to mark this issue resolved AND if this completes a milestone move that milestone to the "Done/Completed" list in your schedule.

Inside Industry

Neil Jones, Staff Software Engineer at Google

I would outline it roughly this way:

  1. Understand what problem you are trying to solve, and why
  2. Break it down into smaller pieces
  3. Keep breaking it down into smaller pieces until you feel comfortable that you know how it all fits together and how the smaller pieces work
  4. Document this process
  5. Talk it over with someone else
  6. Think it through again
  7. Start coding

Modularization &Commenting

Modularization is the basic/fundamental understanding of how to break down a problem to solve it. This website is not aimed at teaching you programming or problem solving -- we leave that to your core CS education/courses. Similarly, the use of good commenting is a core CS curriculum topic and left for those courses to teach you.

Code Styling

A best practice sometimes missed in course CS courses is Code Styling. In Industry, each company may have its own set of style guides. Styles including issues like: how to name classes, how to name variables and methods/functions, how to indent, where to place {}, etc. Here are a few examples from Google of their style guides:

Google Java Style Guide

Google C++ Style Guide

General Google SW Style Guide

Inside Industry

Inside Industry

Antoine Pickard, Staff Google Software Engineer

"Code styling is important when you have multiple developers sharing the same code. The Google style guides (publicly available) are a good starting point. You don't have to take Google's recommendations but you should establish a standard to cover the things that it covers. "​

Also, here are some tools for Github and Bitbucket that can help with style checks.


Tools Github


Tools Bitbucket

 

 

 

 

 

 

© Lynne Grewe