Measuring Agile readiness throughout the Scrum Delivery Life Cycle

At Agileware Studios we have 3 definitions we use to measure agile readiness and work as it passes through an agile scrum delivery life cycle. This assists in measuring agile readiness and ensuring that the right quality of work is delivered throughout the agile life cycle for delivery.

Ready for development

For requirements to be moved into a sprint for implementation we need to ensure that the requirements apply to a certain standard. Requirements need to be clear enough, contain the right level of details and specify the acceptance criteria for delivering the requirement inline with the described business requirement. The implementation team, be it developers or marketers, have the right to refuse work into the sprint if the work does not comply with the definition of “Ready for development” or “Ready for implementation” (non-IT speak).

Definition of done

For the team to deliver a user story within a sprint we need to define the key aspects that determines that the user story has been delivered according to the initial requirement received by the team. Here we also include certain quality checks to ensure we deliver quality software. 

Shippable

We are now happy to deploy the software into production. This is a final check on quality to ensure that we have done all that we are supposed to do as an agile team and that we have checked all the boxes on clinching a successful deployment.


BY: TANIA VAN WYK DE VRIES, CEO OF INFOWARE STUDIOS


Enhanced by Zemanta
0

Can Agile overcome cultural barriers

In the end we are all different and unique human beings with our own beliefs and cultural backgrounds. So can agile overcome some of these barriers?

Agile in practise

I have had the privilege these past couple of months to experience the difference agile can make in different cultures. In the Indian culture it is custom to have a representative or a spokesperson. It was a challenge to get the whole team to participate in the stand-ups and to show up for all the agile boundary meetings.  However after some training and a few months of getting used to the whole idea the team is now participating in all activities and enjoying it.

I don’t think that the agile values and principles are easy to follow for all cultures and that there will be a lot more challenges in the future. But we are adaptable and we can learn new ways.


BY: A SCRUM MASTER AT INFOWARE STUDIOS


Enhanced by Zemanta
0

Tips for networking effectively

Networking is a vitally important marketing tool for every business, whether big or small. Creating valuable and engaging contacts could be the single most important thing that you do for your business. Most chambers of commerce offer networking events to encourage businesses to get to know one another. In addition, there are many business associations that facilitate networking events with their members such as the BNI network, the Business Women’s Association and many more. So start networking like a pro with the following tips:

Bring business cards

It should go without saying, but you would be surprised how many people attend networking events with no business cards.

Understand that it is not just about swapping business cards

At the end of the day, who you connect and interact with weighs far more than how many people you gave your business card to. It is about creating a genuine connection that will remember you and want to do business with you.

Be friendly and smile

If you approach networking as a way to do business, you are not going to get very far. Be genuinely friendly and interested in those who you meet, and you are much more likely to create a lasting impression with a contact.

Listen

Be as open to others businesses as you want them to be open to yours. Be interested in doing business with others and not just from your side. Listen to what they have to offer and see if it is applicable to you.

Follow up

Follow up within the first few days after the networking function by sending each person you connected with an individual email or phone call to touch base with them. Especially those you really connected with. Offer to go for coffee to hear more about their services or send them a more detailed brochure of yours. Turn the connections you made into long-term contacts and friends.


BY: MISPAH CARELSEN, MARKETER AT WEBWARE STUDIOS


Enhanced by Zemanta
0

Best computer programming language to learn how to code

With today’s rapid pace of technological advances it is becoming more and more important to understand computers beyond typing letters in Word and playing Solitaire instead of working. But where does a complete stranger to programming start?

Introduction

I can only imagine how confusing it must be for a person with no background in computing to figure out how to start programming. The web is scattered with blogs and articles written by software developers for software developers. For a completely new person the terminology is foreign, it must feel like reading hieroglyphics. Terms like Java, JavaScript, C, C++, C#, Ruby, Python, Erlang, Database, Caching, Functional Programming, Object Orientated Paradigm, etc. are used all over the place.

Programming in the Past

When I started to program I visited the library and started in a language called BASIC. I wrote simple programs that took text as input and spitted out more text as output. It was easy to get started and the more I learned the more I could do. I moved on to Pascal (programming language) and then got more serious with C++, Java and eventually started loving Ruby. In between I learnt languages that interest me and every language influences the way I think as a developer and makes it easier to learn another language. 

Programming in the present

10 years ago BASIC was a good place to start to learn how to code but time has moved on and we have a plethora of new exciting languages and tools to teach us how to program. Just take a look at your nearest Google result page (http://lmgtfy.com/?q=learn+to+code). Sites like http://www.codecademy.com, http://Code.org and https:// www.khanacademy.org/ are all big efforts to make learning to code easy.

Today I wouldn’t recommend learning BASIC for a starter language, as it is not as accessible as it used to be and we don’t live in a world of DOS anymore. We live in a world of Windows, Mac and if you’re hardcore enough, Linux. We live in a world where we’re always close to an Internet connection. So what is the best language to learn to code in 2013?

Today’s BASIC is called JavaScript!

Just like BASIC, JavaScript is already on your computer, you can start writing JavaScript code without ever having to install any complicated tools or to learn how to use them. You can start off with a tutorial from the web, a book (I recommend http://shop.oreilly.com/product/9780596517748.do) or one of the online courses and instantly start developing programs. You can start coding right now, in your web browser. They will be simple and might seem stupid but nothing beats the feeling that you are in control of your own computer and if you keep learning more you could push your work to billions of people’s computers, mobile phones, tablets and anything connected to the internet. You can change the world.

Start to code now – learn programming

If you stumbled on this article and want to learn to code go to http://www.codecademy.com and learn JavaScript from their interactive learning course. Once you have learnt JavaScript you can create anything you can imagine, you will by then know enough about programming that you will be able to evaluate other languages and make your own decision on whether you want to learn a new language or take over the world with your first love. You will be a developer and part of being a developer is a never-ending quest for knowledge.

Extra Links

https://www.youtube.com/watch?feature=player_embedded&v=nKIu9yen5nc

http://memeburn.com/2013/05/10-exciting-ways-to-learn-how-to-code-and-why-its-important/


BY: SOFTWARE DEVELOPER AT INFOWARE STUDIOS


Enhanced by Zemanta
0

The roles within agile

One of the biggest challenges in any industry is finding the right people for a particular vacancy. Within agile we have two very important roles that will ensure agile survives at your company.

The Product Owner

The product owner is responsible for a product and thus must know his product thoroughly.  Ideally it should also be someone that will be comfortable in a client facing role.  A common mistake that is made when deciding on a candidate is to turn your senior developers within the teams into product owners.  It may seem to be a good idea at the time as your senior person is the most equipped to be a product owner, but this will mean that your velocity (output) will go down or you will end up with that particular person’s resignation. It must be understood that the product owner role is a big responsibility that involves a lot of work and commitment. That role is ultimately guiding the teams in delivering a shippable product every two/three/four weeks in line with what your clients’ wants and needs are. There is no time to still do development in working hours when you take on this role. So ultimately the company will be losing a senior developer and will have no active product owner role.

The scrum master

The scrum master owns the agile process. It’s the scrum masters duty to hold the team, product owner and company to the right way of doing agile. It’s so easy to fall back to what we are used to so this role keeps us honest to what agile is all about. The scrum master will also facilitate all the needed boundary meetings and will remove all impediments that keep the team from accomplishing their sprint goal. I always think of the scrum master as the oil in a machine that makes everything run smoothly.  It definitely should be a go-getter and a just do it type of person. You only have 2/3/4 weeks for a team to deliver thus impediments need to be moved out of the teams way swiftly.  And this person needs to be able to stand their ground when things get sticky. There will always be one manager that wants to push work in after the sprint has started. In a company agile cannot been done half way or just sort of. This role will be the company’s conscience that will remind everyone that you are either running the agile way or you’re not.


BY: CHANTEL NAUDE, SCRUM MASTER AT INFOWARE STUDIOS


Enhanced by Zemanta
0

Online Agile Project Management Tools

There are a number of online agile applications to assist with the management of agile software development projects. We’ll focus on agile tools that we’ve used on internal and external projects, namely Jira/Greenhopper, Pivotal Tracker and Trello.

Jira with Greenhopper

Greenhopper Agile tool

At Infoware Studios, we use Jira for all our projects. Jira is built around issues, which are captured, prioritised and assigned to team members. It is arguably the most powerful of the three systems. It allows one to customise workflow steps, manage teams and integrate with git, to name but a few features. 

Greenhopper then adds a wide selection of agile project management capabilities to Jira, for example:

[list_icon color=”blue” type=”icon_arrow”]

  • it can be used for scrum or Kanban projects
  • facilitates the building of a backlog by creating user stories
  • stories can be prioritised in the backlog by dragging and dropping, and estimated with ease
  • team members can visually update progress by moving stories
  • visualise processes across multiple Jira projects on a single board

[/list_icon]

Jira does not have any free pricing options, and starts at $50 per month. GreenHopper starts at $10 per month (pricing as at time of writing).

Pivotal Tracker

Pivotal Tracker agile toolPivotal Tracker has similar features to Jira/GreenHopper, the most obvious difference is the presentation of stories. It is a great tool for distributed teams, offering real-time collaboration with one of the best overview or dashboard displays. 

Pivotal tracker is free for public projects, individuals, non-profits and academic institutions. Pricing for teams start at $7/month for 3 collaborators (pricing as at time of writing).

Trello

trello agile tool

trello agile tool1

Trello has a very simple Kanban interface, making it a great tool for smaller projects and teams. 

It has some nice features for teams, such as voting, notifications and real-time collaboration. The default lists (swimlanes) are set up for Kanban, but one can easily add new lists for customized workflows. 

Trello offers a free version as well, and a single Business Class option for $25/month (pricing as at time of writing).

We recommend Jira with GreenHopper, here is an easy to use comparison tool between GreenHopper and some of the other options, such as Pivotal Tracker, Rally and VersionOne:

http://www.atlassian.com/software/greenhopper/agile-comparison

 Additional Resources:

[list_icon color=”blue” type=”icon_arrow”]

[/list_icon]

What others are saying: 

[list_icon color=”blue” type=”icon_arrow”]

[/list_icon]


BY: SOFTWARE DEVELOPER AT INFOWARE STUDIOS


Enhanced by Zemanta
0

Agile Marketing – JIRA project management tool

The agile way

At Infoware Studios, everything we do is managed by using an agile approach, including our marketing department. Not only are we fiercely passionate about agile, but we practise what we preach as well and follow agile principles in all our projects.

As someone who is new to agile, software development and the like, I speak from a non-technical perspective. As the marketer for Infoware Studios, I found that agile was a really productive way of managing and executing tasks and that it could apply to any field or industry, not just software development.

Using JIRA

So we implemented an agile approach in our marketing activities primarily using JIRA, the project and issue tracking software by Atlassian. JIRA is an excellent project management tool that allows you to create high level topics (called Epics), and then create tasks to be actioned under those topics (called Issues). Tasks can be assigned to people in your team. You can then create a weekly (or bi-weekly if you want) to-do list known as a Sprint, where you add all the tasks that need to be actioned in this time frame.  You then move the tasks, based on your activity, through the To-Do, In Progress and Done columns. Columns can be added, removed and renamed, so they don’t need to necessarily be the same as those mentioned. JIRA also allows you to draw reports and include more than one project on your overall view.

JIRA has much more functionality than the above basics and is often used in software development. However, for someone in a non-IT related field, it works perfectly for project management and can help you increase your productivity and manage your time, as well as creating visibility on the work that you do.

Find out more

Infoware Studios offers JIRA training for those who are interested in utilising this agile tool within your own businesses. Feel free to contact us if you are keen.


BY: MISPAH CARELSEN, MARKETER AT INFOWARE STUDIOS


Enhanced by Zemanta
0

Increasing JIRA memory

(Seeing OutOfMemoryErrors in the logs or Jira slows down is symptomatic of this.)

Java applications like JIRA and Confluence run in a “Java virtual machine” (JVM), instead of directly within an operating system. When started, the Java virtual machine is allocated a certain amount of memory, which it makes available to applications like JIRA. By default, Java virtual machines are allocated 64 MB of memory, no matter how many gigabytes of memory your server may actually have available. 64 MB is inadequate for medium to large JIRA installations, and so therefore JIRA memory needs to be increased.

Step 1: Diagnosis

 

Determine JIRA usage patterns

To determine the JIRA usage patterns:
Choose the cog icon at top right of the screen, then choose JIRA Admin. Then choose System > Troubleshooting and Support > System Info (tab) to open the ‘System Info’ page. Then scroll down the page to view the Java VM Memory Statistics section and look at the memory graph during times of peak usage:

Increasing JIRA Memory1

This server has been allocated a maximum of 768 MB and a minimum of 256 MB (typically defined in the setenv script which is executed by running the start-jira script). If you are trying to see whether your settings are being picked up by JIRA, this is where to look. Here, you can see that JIRA has reserved 742 MB, or which 190 MB is actually in use. If this JIRA instance were running out of memory, it would have reserved the maximum available (768 MB), and would be using an amount close to this.

Determine available system memory on Windows

From the Close Programs Dialogue (Press ctrl-alt-delete), select the Performance tab:

Increasing JIRA memory Performance tab

The amount marked Available is the amount in kilobytes you have free to allocate to JIRA. On this server we should allocate at most 214 MB.

Guidance

As a rule of thumb, if you have fewer than 5000 issues, JIRA should run well with the default 768 MB. Granting JIRA too much memory can impact performance negatively, so it is best to start with 768 MB and make modest increases as necessary. As another data point, 40,000 works well with 768 MB to 1 GB.

Step 2: Increasing available JIRA memory

 

Windows Service

There are two ways to configure system properties when starting Running JIRA as a Service, either via command line or in the Windows Registry.

Setting Properties for Windows Services via Command Line as an administrator

Identify the name of the service that JIRA is installed as in Windows (Control Panel > Administrative Tools > Services):

Increasing JIRA memory - control panel

In the above example, the SERVICENAME is: JIRA120312230938

[list_icon color=”blue” type=”icon_arrow”]

  • Open the command window from Start > Run > type in ‘cmd’ > press ‘Enter’
  • cd to the bin subdirectory of your JIRA Installation Directory (or the bin subdirectory of your Tomcat installation directory if your are running the JIRA WAR distribution). For Example:
    cd C:\Program Files\Atlassian\JIRA\bin
  • For JIRA 5.1 or below:
    tomcat6w //ES//%SERVICENAME%
  • For JIRA 5.2 or above:
    tomcat7w //ES//%SERVICENAME%

[/list_icon]

In the above example, it would be tomcat6w //ES//JIRA120312230938

Increasing JIRA memory - command prompt

[list_icon color=”blue” type=”icon_arrow”]

  • Click on the Java tab to see the list of current start-up options:

Increasing JIRA memory - Java tab

  • Set the maximum memory allocation here.

[/list_icon]


BY: IT SERVICE DESK AT INFOWARE STUDIOS


Enhanced by Zemanta
0

Learning through making mistakes

Since early childhood we all are taught not to make mistakes. We are constantly reminded to be perfect.

Even in adulthood we are scared of making mistakes and usually in the corporate world we get punished for making mistakes.  When agile was found there became an awareness of the benefit to learn through making mistakes.  Through making mistakes we can as a team assess our mistakes and work towards finding a solution. But this doesn’t mean that agile should then become a shield or excuse to hide behind when making the same mistakes over and over.  The key word is to learn out of your mistakes.  Take note of them and put steps in place to not make the same mistakes twice.


BY: CHANTEL NAUDE, SCRUM MASTER AT INFOWARE STUDIOS


Enhanced by Zemanta
0

How to install nginx as a service on Windows Server 2012

Install nginx

Download the latest stable version from http://nginx.org/en/download.html

Extract the zip file to c:\nginx (or your preferred installation path)

Check nginx installation

Command: C:\nginx\nginx.exe

Go to http://localhost, you should see a welcome to nginx page.

Stop nginx

C:\nginx\nginx.exe –s stop

Install .net 3.5

Follow the instructions at http://www.danielclasson.com/install-net-framework-35-server-2012/

Install winsw

[list_icon color=”blue” type=”icon_arrow”]

[/list_icon]

Create a XML file mynginx.xml

<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>c:\nginx\nginx.exe</executable>
<logpath>c:\nginx\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p c:\nginx</startargument>
<stopargument>-p c:\nginx -s stop</stopargument>
</service>

Install nginx service

C:\nginx.exe\mynginx.exe install

Manage service

Open PowerShell and type in service.msc

You should see the nginx service in the list, now you can manage nginx like any other windows service. Your install nginx is complete.

install nginx


BY: SOFTWARE DEVELOPER AT INFOWARE STUDIOS


Enhanced by Zemanta
0
Page 3 of 6 12345...»