Posts

, , ,

Building A Walking Skeleton

This article talks about building a walking skeleton which is widely adopted by the Agile software development community.

Capri recently got involved with a greenhouse project to deliver a digital licensing system for Scottish Environment Protection Agency. There were few challenges such as team members were new to the agile way of working, new technology, new to cloud computing and tight timeline. Habitually team started analysing data model of CRM and building custom entity for storing data etc…….

The problem we have with traditional software development

  • Interfaces with various other systems (including legacy).
  • Teams not delivering working software
  • High risk due to dependencies
  • No early visibility of working software
  • Too many technical stories
  • No business value delivery in early sprints

These results in sprint failure and 

  • Frustration builds up
  • Velocity goes down
  • Project gets delayed
  • Project cost goes up

The simple solution to these problems is to start with building a walking skeleton

As per Alistair Cockburn a “Walking Skeleton” is a tiny implementation of the system that performs a small end-to-end function. It need not use the final architecture, but it should link together the main architectural components. The architecture and the functionality can then evolve in parallel.

walking skeleton

Building-Walking-Skeleton

  • Mini implementation of the system that performs a small end-to-end function.
  • The walking skeleton is missing the flesh of the application functionality, incrementally, over time the full functionality will be added.
  • Its like building chassis with wheels and a motor which moves and adding body later on.

Not to be confused with Spike or prototype which gets thrown away

There are many advantages of building a walking skeleton first

  • —Upfront design/framework
  • —Quicker feedback
  • —Validate assumptions
  • —Proves architecture
  • —Quicker delivery
  • —Reality check
  • Reduces risk
  • —Manages dependencies

Get in touch with us if you need any help or download our slides by clicking the following link.

building walking skeleton

Happy Coding!

The new courses…

FDP-ComputerTraining

 

Our next courses have just been announced, and are set to sell quickly:

23/05/2015 – Agile Master Class

30/05/2015 – User Story Writing 

Book either of these course now and receive a 10% discount using the code CAPTWT10. A further 10% of all booking fees will be donated to the Nepal Earthquake Appeal. Book here.

 

Capri’s Agile Masterclass is specifically designed to accelerate experienced Agile practitioners to a new level, led by Agile guru Krishna Thakur.
Using a mixture of discussion, instruction and exploration you will learn new techniques for development and testing, operations, automation and team dynamics, as well as working with legacy systems and integrating with third parties. Using these techniques you and your teams will deliver business solutions faster than they thought possible.

In a business, it is very important that the work being produced is well organised and priortised efficiently in order for it to be delivered at a high standard. Capri Consulting offers a specialist course in writing User Stories that can help you manage your work into smaller chunks to create tangible value.
User Stories helps us manage requirements. Their primary job is to define the value a user gains from the system. Since User Stories focus on the underlying Agile values of collaboration and Just-In-Time definition, it makes them a good Agile tool. User Stories are small narrative texts (2-3 sentences) in everyday/business language of the end user of a system. These capture what the user does, or needs to do as a part of his/her job function.

 

Follow us on twitter @CapriConsulting

, ,

Our introduction to Agile course

 

Agile

We’re currently offering an industry leading Agile course…

  •   Don’t miss out on taking part in the UK’s most exciting and pertinent Agile IT course, provided by one of Europe’s leading Agile coaches.

Our next course is…

Introduction To Agile on 6th June’15

In this course, we focus on introducing you to the pragmatic world of Agile development, giving you the basic skills you need as a team member or even project manager of an Agile software development project. This course is suitable for individuals as well as small to large groups, and we can also offer private sessions at a time, date and location of your choosing.

More and more companies are adopting Agile methodology
Don’t get left behind!
Avail 15% early bird discount to all bookings before 16 May’15

Click here to book


AgileManc_FullLogo_Colour_RGB_2015

 

 

Capri Consulting are proud to announce their sponsorship of the Agile Manchester 2015 taking place in Manchester on 7 and 8 May 2015.  Whether you are new to Agile  or have more experience there is lots of interesting content for you with great speakers like Liz Keogh and Jurgen Appelo and 25 sessions, it’s going to be a productive 2 days!

We are very excited for the event to take place, as it is set to be a corner stone of the Agile industry for 2015. It is particularly exciting as Agile has been becoming more and more popular in recent years, with more and more companies adopting the Agile Methodology, of which we are advocates. Book your place now, as tickets are selling fast

http://agilemanchester.net/2015/tickets/

Make sure you come and check out the Capri Consulting stand and collect freebies! See you in Manchester!!

, , , ,

Agile Tasking

Customer: I want to build a home. Could you give me an estimate?

Builder: No I cannot! You need to give me more information like how many rooms, plot size, how many floors etc.

Customer: I need you to build me a four bedrooms, two and one-half baths, a gourmet kitchen, walkout basement with media room and three-car garage in Pennsylvania.

Builder: Now you are talking! Do you insist on top-of-the-line cabinets and appliances for your gourmet kitchen, or will mid-range ones do? Are you planning to side the house with cheap vinyl or expensive stone brick? Is the house going to be one story, or two?  Will you have simple, rectangular rooms that minimize the materials and the labor required for framing, or unusual shapes like octagons with vaulted ceilings? What sort of flooring, bathroom fixtures and heating and cooling system will you have? Is the lot easy to access, relatively flat and easy to dig, or is it rocky, heavily wooded and uneven?

Similar to above story , its very difficult to provide an estimate when your customer asks the scrum team how long will it take deliver this feature or functionality. Breaking down the user story into tasks will help team to estimate their work accurately and track sprint progress.

What?

Tasking is the process that the developers undertake to understand, design, and properly prepare to write code for a user story.

Why?

The challenging decisions are made during tasking.  If tasking is done properly then the actual coding is a much simpler task.  I believe that this is the most important thing any scrum team does.

Who?

It’s important that all developers and testers attend.  This serves multiple purposes.

  1. every developer on the team begins to become comfortable with the code base for all of their applications
  2. every developer has the ability to include their input on the design and solution
  3. any developer on the team should be able to pick up any story at any point to complete the tasks because they were there and the expectation should be such.
  4. every tester in the team can ensure they’re aware of the solution and that it meets all of their criteria.

It’s also good to have the BA there to review the story with the team and answer any questions.  Once the story is reviewed it usually makes sense for the BA to go about their day and to let the developers get into the technical details.

When?

Second half of the sprint planning session or right before the work is to be done (if  other stories being implemented that may change the approach and invalidate the tasking that was completed).

How?

Step 1: Review Current Code

The developers will review the current code that relates to the user story.  They will walk through the code to ensure that everyone is on the same page with what the code currently looks like.

Step 2: Decide on Changes to Code

The developers will discuss how to modify the existing code to make the addition of the new functionality simple.  It’s common for developers to perpetuate the logic found in the current code (good or bad), so always considering ways to change the code is a key to having well written code.

Step 3: Draw a Sequence Diagram

The sequence diagram is a visual representation of the classes that call each other to accomplish some discussed part of the code.  If this diagram is complicated, then it’s a great indication that the code should be modified so that the diagram is less complicated.

Step 4: Task Out New Work

Once everything is decided, the actual coding tasks should be created and ordered.  Each task should take under an hour to complete.  The developers can then grab these tasks and complete the story in small chucks in separate streams ( if needed).

Why Tasking Doesn’t Happen?

For all of the reasons stated above, it’s important that the teams task stories.  It’s easy for developers to take shortcuts and skip tasking.  One of the main reasons is a lack of collaborative areas.

Tasking can take developers 4+ hours, and they need a whiteboard, projector and computer to properly task.  Finding a room like that for 4+ hours is challenging at times.