Agile Done Right

with JavaScript and Node

DOGUHAN ULUCA

 

Technologist

Senior Consultant at Excella

Contributing Author for DevPro 

 

Follow: @duluca

Read: www.techtalkdc.com

    Thank Our Sponsors without whom Today is not Possible

Platinum

Host

Bronze

Housekeeping

  • Respect your speakers and fellow attendees:
    • Set mobile devices to vibrate or silent
  • Fill out session evaluations
  • You must be present to win at the wrap-up

Exceptional Solutions. Exceptional Careers.

Excella is a leading IT consulting firm serving commercial, federal and non-profit clients in Washington, DC.  We specialize in software development, business intelligence, program management and training. 

Our Community

Excella founded or leads local IT organizations and Meetups. Join us for an event!

Need space for your event?

Contact Us: info@excella.com

Join Our Team

Excella is looking for talented developers to join our team. Join us to begin your exceptional career!

We are currently looking for:

  • Mid and Senior Level developers
  • C#
  • Java
  • JavaScript
  • Ruby
  • Python 

Realities and Challenges of Agile Development

Why be Agile?

How's your team doing?

Survival
Learning
Self-reliant

Smells

Late
Heroics
Debt

Complexity

Survival Addiction

Pick Two

Features

Time

Quality

Roy Osherove

Best Practices Required

Achieve

Consistent forward flow of features

Not trivial

Focus is key

<HTML NG-APP>
    <UL> 
        <LI NG-REPEAT="QUESTION IN QUESTIONS"> 
            <SPAN>{{QUESTION}}</SPAN>       
        </LI> 
    </UL>
</HTML>

Questions?

Insanely Simple Organization

When you first start off trying to solve a problem, the first solutions you come up with are very complex, and most people stop there. But if you keep going, and live with the problem and peel more layers of the onion off, you can often times arrive at some very elegant and simple solutions.

Steve Jobs, Newsweek, 2006

Enterprise Architecture

Can get needlessly complicated

Separate Concerns

  • Client vs API

  • Controller vs View

  • MVVM vs MVC

*Orange represents business logic

Legacy vs New

*Orange represents business logic

Standardize on REST

*Orange represents business logic

<HTML NG-APP>
    <UL> 
        <LI NG-REPEAT="QUESTION IN QUESTIONS"> 
            <SPAN>{{QUESTION}}</SPAN>       
        </LI> 
    </UL>
</HTML>

Questions?

Human JavaScript

Do you use JavaScript?

aka EcmaScript 5

Lots of people do

Benefits

  • The language of the web
  • Easy to learn
  • Can go full stack
  • Dynamic typing makes TDD easier
  • Community driven

'use strict';

Apply Best Practices

rinse & repeat

Create real-time applications

<HTML NG-APP>
    <UL> 
        <LI NG-REPEAT="QUESTION IN QUESTIONS"> 
            <SPAN>{{QUESTION}}</SPAN>       
        </LI> 
    </UL>
</HTML>

Questions?

Why Node?

Do you Node?

Performance

  • Listens directly to OS connection events

  • No web server needed

  • Lightweight

  • "Single threaded"

  • Non-blocking, event-driven I/O

  • Great wrapper around C++ threads

Best Use Cases

  • High scalability

  • High concurrency

  • Real-time applications

V8

Runs on the same engine as Google Chrome

Who's Using It?

  • Groupon
  • CapitalOne
  • Federal Government
  • SAP
  • LinkedIn
  • Microsoft
  • Yahoo
  • Walmart
  • Paypal
  • Uber
  • Ebay
  • And more.
<HTML NG-APP>
    <UL> 
        <LI NG-REPEAT="QUESTION IN QUESTIONS"> 
            <SPAN>{{QUESTION}}</SPAN>       
        </LI> 
    </UL>
</HTML>

Questions?

Going Full Stack

Skill share
Code share
Same tools

No context switching

A Hapi LEBRON

  • Angular
  • Node.JS
  • Hapi.JS
  • LevelDB
  • Browserify
  • npm

Angular

  • Directives
  • Configuration - Convention Balance

Level DB

  • Fast Key-Value Store
  • Persistence by default
  • No setup

Browserify

  • Node style require() in browser
  • Code share
  • Keep same file structure

npm

  • Dependency management
  • Test script
  • Start script
  • Bower for UI dependencies

Gulp

  • Combine
  • Minify
  • WebStorm 9 will support it

Unit Testing

  • Jasmine
  • Mocha
  • QUnit

Can't decide?

AAT

IDE

  • Visual Studio 2013+ with Web Essentials
  • WebStorm (Supports OS X as well)

Repository

  • GitHub

CI & CD

  • Codeship.io
  • Azure
  • TeamCity

Static Code Analysis

  • JSLint
  • JSHint

Hosting

  • Modulus.io
  • Azure
  • Heroku

Useful Tools

  • Trello
  • Waffle.io
  • Zapier.com
<HTML NG-APP>
    <UL> 
        <LI NG-REPEAT="QUESTION IN QUESTIONS"> 
            <SPAN>{{QUESTION}}</SPAN>       
        </LI> 
    </UL>
</HTML>

Questions?

DEMO

 

retro.mod.bz

Thank You!

More Node?

Slides are available on

TechTalkDC.com/Tech-Talks

 

Check out

Nodeschool.io

 

Come to

NodeDC

Articles & Books

Modernize Your .NET Software Development Environment: http://devproconnections.com/net-framework/modernize-net-software-development-environment

MVVM and .NET: A Great Combo for Web Application Development: http://devproconnections.com/net-framework/mvvm-dot-net-web-application-development

Node.JS Tools For Visual Studio and Azure Integration:
http://www.techtalkdc.com/node-js-tools-for-visual-studio-and-azure-integration/

Insanely Simple (by Ken Segall): http://kensegall.com/insanely-simple-book/
Human JavaScript (by Henrik Joreteg): http://humanjavascript.com

Slides

Node.JS Tools For Visual Studio and Azure Integration Talk: http://www.slideshare.net/excellaco/node-tools-for-visual-studio-and-azure

MVVM for the Web Talk: http://www.slideshare.net/excellaco/mvvm-for-the-web

Videos

The Team Leader Manifesto (by Roy Osherove)

https://www.youtube.com/watch?v=LVLdqH6dNUQ

The Lebron Stack (by Max Ogden): https://webrebels.23video.com/the-lebron-stack-its-a-slam-dunk-by-max

 

Follow: @duluca

Fill out session evaluation

Pick up my business card

Agile Done Right: Using JavaScript and Node

By Doguhan Uluca

Agile Done Right: Using JavaScript and Node

Agile development is difficult. Teams can often miss their delivery goals, unsustainable pace can result in developer fatigue and technological bottlenecks can make it impossible to deliver a sane and high quality end product. When done right Agile can enable your team to deliver consistent forward flow of features in a sustainable manner. To achieve this goal you must use technologies that discourages skill silos, are easy to work with and allow for straightforward application of Agile Engineering Best Practices. JavaScript and Node.JS are the perfect set of technologies that can organically grow within your organization and existing code base utilizing a RESTful architecture. With JavaScript being the language of the web and the web, the OS of this decade, it is essential to effectively utilize these technologies to unlock the full potential of your team, allow for greater flexibility and reduce risk.

  • 5,019