Software Development Mission Statement

My Outlook on what a career in Software Development SHOULD be

We all want to be happy in our jobs, and for software developers that usually comes from a sense of accomplishment and recognition.  These work hand in hand with other factors, since accomplishment comes from meeting a challenge, meeting a challenge comes from having the right skills, and the right skills come from knowledge and communication. 

Knowledge and Communication

  Often we look at developers categorically, as though a .NET developer is far different than a Java developer.  The truth of the matter is that programming languages come and go, and the base techniques work similarly in each language.  My estimate is that there are fewer than 100 methods, functions and routines that a developer needs to know in order to accomplish over 99% of what we do.  Fortunately, there is great documentation available to help with finding out how methods work between languages, so that retooling from one language to another can happen very quickly and efficiently.  Point: Force developers can be trained quickly rather than hired.

 Training classes serve to remove developers from their daily responsibilities, giving them a chance to concentrate on learning without interruption or distraction.  Even though online course material is readily available, it is difficult to find time to squeeze in between other tasks, and more often than not the course is not completed.  Classroom led training pushes through material at a set pace, is complete in it's content, and allows for some social interaction with fellow developers.

 When talking to developers at training classes, conferences and user groups, you often hear them talking about how long it took to figure out this caveat or that, with other developers adding their own challenges regarding the same problem.  Software development is such a broad field, and there is such a large number of projects and development that it is inevitable that someone somewhere has encountered any issues we may have before we have.  By harnessing the knowledge of others, we save time, frustration, and save ourselves from feeling like we are underwater with our tasks.  Sharing what we have learned, through documentation, interaction and by utilizing online blogs and developer channels makes us good citizens in the development community, and promotes both your employer and the developer as a knowledgeable resource. Developers should meet with their peers on a weekly basis.  A weekly meeting allows for us to share knowledge and have our work reviewed and critiqued by our peers with the goal of each of us being able to write rock solid code that can be stand up to rigorous inspection without issue, and is easily readable by other developers.

 Skills

  The skill sets of developers come from commonly used standards and practices.  If a developer comes or goes from their employers local development group, their skills should reflect a professional and consistent background that can be adaptable to the most common development practices used.  Our skills come from adherence to standards, and our standards are designed to be easy to adopt, easy to understand, and inspire and reflect professionalism.  When strictly adhered to, the code becomes easily readable and understandable from within the team, and from outside, should that be necessary.  Code should be optimally written, and able to withstand an audit.

 Challenge

  So far, we have introduced the importance of knowledge and skills.  These two aspects of a developers job provide challenge when utilized with peer reviews as we will strive for perfect adoption, and discuss alternatives and best practices.  Rotating roles within the group for lead designer and scrum master will provide the opportunity to learn new responsibilities.

 Accomplishment

  Accomplishment comes from meeting the challenges that have been set forth.  Working toward certification in both your programming language or technology and Agile will provide recognition from an accredited source, which benefits your employer, the developer, and the team.  Your employer may recognize these certifications which could result in consideration when working towards the next level in a software engineer career.  Salesforce provides 2 levels of certification for developers, and additional certifications for consulting, administration and more.  Additionally, Salesforce offers contests and awards for active participants in the development community.

 Satisfaction

  The proper work environment, which nurtures developers along a recognizable path of education, collaboration and achievement should provide for a sense of satisfaction within your employer and  group.  If for whatever reason this is not the case, the skills and practices learned in the group should be helpful when applied to whatever path chosen.  Although no promises can be made regarding reward, the skills and experience gained should help toward achieving and documenting progress.

© 2014 Dean Abraham