Draft! This page is a draft - a work in progress!

Practical development cycle limits: thought-speed and light-speed Subscribe Pub Share

I've been using many development cycles in the past, from days to hours, to minutes and the best is instant, as in thought-to-outcome. Let me explain.

Here are some examples, to see what I mean:

  • writing pseudocode and then punch it on cards (of course you had to schedule your time to punch and run the program days ahead of time - or so I hear).
  • EE container like Weblogic taking up to 10-12 minute deployment time for code changes. Ugh!

When using punch cards, I hear you could still fail the compiler so it was back to the drawing board... err, typing board!

So, what's in a development cycle, these days?

  1. think
  2. code and compile (i.e. static verification, if not in script-land)
  3. run and see result, refine until correct
  4. unit testing
  5. integration testing
  6. various environments (DEV, QA, UAT)
  7. production, yay

The problem with the second are also many, given the framework you choose to code on. Many frameworks require a lot of fluff be written before you can do like 1+2, between annotations and main() and containers and so on.

The third step is interesting - that's where developers spend a lot of their time, so the entire loop 1-2-3 is the most important: thought-to-result. After that, the rest that's there is just a harness and some polishing and feedback, but 1-2-3 is the productive bit.

{{jsfiddle}}
1+2
{{/jsfiddle}}

Here's a very quick 1-2-3 - speed being instant. Click and edit and change the expression and see the result on the fly. I think by now everyone is getting used to this notion, of the instant "fiddle". Also, if you make a mistake, you'll see it underlined in the editor, while the outline of the result box changes to red.

What's wrong with applying this at an entire "microservice level" ?

Nothing, of course, provided you have some infrastructure in place:

$mock say.hi(name) => (greeting = "Hello, " + name)

$send say.hi (name = "Jane")
$expect (greeting contains "Jane")

Click on "Edit", save and then click on Trace and see the results asap.


Was this useful?    

By: Razie | 2017-11-22 | Tags: post


See more in: Cool Scala Subscribe

Viewed 605 times ( | History | Print ) this page.

You need to log in to post a comment!