#PMP #PPM #project #Agile #cybersecurity #bitcoin #ai #SAFe #zerotrust #virtual #mindmap #remote #COVID19 #scaledagile #creative
  • Welcome
  • Contact
  • Resume
  • Expertise
  • Blog
  • Books / White Papers
  • Software / Service Reviews
  • Mentoring Contact Form
  • This Week in PM
  • PM Video Series
  • Awards/Recognition
  • Templates & Downloads
  • Clients
  • Professional Services
  • Past Survey Results

Key Skills for Agile Developers

6/1/2019

0 Comments

 
As organizations examine the need to stay waterfall or go agile, they can’t help but also examine the current skill set of their developers and really look hard at what costs may be involved to make the jump to agile development. Can the current development staff make that move? What training will be involved? What percentage of the core staff will not be able to make that move or will strongly resist? What will the cost of new hires be? Every CTO and CFO will be asking themselves these or similar questions if their company is seriously considering this type of organizational change.

That said, what are the key skills or characteristics needed for agile developers? What will the CTO or development manager be looking for in existing staff and new staff hires when the change is in progress? In general, the following eleven skills are important ones to consider when staffing or evaluating current staff for a move to an agile development and project culture….
Picture

​Keeping the system in a running state.
Finding errors is actually the developer’s single biggest time waster. When several changes happen and then something goes wrong, it’s hard to determine what changes caused the occurring errors. By making incremental changes to detect errors immediately, this saves a lot of wasted time searching for the causes of errors.

The inherant ability to minimze complexity and rework. This is actually more an attitude than a specific skill set. It provides an alternative to the common extremes of hacking – which can end up causing significant rework – and over-design – causing potentially much more complexity than needed and thus inviting risk and increased costs.

Programming by intention. This old programming technique made popular in eXtreme programming is easy and provides for cohesion, encapsulation and clarity.

Commonality and variability analysis. A straightforward technique to identify the concepts in the problem domain. This provides a model to further the proper use of object-oriented modeling.

Separating use from construction. This process eliminates the situation in which integrating new code into established systems exceeds the cost of writing the code in the first place. It actually forces abstraction and encapsulation on the developer. It provides discipline for hiding the specific implementation being used.

Encapsulating. We are often guilty of making choices that turn out bad and require costly rework or we overbuild resulting in unnecessary complexity. If we encapsulate our code and designs we can more efficiently make changes when we understand what is really needed.

Defining tests up front. The ability and forethought to define tests up front increases understanding and can help prevent many errors that otherwise may find their way into the code.

When and how to use inheritance. Inheritance has a long heritage of improper use. Knowing how and when to use it is a key skill in the agile development world.

Refactoring to the open-closed. Refactoring can mean fixing code. It can also be used to improve designs that were good when they were written but decayed because of new requirements that came up. This technique improves the design of quality code as more knowledge about the system’s needs become available.

Determining needs vs. capabilities in interfaces. Interfaces require a different method of design. Instead of designing from the perspective of what we have, we need to be designing from the perspective of what is needed.

Continuously integrating. Finally, continuous integration is a low cost method of detecting errors quickly. And, it is essential if you’re writing tests up front as described above.

Summary

I’m sure this list could go on and on – this one hits on just eleven key skills. Readers, please feel free to add to the list and discuss what other important considerations there are as an organization considers a move to an agile development model, both from a personnel perspective and from an organizational perspective.​
0 Comments

Your comment will be posted after it is approved.


Leave a Reply.

    Picture
    Picture
    Picture
    Picture

    Author:

    Picture

    Brad Egeland


    Named the "#1 Provider of Project Management Content in the World," Brad Egeland has over 25 years of professional IT experience as a developer, manager, project manager, consultant and author.  He has written more than 8,000 expert online articles, eBooks, white papers and video articles for clients worldwide.  If you want Brad to write for your site, contact him. Want your content on this blog and promoted? Contact him. Looking for advice/menoring? Contact him.

    RSS Feed

    Archives

    May 2022
    April 2022
    March 2022
    February 2022
    January 2022
    December 2021
    November 2021
    October 2021
    September 2021
    August 2021
    July 2021
    June 2021
    May 2021
    April 2021
    March 2021
    February 2021
    January 2021
    December 2020
    November 2020
    October 2020
    September 2020
    August 2020
    July 2020
    June 2020
    May 2020
    April 2020
    March 2020
    February 2020
    January 2020
    December 2019
    November 2019
    October 2019
    September 2019
    August 2019
    July 2019
    June 2019
    May 2019
    April 2019
    March 2019
    February 2019
    January 2019
    December 2018
    November 2018
    October 2018
    September 2018
    August 2018
    July 2018
    June 2018
    May 2018
    April 2018
    March 2018
    February 2018
    January 2018
    December 2017
    November 2017
    October 2017
    September 2017
    August 2017
    July 2017
    June 2017
    May 2017
    April 2017
    March 2017
    February 2017
    January 2017
    December 2016
    November 2016
    October 2016
    September 2016
    August 2016
    July 2016
    June 2016
    May 2016
    April 2016
    March 2016
    February 2016
    January 2016
    December 2015
    November 2015
    October 2015
    September 2015
    August 2015
    July 2015
    June 2015
    May 2015
    April 2015
    March 2015
    February 2015
    January 2015
    December 2014
    November 2014
    October 2014
    September 2014
    August 2014
    July 2014
    June 2014
    May 2014
    April 2014
    March 2014
    February 2014
    January 2014
    December 2013
    November 2013
    October 2013
    September 2013
    August 2013
    July 2013
    June 2013
    May 2013
    April 2013
    March 2013
    February 2013
    January 2013
    December 2012
    November 2012
    October 2012
    September 2012
    August 2012
    July 2012
    June 2012
    May 2012
    April 2012
    March 2012
    February 2012
    January 2012
    December 2011
    November 2011
    October 2011
    September 2011
    August 2011
    July 2011
    June 2011
    May 2011
    March 2011
    January 2011
    December 2010
    November 2010
    October 2010
    September 2010
    August 2010
    June 2010
    May 2010
    April 2010
    March 2010
    November 2009

    RSS Feed

Powered by Create your own unique website with customizable templates.