A software developer’s path of enlightenment

Dev

A software developer’s path of enlightenment

As a self-taught developer and as a manager who has watched the growth of many young developers, I have seen a pattern in the learning cycle of developers.  It usually goes like this:

1.  Make it work

The young developer is ecstatic to just have code that is working properly. They probably have poorly named methods and variables, commented-out code strewn everywhere, and overly long methods.

2. I love this object-oriented stuff!

The developer discovers interfaces and classes and becomes “class happy”.  They think that if you build a class you should build an interface because “at some point we’ll need multiple classes here, right?”.   They create classes out the smallest data constructs into classes and prefer enumerations over basic data types.

3. We could re-use this code if….

Abstracting all code seems like a great idea. Duplicate code is evil.  In fact duplicate logic is evil.  The coder believes abstracting functionality will lead to great efficiency in the future.  May become obsessed with writing code that writes code to write code.  Avg. method length is ridiculously low.

4. Did I write this?

After a while of maintaining the overly complicated code he has written in the past, the developer begins to see the downside of added code complexity and starts the journey back to simplicity.

5. Master of the tradeoff

Realizes that the search for perfection in coding was a fallacy.  Each project or scenario needs to be evaluated based on it’s parameters only. There is often more than one right answer and evaluating the tradeoffs between options becomes second nature.  The coder becomes a maximizer of his time vs. code functionality/benefit.

 

The idea for this post was sparked by an excellent article about fighting code complexity:

http://codebetter.com/blogs/patricksmacchia/archive/2009/06/28/fighting-fabricated-complexity.aspx

More About the Author

Cole Shelton

Chief Data Officer
The Road to Tableau 2019.3: How InterWorks Influenced Server and Content Migration Features Tableau purchased Power Tools in 2019. Contact Us for more information. InterWorks fell in love with Tableau in 2008, and our Tableau ...
We’ve Improved Data Source Audit in Workbook Tools for Tableau! Tableau purchased Power Tools in 2019. Contact Us for more information. A little over a month ago, we released version 1.14 of our ...

See more from this author →

Subscribe to our newsletter

  • I understand that InterWorks will use the data provided for the purpose of communication and the administration my request. InterWorks will never disclose or sell any personal data except where required to do so by law. Finally, I understand that future communications related topics and events may be sent from InterWorks, but I can opt-out at any time.
  • This field is for validation purposes and should be left unchanged.

InterWorks uses cookies to allow us to better understand how the site is used. By continuing to use this site, you consent to this policy. Review Policy OK

×

Interworks GmbH
Ratinger Straße 9
40213 Düsseldorf
Germany
Geschäftsführer: Mel Stephenson

Kontaktaufnahme: markus@interworks.eu
Telefon: +49 (0)211 5408 5301

Amtsgericht Düsseldorf HRB 79752
UstldNr: DE 313 353 072