Engage

Posted in:

I am a full-time consultant who is available to engage with clients remotely or onsite anywhere in the world (I currently hold dual-citizenship between Australia and the United States).

To discuss your specific needs, please call me on +1.650.336.5877, or me at craig@craigsdickson.com, or use this Contact form, or download a copy of my resume from this page.

The following is an overview of the services I provide to clients:

Software Development Process Improvement

  • Coaching for Agile process evaluation, adoption or improvement, including Scrum, Lean, Kanban and Extreme (XP)
  • Definition, refinement and documentation of team processes and practices
  • Definition of Quality Assurance and Quality Control standards
  • Integration of defect tracking systems with other tools and processes
  • Engagement with customers and requirements elicitation

Software Development Team Management

  • Job Description authoring
  • Salary range and benefits package definition
  • New candidate acquisition and screening
  • Team workspace design and office space evaluation
  • Skills assessment of existing resources
  • Collaboration strategies for teams

Vendor Management

  • New vendor discovery and screening
  • Vendor proposal reviews
  • Offshore vendor management, including onsite visits and reviews
  • One throat to choke multiple vendor management

Software Configuration Management (SCM)

  • Introduction of an SCM system to teams not already using one (, Git, CVS etc)
  • Subversion and CVS
  • Subversion and CVS server and configuration
  • SCM process definition and documentation, including branching and merging processes
  • SCM system migration, particularly CVS to Subversion

Build Management

  • Implementation of Apache and Apache Ant based build systems
  • Automation of builds, particularly in relation to a Continuous Integration system like CruiseControl or
  • Management and versioning of produced code artifacts, particularly in relation to an Artifact Repository like Nexus or Artifactory
  • Release numbering strategies and Alpha and Beta customer release programs

Software Architecture & Design

  • Enterprise-level system architecture definition, existing architecture reviews
  • New database design and existing database design review
  • Formal UML based architecture definition

Enterprise Java Development

  • Specialist in full-stack development
  • Public API design and documentation for ISVs
  • Web service development and integration
  • Code reviews and performance tuning
  • Service Oriented Architecture (SOA) design and implementation

Web Development

  • HTML, JavaScript and CSS development
  • Integration of AJAX style JavaScript libraries including GWT, JQuery and ExtJS
  • Integration of Flash and Flex components

Strategies

  • Introduction of tools like JUnit and Sellenium to teams that currently do not do any automated testing
  • Integration of tests into automated build scripts and generation of metrics
  • Static analysis of codebase quality

Mobile Development

  • application design and development, specializing in integration to JavaEE based back ends
  • Web based mobile development

Social Media Strategy

  • Specializing in small to medium business that do not have dedicated in house Social Media resources
  • Evaluation of current Social Media presence
  • Recommendations for Social Media platforms based on particular business needs and goals
  • Evaluation of Location based services in relation to business needs and goals

Once again, to discuss your needs and to find out how I can help you, please contact me by phone on +1.650.336.5877, by email at craig@craigsdickson.com, or simply use this Contact form. If you would like more detailed information regarding my experience and qualifications, you can download a current copy of my professional resume from this page.

Why Automated Testing is Important – Part 2

Posted in: Software Development Best Practices

In Part 1 of this series I described the characteristics that make up a good Automated Test. Here in Part 2 of this series I will explore all of the benefits you will enjoy by creating those good tests and why the time spent on making good tests is a no-brainer investment.
Continue reading »

Why Automated Testing is Important – Part 1

Posted in: Software Development Best Practices

The of Automated strategies and tools, both in and traditional , has been patchy – some and communities have embraced it, but many organizations still perceive it as a burden that just slows down development. Those that see the writing and execution of tests as an additional, costly and separate task from development have missed seeing some of the main benefits of an expertly manicured .
Continue reading »

Ward Cunningham on Technical Debt

Posted in: Software Development Best Practices

In this video Ward reflects on the origins of the term Technical Debt and how it has been misused and misunderstood over the years.

Scrum Anti-pattern: Outlier Pigs

Posted in: Software Development Team Leadership

In the Pig and Chicken analogy for participants (Jeff Sutherland explains Pigs & Chickens), the Pig is the one who is required to make the biggest commitment and put his proverbial skin in the game. For the Pig, it is an all or nothing proposition. They either meet their commitment or they do not, there is no gray area. However, many fail to get this level of commitment from their Pigs, or don’t even ask for it in the first place. This is the genesis of the Outlier Pig.
Continue reading »

Scrum Anti-pattern : Prioritizing Stories Within Sprints

Posted in: Software Development Team Leadership

The prioritization of Stories is a core practice in the development . In fact it is probably the single most important responsibility of the Product Owner – making sure the Product Backlog is prioritized properly to maximize value (a.k.a ROI). However, there is a common anti-pattern that I see regularly in which the Product Owner and the act complicitly to establish a priority order for Stories that are being committed too within a single . The need to do this comes from a negative place and it has dramatic consequences for the Delivery Team.
Continue reading »

Microsoft Hates Testing … Um, No Surprise There

Posted in: Software Development Best Practices

A colleague of mine forwarded an article to me during this last week, which he prefaced with the following statement …

guys, I’ll write it in all caps and bold:

I AM NOT PROMOTING OR IN AGREEMENT OF ANY OF THE POINTS THE ARTICLE MAKES.

… which begs the question, why did he send it not only to me, but an entire team of people? I choose to believe it was because he is an enlightened soul that understands that the best way to reinforce your own beliefs is to read more of the opposing point of view, not more of the view you already have. I am lucky to have a few of these souls working for me right now.
Continue reading »

SoCal Code Camp Los Angeles II

Posted in: Software Development Best Practices

SoCal Code Camp is back, November 21st & 22nd

Camp is a place for developers to come and learn from their peers. This driven event has become an international trend where peer groups of all platforms, languages and disciplines band together to bring content to the .

Who is speaking at Code Camp? YOU are, YOUR PEERS are, and YOUR LOCAL EXPERTS are…all are welcome! This is a community event and one of the main purposes of the event is to have local community members step up and offer some cool presentations!

Quote of the Week

Posted in: Quotable Quotes

Development isn’t about doing things faster, it’s about doing the right things sooner, which coincidentally makes you appear faster.

- Anonymous

Is LinkedIn ready to recognize O.C.?

Posted in: Quotable Quotes

Bill Crane, the vice president of engineering at , says local members of the social networking site may haveorange-prize as a geographic designation for members’ profiles within two weeks.

http://jan.freedomblogging.com/2009/09/16/linkedin-working-on-oc-geographic-designation/22015/