Services I offer

Software Engineering Consulting and Training

Software organizations seek competitive advantage as a way to survive to competition and stay in business. The constant evolution in the software sector carried on by the creation of new technologies and demands impose to these organizations the need to improve the software development process in order to achieve it's strategic objectives like producing better software, reduce the time-to-market, cut costs, improve customers' satisfaction by meeting their needs and expectations, increase success rate etc.1

This can be achieved by adopting best practices to improve the software development process and giving the employees the support needed to carry on in their day-by-day tasks.2

“One who develops software better, cheaper, and faster will become the leader with enormous economic advantage. The key to success in software development will depend upon the software process used to build them.”3

This can be achieved by following guides to improve the software process in a sustainable way such as CMMI4 or it's equivalent MPS.BR5, both based on ISO standards on software engineering6 and supporting development teams in it's activities.

As a Certified ScrumMaster, Accredited MPS.BR practitioner and appraiser and Java Certified Associate, I'm able to provide this support to organizations in need to improve their results by either mentoring, consulting or training in topics as:

  • software process improvement, agile methodologies such as Scrum and XP and capability and maturity models such as CMMI or MPS.BR;
  • requirements engineering;
  • project management and quantitative project management;
  • configuration management;
  • verification, validation and testing;
  • other topics on demand.

Java technologies/frameworks consulting and training

It is usually hard to find trainings specifically tailored for the project needs or aligned to the organization's operational objectives. Some organizations opt for courses with sets of subjects that merely overlap with it's needs, most of the times leaving gaps.

This usually leads to high costs of training. One alternative to that is hire a seasoned instructor which will elicitate the knowledge needs, identify gaps and elaborate a tailored training to meet the organizational objectives.

This approach at the same time reduces the time needed for training and also the time spent by the employees under training, reducing the overall organizational cost.

Some of the topics I have already lectured includes:

  • Object-oriented programming
  • Design Patterns
  • UML
  • Java Standard Edition (1.4, 5.0 and 6.0)
  • Java Enterprise Edition (5.0 and 6.0)
  • Frameworks, servers and popular tools such as:
    • JPA, Hibernate, Prevayler
    • JFreeChart, JasperReports, iReport
    • RichFaces, Facelets, Primefaces
    • JUnit, TestNG, JSFnit, Log4J
    • JBoss/Firefly, Tomcat
    • Eclipse (including WTP)

These are some examples but the topics are not limited to that and may also include just a subset of those (like just JPA. EJB3, CDI and JSF from Java EE).

The evaluation may include exams to be applied by the organization to help identifying training needs or to evaluate the efectiveness of the training. Exams may also help evaluating candidates for hiring or for promotion.