Abolishing Sprint Zero: Leveraging Software Seeds and Generators to JumpStart your Project

Software development is hard.  For all our talk about “sprints,” anyone who has been involved in a major software development effort will agree it is more of a marathon.  Well, if we have to run a marathon, wouldn’t it be nice to start on mile marker 2?  Some inline skates would be nice, as well! 

In this talk we will describe a new technique for jump-starting application development, with software seeds and generators.  

 

A seed project pre-integrates a set of technologies, with a minimal working set of services and screens, a set of example automated tests and a fully tricked-out DevOps pipeline.    Like an erector set (or a Raspberry Pi Maker Kit—to use a more up-to-date analogy), a seed is designed to be used for building larger projects.

 

A generator can be used to generate a new project (by customizing seed templates, for example), and, later on, to generate new software components from blueprints as they are needed.  Like a casting mold for molten metal, a generator helps ensure new components follow naming, testing, and design conventions.

 

A properly configured set of seed and generator projects can provide a number of important benefits:

  • new project team members can explore and learn using a project small-enough to get their arms around.
  • New insights, components, and design patterns can be quickly promulgated and shared within and across organizations

 

Of course, all this does not come for free.  Seeds and generators must be regularly maintained, and they require senior expertise to build and maintain them.  However, even a junior team can derive benefit from downloading a pre-existing example from one of the many online sources such as yeoman.io. 

 

In this talk we will explore the process for building and maintaining seeds and generators using a case study of three seed projects developed for a NYC municipal agency using Ruby on Rails, Microsoft C# .NET Core, and AngularJS 4, technologies.  We will talk about the lessons learned, commonalities and differences between technology stacks and what it takes to maintain the seeds and generators long-term.   We will also talk about our experiences using the seeds and generators to build production applications and helping other groups to do the same.  We will discuss the issue of achieving buy-in, even from development groups that did not participate in the initial seed development.    Finally, we will explore next steps and speculate on where the next major leaps in software development productivity may come from.

NOTE: This talk can be delivered at the intermediate or advanced level, depending on the audience

 
1 favorite thumb_down thumb_up 0 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

  1. Problem statement
  2. What is a Seed
  3. What is a Generator
  4. Examples
    1. Angular4/Ruby on Rails
    2. Angular4/.NET Core
    3. How-To Documentation
    4. Automated Tests
    5. DevOps and CI/CD
  5. Maintenance Requirements
  6. Spearheading Enterprise Adoption
  7. Risks & Mitigations
  8. Next Steps
  9. Q&A

Learning Outcome

  • Understand what a seed project is, what a generator is, and how they can help improve the productivity of a software development team
  • Understand how to get started with seeds and generators, and what may be required in order to customize them for your organization
  • Understand the risks and benefits of enterprise adoption

Target Audience

software practitioners, managers, and other technical stakeholders

Prerequisite

some software development background is helpful, but not required

schedule Submitted 6 months ago

Comments Subscribe to Comments

comment Comment on this Proposal

  • Liked Joey Spooner
    keyboard_arrow_down

    Joey Spooner - Making the Change: Going Agile at the Department of Labor

    Joey Spooner
    Joey Spooner
    Team Lead
    TriTech Enterprise Systems
    schedule 4 months ago
    Sold Out!
    45 Mins
    Experience Report
    Intermediate

    Going agile in the government is easy to say and hard to do. Teams and individuals prefer to stay apart and work on their own for weeks or months at a time. Documentation can quickly become more important than working software. Addressing the demands brought on by a change in administration, policy, or executive direction requires teams and individuals to start working together in order to succeed in their overall mission.

    This experience report will discuss the benefits, challenges, and outcomes when implementing Kanban in a traditional waterfall and silo working environment. Techniques for creating a continuous change towards an agile way of working will be shared. Performance data from a two year Kanban initiative at the Department of Labor will be reviewed and discussed. Participants will walk away with a clear understanding of how Kanban can break down silos, improve the agility of a traditional waterfall and silo focused organization, and noticeably improve performance.