Juho Manninen has 12 years of experience of building working software in various different roles ranging from requirements analysis to technical design, development and testing.
I'm passionate about working software, digging into data for insights and communicating with people. Past 6 years I've been working at financial institutions, getting involved with a variety of topics such as:
- Economics, Finance
- Stock Exchange, Derivatives Market
- Trading, Clearing, Risk
- Reference Data, Master Data
On Working Software
All about value adding software
It's not just about implementing a large set of functionality or about software being bug-free. Neither will I stick to agile concept of "working software over comprehensive documentation" nor Apple's "it just works" — I take a wider view on working software: value adding software is working software. Adding value on the field of software development means building solutions that the customer needs. It generates returns, is functional, reliable (all about quality), usable and has a design that evokes emotions. That's software that works.
Working software is software delivered on time, on budget and on scope. That's traditional project management, and that's how most of the customers ascertain that they receive working software. Meanwhile within software development industry many teams have moved to agile methods, emphasizing continuous communication with client and fast release cycles. The differences between customers expectations and working methods of the software developers have quite a gap in between.
The role of a business analyst is to bridge that gap between the expectations and needs of the both business and IT. In the following chapters first I take a quick look at the what goes into building software, and then a closer look lessons learned on the business analyst role.
Building Working Software
Software Development Life Cycle
In the broad sense software development life cycle encompasses everything from the initial business concept to release and maintenance of the software. This typically covers:
- Design: requirements, planning, specifications, documentation
- Development: database, interface, GUI design
- Testing: integration, functional and acceptance testing
- Deployment: release, installation, production support and maintenance
These days everyone's obsessing with constant innovation that results in continuous changes implemented at rapid speed. That's quite a challenge for IT providers who traditionally preferred to focus on long term product planning and comprehensive testing cycles to guarantee a successful release. No wonder that agile practices have gotten such traction to address these requirements.
Enabling Working Software
Business Analysis Tools and Techniques
In the software development life cycle business analysts typically step into the picture at the very beginning, prepare requirements and support the life cycle till the very end. What form the requirements will take depends on the development methodology. In the world of waterfall this can be thousands of pages of specification prepared before starting development. Agile methods on the other hand focus on lighter specification, normally implemented in the form of user stories that define a small piece of functionality and the way it adds value.
Typically the business analysis work involves following tasks:
- Planning: UML, Data Analysis (SQL), Data Modeling, Prototyping
- Elicitation: Facilitation, Negotiation
- Documentation: Requirements, Specification, User Stories, Value Proposition
- Management: Requirements, Change and Issue Management
Passionate about Working Software
Working software — software that matches the customer's needs — is something very difficult to achieve. This is something we can all witness in our everyday interaction with various systems. However, I've identified a set of tools and techniques I can efficiently use to address this problem. I believe that with the proper use of these tools and techniques we're defining and building working software, and consequently a step ahead of competition.
I'm always eager to hear how software development is working for you. If you'd like to share your comments, or have any questions, drop me an email.